Seltsames Problem mit aus dem Quellcode kompiliertem Nginx und Nginx aus dem offiziellen Fedora-Repository

Seltsames Problem mit aus dem Quellcode kompiliertem Nginx und Nginx aus dem offiziellen Fedora-Repository

TL;DR Nginx, aus dem Quellcode kompiliert, hatte Probleme beim Verarbeiten von .php-Dateien, während nginx aus dem offiziellen Fedora-Repository mit derselben PHP-FPM-Konfiguration auf DigitalOcean 512 MB Fedora 21 x64 VPS einwandfrei funktionierte. Was ist der Grund dafür?

Ich verwende DigitalOcean 512 MB Droplet mit Fedora 21 x64 VPS.

Ich habe Nginx aus dem Quellcode kompiliert und in /opt/nginx/ installiert. Hier ist die Ausgabe von/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

Bisher habe ich es nur zum Bereitstellen statischer Seiten verwendet. Heute habe ich php-fpm aus dem offiziellen Fedora-Repository installiert und nginx (das ich mit der oben angegebenen Konfiguration aus dem Quellcode kompiliert habe) so konfiguriert, dass .php-Seiten über Unix-Sockets an PHP-FPM übergeben werden.

Leider habe ich den No input file specifiedFehler erhalten. Ich hatte dieses Problem schon einmal und wusste daher, was zu tun war. Ich habe schnell die Dateiberechtigung geändert, aber es wurde immer noch derselbe Fehler angezeigt.

Nachdem ich stundenlang gesucht und jede mögliche Lösung ausprobiert hatte, erhielt ich immer noch den gleichen Fehler. Ich fanddieser Threadhaben in etwa das gleiche Problem.

Ich dachte, warum nicht Nginx aus dem offiziellen Fedora-Repository ausprobieren. Ich habe es installiert. Habe das vorherige Nginx (aus dem Quellcode kompiliert) gestoppt /opt/nginx/nginx -s stopund das neue Nginx (aus dem offiziellen Fedora-Repository) so konfiguriert, dass .php an PHP-FPM an dieselben Unix-Sockets übergeben wird.

Und es hat funktioniert.

Meine Frage ist: „Warum hatte nginx (aus dem Quellcode kompiliert) Probleme bei der Verarbeitung von PHP, während nginx aus dem offiziellen Fedora-Repository einwandfrei funktionierte?“ Könnte das an SELinux liegen?

EDIT: Weitere Informationen zu meinem Setup.

Nginx (aus dem Quellcode kompiliert)

  • Installiert in /opt/nginx/
  • Stellt Webinhalte von /srv bereit

Nginx (aus dem offiziellen Fedora-Repository)

  • Standardinstallation, normalerweise /usr/sbin/nginx
  • Stellt Inhalt von /usr/share/nginx/html/ bereit.

Antwort1

Endlich gelöst.

SELinux untersagte PHP-FPM den Zugriff auf die Datei, da der Webinhalt von /srv bereitgestellt wurde.

Ausführen des folgenden Befehls

sudo chcon -R -t httpd_sys_content_t /srv/

hat das Problem gelöst.

Vielen Dank an alle für die Hilfe.

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

verwandte Informationen