Problema extraño con Nginx compilado desde el código fuente y Nginx desde el repositorio oficial de Fedora

Problema extraño con Nginx compilado desde el código fuente y Nginx desde el repositorio oficial de Fedora

TL;DR Nginx, compilado desde la fuente, tuvo problemas para procesar archivos .php, mientras que con la misma configuración PHP-FPM, nginx, del repositorio oficial de Fedora, funcionó a las mil maravillas en DigitalOcean 512MB Fedora 21 x64 VPS. ¿Cuál es la razón detrás de esto?

Estoy usando DigitalOcean 512MB Droplet con Fedora 21 x64 VPS.

Compilé Nginx desde el código fuente y lo instalé en /opt/nginx/. Aquí está el resultado de/opt/nginx/nginx -V

nginx version: nginx/1.7.10
built by gcc 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx --sbin-path=/opt/nginx --without-http_autoindex_module --without-http_browser_module --without-http_empty_gif_module --without-http_geo_module --without-http_map_module --without-http_referer_module --without-http_scgi_module --without-http_split_clients_module --without-http_ssi_module --without-http_userid_module --without-http_uwsgi_module --with-http_gzip_static_module --with-http_ssl_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-openssl=openssl --with-pcre=pcre --with-zlib=zlib --with-ipv6

Hasta ahora, lo usaba para servir solo páginas estáticas. Hoy, instalé php-fpm desde el repositorio oficial de Fedora y configuré nginx (el que compilé desde la fuente con la configuración dada anteriormente) para pasar páginas .php a PHP-FPM a través de sockets Unix.

Desafortunadamente, recibí el No input file specifiederror. Ya me había enfrentado a este problema anteriormente, así que sabía qué hacer. Cambié rápidamente el permiso del archivo pero aún recibí el mismo error.

Después de buscar durante horas y probar todas las soluciones posibles, seguía recibiendo el mismo error. encontréeste hilocompartir algo del mismo problema.

Pensé por qué no probar Nginx del repositorio oficial de Fedora. Lo instalé. Detuve el nginx anterior (compilado desde la fuente) /opt/nginx/nginx -s stopy configuré el nuevo nginx (del repositorio oficial de Fedora) para pasar .php a PHP-FPM a los mismos sockets Unix.

Y funcionó.

Mi pregunta es "¿Por qué nginx (compilado desde la fuente) tuvo problemas para procesar php mientras que nginx, del repositorio oficial de Fedora, funcionó a las mil maravillas?". ¿Podría ser esto SELinux?

EDITAR: Más información sobre mi configuración.

Nginx (compilado desde la fuente)

  • Instalado en /opt/nginx/
  • Sirve contenido web desde /srv

Nginx (del repositorio oficial de Fedora)

  • Instalación predeterminada, normalmente /usr/sbin/nginx
  • Sirve contenido desde /usr/share/nginx/html/

Respuesta1

Lo solucioné finalmente.

SELinux prohibía a PHP-FPM acceder al archivo ya que el contenido web se servía desde /srv.

Ejecutando el siguiente comando

sudo chcon -R -t httpd_sys_content_t /srv/

resolvió el problema.

Gracias a todos por ayudar.

Referencia:https://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-fedora-centos-red-hat-rhel/

información relacionada