¿Cómo arreglar nginx 'sin archivo de entrada' cuando la ruta y los permisos están bien?

¿Cómo arreglar nginx 'sin archivo de entrada' cuando la ruta y los permisos están bien?

Sé que esta es una pregunta común, pero no encontré ninguna discusión que coincida exactamente con mi caso.

El registro de errores de nginx muestra:

FastCGI enviado en stderr: "No se puede abrir el script principal: /usr/share/nginx/drupal7/index.php

Pero:

  1. esta ruta es correcta, esta es la raíz de mi sitio web

  2. www-datasu www-datatiene permiso para acceder a él (si lo tengo , cat /usr/share/nginx/drupal7/index.phpse muestra el archivo).

  3. Tanto nginx root como fpm/pool.d/myserver.confchroot apuntan a la misma carpeta:/usr/share/nginx/drupal7

  4. www-dataEl usuario y el grupo tienen 660acceso a esta misma carpeta enpool.d/myserver.conf

  5. ps -u www-datamuestra que posee procesos nginx y php5-fpm

  6. No tengo SElinux instalado (como dicen algunas discusiones, podría ser el problema)

Entonces, ¿por qué el www-datausuario puede acceder a mi index.phppero no a FastCGI? ¿Por qué FastCGI intenta la ruta correcta, pero luego dice que no existe?

Respuesta1

Tienes un chroot configurado. Cuando el proceso está en chroot, la ruta desde la raíz hasta el script es así:

/index.php

Por lo tanto, debe modificar las rutas utilizadas con las llamadas al script FastCGI para que no incluyan la ruta completa del directorio al archivo del script.

información relacionada