Estoy preparando un servidor de respaldo para mi servidor dedicado principal. El objetivo es que sirva como backup y en caso de de tener algún problema grave de hardware ponerlo a funcionar como servidor principal. Uso Virtualmin como panel de control. Virtualmin tiene la opción de Backup y Restore para los servidores virtuales (así es como llama a los sitios web).
Pues bien, al restaurar algunos de los servidores virtuales me encontré con un error interno del servidor web (error 500) y en el fichero /var/log/virtualmin/dominio_error_log aparecían las siguientes líneas:
1 2 |
[Thu Jun 12 19:42:01 2014] [warn] [client 999.999.9.99] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server [Thu Jun 12 19:42:01 2014] [error] [client 999.999.9.99] Premature end of script headers: index.php |
La solución la encontré en el foro de soporte de Virtualmin y la transcribo aquí para tenerla más a mano y como respaldo por si desaparece la entrada del foro. Se trata de un problema al cambiar entre los modos de ejecución de PHP mod_php y FCGId. Para resolverlo los pasos a seguir son:
- Mediante la consola, ir a /home/nombredelsitio/fcgi-bin
- Usar el comando chattr para cambiar el atributo inmutable del archivo
1php5.fcgi:chattr -i php5.fcgi
- Borrar los directorios /home/nombredelsitio/etc y /home/nombredelsitio/fcgi-bin
- Usando Virtualmin ir a Server Configuration->Website Options y cambiar el modo de ejecución a mod_php, salvar, y volver a cambiar a modo FCGId otra vez y guardar de nuevo.
Haciendo esto se soluciona el problema y el sitio funciona perfectamente en el nuevo servidor. En el foro mencionan que se cambie mediante el comando chown los directorios en public_html al usuario y grupo del dominio, que normalmente son el nombre del sitio. A mi no me hizo falta hacerlo. Al hacer los cambios indicados se volvieron a crear los directorios borrados con el usuario y grupo correctos.