Base de conocimientos · PHP

Cómo solucionar un error "500 Internal Server Error"

Última actualización: 2025-06-08

Problema: 500 Internal Server Error

Hemos observado que este error aparece cuando los clientes migran scripts a nuestro servidor. El cliente intenta instalar un script PHP (como Drupal, Magento, Moodle, WordPress, Concrete5, etc.) desde el código fuente o desde una instalación anterior de LAMP con mod_php. Al probar la instalación en el servidor de IndicHosts, el navegador web muestra el error '500 Internal Server Error".

 

Las causas más habituales del problema son:

  1. Permisos de directorios y archivos
  2. Propiedad de directorios y archivos
  3. Directivas en .htaccess, como php_value o php_flag

 

Motivo y contexto: Como nuestro servidor ejecuta Apache con suPHP y no utiliza mod_php, los scripts PHP se ejecutan como 'username' en lugar de 'apache' o 'nobody'. Por lo tanto, todos los archivos y subdirectorios de su script deben pertenecer al nombre de usuario. Además, la mayor parte de la documentación de los scripts se centra en implementaciones LAMP básicas (Linux, Apache, MySQL, PHP) con mod_php. La documentación del script recomienda establecer ciertos directorios y archivos con permisos de escritura para todos los usuarios (es decir, 777 o 666.). Con frecuencia, los archivos PHP, como parte de un archivo de código fuente, se distribuyen con permisos de ejecución 777 o 775. 

En los servidores de IndicHosts, NO debe haber archivos ni directorios con permisos de escritura para todos los usuarios (con niveles de permisos como 0777, 0666, 0770, 0660, etc.). Los archivos de script PHP (.php) NO deben ser ejecutables (con niveles de permisos como 0755) aunque la documentación oficial del script lo recomiende. Este es un requisito de seguridad obligatorio para los scripts PHP en los servidores de IndicHosts.  

Por lo tanto, para corregir el error 500 Internal Server Error en el servidor de IndicHosts.net, debe hacer lo siguiente:

  1. Todos los directorios y subdirectorios deben configurarse con el permiso nivel de 0755. Puede corregir esto utilizando FTP o ejecutando este comando en cPanel óncia Terminales

    chmod 755 directory


  2. Todos los archivos del directorio y de los subdirectorios deben configurarse con el permiso nivel de 0644. Puede corregir esto utilizando FTP o ejecutando este comando en cPanel √≥ncia Terminales

     chmod 644 filename.php

  3. Compruebe y elimine las directivas php_value o php_flag en su archivo .htaccess . (eliminando la línea o comentándola con el prefijo #)

  4. Los archivos y directorios deben pertenecer al usuario al que corresponden. Si el nombre de usuario es ‘robert’, los archivos deben tener como propietario y grupo a robert:robert . Usted puede arreglar esto ejecutando este comando en cPanel > Terminal (Si) no tiene el terminal habilitado, abra un ticket y solicítenos que habilitemos el terminal en su dominio)

    chown username:username directory
    chown username:username filename.php 

  5. Una versión incorrecta de PHP muestra "HTTP Error 500" en Google Chrome.  En ocasiones, la versión de PHP habilitada en el dominio no cumple los requisitos del script. Puede utilizar PHP Selector o MultiPHP Manager en cPanel para cambiar la versión de PHP. Ofrecemos versiones de PHP desde la 4.4 hasta la 8.1 para que los clientes elijan la que prefieran para su dominio.

  6. Un bloqueo de ModSecurity muestra "HTTP Error 500" en Google Chrome. Por favor, navega por cPanel √≥ ModSecurity y deshabilita ModSecurity en el dominio. Si el error desaparece, levante un ticket con Soporte Técnico, pidiéndoles la regla ModSecurity que causó la excepción, luego contacte con el desarrollador del script y pídales que corrijan su script.

  7. Consulte la documentación del script y asegúrese de que el entorno PHP cumpla los requisitos mínimos del script (las extensiones, opciones y variables de PHP están habilitadas). Para aprender a configurar un entorno PHP en IndicHosts por dominio o por directorio, lea nuestra Artículo práctico de configuración de PHP. (Nota: Si en algún momento observa que los requisitos del script entran en conflicto con nuestro artículo de configuración disponible aquí, póngase en contacto con nosotros para que le aclaremos cómo proceder.)

 

Una vez que haya corregido lo anterior, actualice la URL del script. Si el error persiste, abra un ticket con los detalles del script.

 

Consejo: el archivo error_log del directorio del script muestra el error exacto de PHP que causa el error interno del servidor 500

← Todos los artículos de base de conocimientos

Tell us what you need

Compare available plans or describe your workload so we can discuss a suitable starting point.