Frameworks PHP en DirectAdmin: guía de configuración
Frameworks PHP en DirectAdmin: guía de configuración
Los frameworks PHP modernos como Laravel, Symfony y CodeIgniter funcionan muy bien en un hosting con DirectAdmin, siempre que estén bien configurados. En esta guía aprenderás a ajustar DirectAdmin de forma óptima para desarrollar con frameworks PHP.
Frameworks compatibles
El hosting de Theory7 con DirectAdmin es compatible con todos los frameworks PHP populares:
- Laravel: el framework PHP más popular
- Symfony: framework de nivel empresarial
- CodeIgniter: framework ligero
- Slim: microframework para API
- Lumen: microframework de Laravel
- Yii: framework de alto rendimiento
- CakePHP: framework de desarrollo rápido Todos estos frameworks tienen requisitos de configuración parecidos.
Seleccionar la versión de PHP
La versión correcta de PHP es esencial para los frameworks.
Requisitos de versión
| Framework | PHP mínimo | Recomendado |
|---|---|---|
| Laravel 11 | PHP 8.2 | PHP 8.3 |
| Symfony 7 | PHP 8.2 | PHP 8.3 |
| CodeIgniter 4 | PHP 8.1 | PHP 8.2+ |
| Slim 4 | PHP 7.4 | PHP 8.2+ |
Cambiar la versión de PHP en DirectAdmin
- Inicia sesión en DirectAdmin
- Ve a Domain Setup (debajo de tu dominio)
- Haz clic en PHP Version Manager o PHP Settings
- Selecciona la versión de PHP que quieras
- Haz clic en Save o Apply El cambio se aplica de inmediato a ese dominio.
Versión de PHP por directorio
Puedes usar distintas versiones de PHP por subdirectorio mediante .htaccess:
# En el .htaccess del subdirectorio
<FilesMatch "\.php$">
SetHandler application/x-httpd-php82
</FilesMatch>
Configurar el document root
Los frameworks tienen un directorio public que debe ser el document root.
Por qué es importante
Los frameworks separan:
- public/: archivos accesibles desde la web (CSS, JS, index.php)
- Código de la aplicación: por encima del document root (seguro) Esto impide el acceso directo a los archivos de configuración.
Método 1: Enlace simbólico (recomendado)
# Por SSH
cd ~/domains/example.nl
# Copia de seguridad del public_html actual
mv public_html public_html_backup
# Enlace simbólico al directorio public del framework
ln -s myproject/public public_html
Método 2: Configuración en DirectAdmin
- Ve a DirectAdmin
- Abre Domain Setup
- Cambia Document Root a:
domains/example.nl/myproject/public - Guarda los cambios
Método 3: Redirección con .htaccess
Si lo anterior no es posible:
# En el .htaccess de la raíz
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/myproject/public
RewriteRule ^(.*)$ /myproject/public/$1 [L]
Configurar el acceso SSH
SSH es esencial para Composer y para los comandos de artisan y consola.
Activar SSH
- Ve a DirectAdmin
- Abre Account Manager y después SSH Keys
- Haz clic en Generate Key o sube tu propia clave
- Activa el acceso SSH Consulta también: Activar el acceso SSH
Tener Composer disponible
Composer está disponible de forma predeterminada en el hosting de Theory7:
# Comprobar la versión
composer --version
# Actualizar si es necesario
composer self-update
Definir los permisos de archivo
Los permisos correctos son cruciales para los frameworks.
Permisos estándar
# Carpetas: 755
find /home/user/domains/example.nl/myproject -type d -exec chmod 755 {} \;
# Archivos: 644
find /home/user/domains/example.nl/myproject -type f -exec chmod 644 {} \;
Carpetas con permiso de escritura
Los frameworks necesitan acceso de escritura para: Laravel:
chmod -R 775 storage
chmod -R 775 bootstrap/cache
Symfony:
chmod -R 775 var
CodeIgniter:
chmod -R 775 writable
Configuración de la base de datos
Conecta tu framework con MySQL/MariaDB.
Crear una base de datos
- Ve a DirectAdmin
- Abre Account Manager y después MySQL Management
- Haz clic en Create new Database
- Rellena:
- Nombre de la base de datos
- Nombre de usuario
- Contraseña
- Haz clic en Create
Ejemplos de cadena de conexión
Laravel (.env):
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=user_dbname
DB_USERNAME=user_dbuser
DB_PASSWORD=wachtwoord
Symfony (.env):
DATABASE_URL="mysql://user_dbuser:wachtwoord@localhost/user_dbname"
Configurar tareas cron
Los frameworks suelen tener tareas programadas.
Crear una tarea cron
- Ve a DirectAdmin
- Abre Advanced Features y después Cron Jobs
- Haz clic en Create Programador de Laravel:
* * * * * cd /home/user/domains/example.nl/myproject && php artisan schedule:run >> /dev/null 2>&1
Consola de Symfony:
0 */6* * * cd /home/user/domains/example.nl/myproject && php bin/console app:my-command >> /dev/null 2>&1
Queue workers
¿Tu aplicación usa colas, como los jobs de Laravel? En un VPS mantienes un queue worker en marcha de forma permanente con Supervisor. Supervisor requiere acceso root, así que en el hosting web procesas la cola con una tarea cron que se ejecuta cada minuto:
* * * * * cd /home/user/domains/example.nl/myproject && php artisan queue:work --stop-when-empty --max-time=55 >> /dev/null 2>&1
El worker se detiene en cuanto la cola está vacía o a los 55 segundos. La siguiente ejecución de cron toma el relevo, de modo que no quedan procesos colgados.
Optimización del rendimiento
Optimiza DirectAdmin para los frameworks.
Configurar OPcache
OPcache está activo de forma predeterminada. Ajustes óptimos mediante .htaccess o php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
Atención: validate_timestamps=0 requiere restablecer la caché manualmente en cada actualización.
Límite de memoria de PHP
Para aplicaciones más grandes:
- Ve a Domain Setup y después PHP Settings
- Aumenta
memory_limita 256M o 512M - Guarda O mediante .htaccess:
php_value memory_limit 256M
Variables de entorno
Gestiona la configuración de forma segura.
Seguridad del archivo .env
Asegúrate de que .env no sea accesible públicamente:
- .env está por encima de public/ (seguro de forma predeterminada)
- Añade a .htaccess:
<Files .env>
Order allow,deny
Deny from all
</Files>
Detección del entorno
Comprueba que el entorno de producción se detecte correctamente: Laravel:
php artisan env
Symfony:
php bin/console debug:container --env-vars
Configurar SSL/HTTPS
Todos los frameworks deben usar HTTPS.
Activar SSL
- Ve a DirectAdmin
- Abre SSL Certificates
- Selecciona Let's Encrypt (gratis)
- Haz clic en Save
Forzar HTTPS
En el archivo public/.htaccess de tu framework:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Lista de comprobación para el despliegue
En cada despliegue:
- Composer install con los parámetros de producción
- Variables de entorno correctas
- Caché vaciada y precalentada
- Migraciones ejecutadas
- Permisos de archivo comprobados
- SSL activo
A 0 de 0 personas les ha resultado útil