Error 500 en modo suPHP: permisos de archivos y carpetas (chmod)
Qué es el «Internal Server Error» en modo suPHP y cómo configurar correctamente los permisos.
500 Internal Server Error es un código de estado HTTP que indica que el servidor está en funcionamiento, pero ha encontrado un error crítico que le impide procesar la solicitud.
Para qué sirve suPHP
En el modo estándar mod_php, Apache siempre se ejecuta bajo un único usuario compartido — nobody. Esto está lejos de ser ideal: unos permisos mal configurados pueden permitir que otros usuarios del mismo servidor lean o incluso modifiquen tus archivos. Además, cuando los scripts crean o modifican archivos bajo nobody, esos archivos se vuelven imposibles de eliminar o editar por FTP.
suPHP resuelve ambos problemas ejecutando cada proceso bajo el propietario real de la cuenta. Tus archivos siguen siendo tuyos.
Configuración correcta de permisos
| Permiso | Se aplica a | Significado |
|---|---|---|
644 |
Archivos | El propietario puede escribir; los demás solo pueden leer (predeterminado) |
444 |
Archivos | Solo lectura para todos, incluidos tus propios scripts |
755 |
Carpetas | Acceso estándar a carpetas (predeterminado, no se necesitan cambios) |
Algunas reglas importantes:
755debe estar establecido en la carpeta/public_html/your_domain- Nunca cambies los permisos de carpetas y archivos del sistema como
stats,logs,.htpasswdo el directorio/domains - Todos los cambios de permisos deben afectar únicamente a
/public_html/your_domainy su contenido - Nunca establezcas
666o777en archivos o carpetas — los scripts no se ejecutarán con estos permisos y pondrás en riesgo toda tu cuenta
Consejo
Con permisos 644, solo los scripts que se ejecutan bajo tu propia cuenta pueden escribir en los archivos. Nadie más puede hacerlo. Para una capa adicional de seguridad, puedes cambiar a 444 — en ese caso ni siquiera tus propios scripts podrán escribir, aunque esto es completamente opcional.
Nuestros servicios y productos
Causas frecuentes del error 500 Internal Server Error
En el modo suPHP, un error 500 casi siempre significa que el servidor bloqueó un script por uno de estos motivos:
- Un archivo tiene permisos distintos de
644o444— por ejemplo,666 - Una carpeta tiene permisos distintos de
755— por ejemplo,777 - Tu
.htaccesscontiene directivas que suPHP no admite
Directivas .htaccess no admitidas en el modo suPHP
suPHP no admite directivas de entorno PHP dentro de .htaccess, entre ellas php_flag, php_admin_flag, php_value y similares. Si tu .htaccess contiene algo como:
php_flag register_globals On
o incluso simplemente:
display_errors Off
El servidor devolverá inmediatamente un 500 Internal Server Error. Elimina estas líneas y configura los ajustes de PHP mediante un archivo php.ini personalizado.
Ayuda
¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!