Назад | Перейти на главную страницу

Странная проблема с Nginx, скомпилированным из исходного кода, и Nginx из официального репозитория Fedora

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/