TL;DR ソースからコンパイルされた Nginx は .php ファイルの処理に問題がありましたが、同じ PHP-FPM 構成で、公式 Fedora リポジトリからの nginx は DigitalOcean 512MB Fedora 21 x64 VPS で問題なく動作しました。その理由は何でしょうか?
私は、Fedora 21 x64 VPS で DigitalOcean 512MB Droplet を使用しています。
Nginxをソースからコンパイルし、/opt/nginx/にインストールしました。以下は出力です。/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
これまでは、静的ページのみを提供するために使用していました。今日、公式 Fedora リポジトリから php-fpm をインストールし、上記の構成でソースからコンパイルした nginx を構成して、.php ページを UNIX ソケット経由で PHP-FPM に渡しました。
残念ながら、No input file specified
エラーが発生しました。以前にもこの問題に直面したことがあるので、何をすべきか分かっていました。すぐにファイルの権限を変更しましたが、それでも同じエラーが発生しました。
何時間も検索し、あらゆる解決策を試しましたが、それでも同じエラーが発生していました。このスレッドある程度同じ問題を共有しているようです。
公式 Fedora リポジトリの Nginx を試してみようと思い、インストールしました。以前の nginx (ソースからコンパイル) を停止し/opt/nginx/nginx -s stop
、新しい nginx (公式 Fedora リポジトリ) を設定して、.php を同じ UNIX ソケットの PHP-FPM に渡しました。
そしてそれはうまくいきました。
私の質問は、「公式 Fedora リポジトリの nginx は問題なく動作しているのに、ソースからコンパイルされた nginx では PHP の処理に問題が発生するのはなぜですか?」です。これは SELinux によるものでしょうか?
編集: 私のセットアップに関する詳細情報。
Nginx (ソースからコンパイル)
- /opt/nginx/ にインストール
- /srv から Web コンテンツを提供します
Nginx (公式 Fedora リポジトリから)
- デフォルトのインストール、通常は /usr/sbin/nginx
- /usr/share/nginx/html/ からコンテンツを提供します
答え1
ついに解決しました。
Web コンテンツは /srv から提供されるため、SELinux は PHP-FPM によるファイルへのアクセスを禁止していました。
次のコマンドを実行する
sudo chcon -R -t httpd_sys_content_t /srv/
問題を解決しました。
ご協力いただいた皆様ありがとうございました。
参照:https://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-fedora-centos-red-hat-rhel/