Información sobre PHP suEXEC y Preguntas Frecuentes (FAQ)
Todos los servidores serán compilados con PHP suEXEC. PHP suEXEC ejecuta todos los scripts PHP con tu nombre de usuario en vez de correr como “nobody” así que es mucho mas fácil saber que cliente o sitio web en nuestros servidores ha sido ‘hackeado’. Esto también va a arreglar cualquier error de permisos/ownership que puedas tener subiendo/modificando un archivo a través de una interfaz web.
Preguntas Frecuentes (FAQ) PHP suEXEC
#1. ¿Cuál será la diferencia entre antes y después de PHP suEXEC?
La mayoría de los sitios no serán afectados gracias a este cambio. PHP suEXEC funciona de la misma manera que los scripts CGI (perl, etc). Todos los scripts de tu sitio web serán ejecutados con tu nombre de usuario en vez que el usuario “nobody”.
Esto simplemente significa que de la misma manera que manejas scripts CGI es como vas a manejar PHP de ahora en adelante – Los máximos permisos que se le pueden asignar a los scripts PHP (y directorios) bajo PHP suEXEC es 755. Si los permisos de los directorios y tu script son mayores que 755 tu script va a darte un error #500 cuando lo intentes ver/ejecutar.
#2. ¿Necesito cambiar los permisos de carpeta a 777?
No, tu no necesitas tener tus directorios o archivos con permisos 777, incluso si tus documentos de instalación te indican lo contrario. Los permisos 755 funcionan del mismo modo. Los scripts que sean de tu propiedad (nombre de usuario) serán capaces de escribir en tus archivos, de la misma manera que lo harían con permisos 777.
También si tienes aplicaciones PHP/scripts con directorios de permisos 777 (necesario para que sean escritos u modificados cuando se usa el modulo php en apache *no es este caso*) los permisos de carpeta deberán ser cambiados a 755.
#3. ¿Y qué sobre .htaccess?
Tu no puedes cambiar la configuración de PHP usando .htaccess cuando el servidor utiliza PHP suEXEC, para eso puedes usar un archivo llamado php.ini con las directivas que necesites (sin PHP_FLAG).
Si estas usando un .htaccess con PHP_VALUE, recibirás un ERROR 500 (Internal server error) cuando intentes ejecutar el script. Esto es porque PHP esta con suEXEC y ya no utiliza el modulo de apache, y ya no va a usar esas directivas.
#4. ¿Qué es un archivo php.ini y cómo hago para crear uno?
PHP.ini es el archivo que el servidor utiliza para ver que tipo de configuración han sido modificadas comparándola con la configuración default del servidor. Mientras que el nombre parezca avanzado, es un simple archivo llamado php.ini
Puedes crearlo con notepad, cuando le das salvar archivo le cambias el nombre a php.ini y por supuesto lo salvas como “TODOS LOS ARCHIVOS” no como TXT.
Cómo resolver problemas
Mi script PHP no funciona y recibo errores 500 (Internal Server…)
- VERIFICA QUE TU SCRIPT PHP TIENEN PERMISOS 755 y no mas de esos. Permisos 644 también funcionan normalmente, pero eso no es algo que sera necesario de cambiar en la mayoría de los casos.
- Verifica que el directorio donde reside tu script PHP y sus antecesores tienen permisos no mayores que 755.
- Verifica que tu .htaccess no contenga PHP_FLAG o PHP_VALUE en ellos