TL; DR Nginx, скомпилированный из исходного кода, имел проблемы с обработкой файлов .php, в то время как с той же конфигурацией PHP-FPM, nginx из официального репозитория Fedora работал отлично на DigitalOcean 512MB Fedora 21 x64 VPS. В чем причина этого?
Я использую дроплет DigitalOcean 512 МБ с Fedora 21 x64 VPS.
Я скомпилировал 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
До сих пор я использовал его для обслуживания только статических страниц. Сегодня я установил php-fpm из официального репозитория Fedora и настроил nginx (тот, который я скомпилировал из исходного кода с указанной выше конфигурацией) для передачи страниц .php в PHP-FPM через сокеты unix.
К сожалению, я получил No input file specified
ошибка. Я уже сталкивался с этой проблемой, поэтому знал, что делать. Я быстро изменил права доступа к файлу, но по-прежнему получал ту же ошибку.
После нескольких часов поиска и перебора всех возможных решений я все еще получал ту же ошибку. я нашел эта тема чтобы разделить одну и ту же проблему.
Я подумал, почему бы не попробовать Nginx из официального репозитория Fedora. Я его установил. Остановил предыдущий nginx (скомпилированный из исходников) с помощью /opt/nginx/nginx -s stop
и настроил новый nginx (из официального репозитория Fedora) для передачи .php в PHP-FPM на те же сокеты unix.
И это сработало.
Мой вопрос: «Почему у nginx (скомпилированного из исходников) возникли проблемы с обработкой php, в то время как nginx из официального репозитория Fedora работал прекрасно?». Может ли это быть SELinux?
РЕДАКТИРОВАТЬ: Дополнительная информация о моей настройке.
Nginx (собран из исходников)
Nginx (из официального репозитория Fedora)
Решил окончательно.
SELinux запрещал PHP-FPM доступ к файлу, поскольку веб-контент обслуживался из / srv.
Выполнение следующей команды
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/