Sandbox PHP (DEV) + SFTPGo

Web PHP: https://ftp-dev.oscorp.com.pe UI SFTPGo: https://ftp-ui.oscorp.com.pe

Objetivo: que el equipo suba archivos .php desde el Web Client de SFTPGo y los ejecute inmediatamente por URL desde el dominio web.

Ejemplo: subir getallusers.php → usar https://ftp-dev.oscorp.com.pe/getallusers.php

1) Asegura la carpeta “webroot” (rutas correctas)

La web sirve archivos PHP desde la carpeta public:

Para confirmar en el server (por SSH):

ls -lah /home/ubuntu/sandbox/php-sandbox/site/public

2) Panel Admin vs Web Client (importante)

Ojo: /web/client es para los devs. /web/admin es para administrar usuarios.

3) Credenciales Admin (según docker-compose)

Recomendación: en algún momento cambia esta contraseña por una más fuerte o gestiona admin adicional, según tu política interna.

4) Crear usuario para tu dev (SFTPGo Admin)

  1. Entra al panel Admin: https://ftp-ui.oscorp.com.pe/web/admin
  2. Ir a Users → Add
  3. Completa:
    • Username: dev1 (ejemplo)
    • Password: una clave fuerte
    • Status: Enabled
  4. Home directory (clave):
    /data/site/public

    Esto hace que el dev vea directamente la carpeta pública que Nginx sirve.

  5. Permisos mínimos recomendados (DEV):
    • upload
    • download
    • list
    • delete
    • rename

    (Los nombres exactos pueden variar según la pantalla/versión, pero la idea es “CRUD” básico de archivos.)

  6. Guardar el usuario

5) ¿Cómo entra el dev y sube archivos?

  1. Dev entra al Web Client: https://ftp-ui.oscorp.com.pe/web/client
  2. Login con su usuario y password (ej. dev1)
  3. Sube su archivo: getallusers.php (o crea carpetas si tiene permiso)

6) ¿Cómo se ejecuta lo que sube por URL?

Si el dev sube getallusers.php al directorio raíz de su Home:

Archivo PHP de prueba sugerido (test.php):

<?php
echo "Hola, Sandbox OK<br>";
echo "Archivo: " . __FILE__ . "<br>";
echo "Hora: " . date('Y-m-d H:i:s') . "<br>";
?>

Luego probar:

https://ftp-dev.oscorp.com.pe/test.php

7) Recomendación si serán varios devs (evitar que se pisen archivos)

Si todos usan /data/site/public, comparten carpeta.

Opción A (rápida, compartida)

Opción B (mejor, carpeta por dev)

Estructura:

/data/site/public/dev1/
 /data/site/public/dev2/

Home directory por usuario:

URLs quedarían así:

https://ftp-dev.oscorp.com.pe/dev1/getallusers.php

Crear carpetas en el server (por SSH) si quieres preparar el terreno:

mkdir -p /home/ubuntu/sandbox/php-sandbox/site/public/dev1
mkdir -p /home/ubuntu/sandbox/php-sandbox/site/public/dev2
chmod -R 775 /home/ubuntu/sandbox/php-sandbox/site/public

Tip: si aparece 404 al acceder por URL, casi siempre es porque el archivo no está en public/ (o en la subcarpeta del dev si usas la opción B).