DR Nginx, compilado a partir do código-fonte, teve problemas para processar arquivos .php, enquanto com a mesma configuração PHP-FPM, nginx , do repositório oficial do Fedora, funcionou perfeitamente no DigitalOcean 512MB Fedora 21 x64 VPS. Qual é a razão por trás disso?
Estou usando o Droplet DigitalOcean 512 MB com Fedora 21 x64 VPS.
Compilei o Nginx a partir do código-fonte e instalei-o em /opt/nginx/. Aqui está a saída 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
Até agora, eu o usava para servir apenas páginas estáticas. Hoje, instalei o php-fpm do repositório oficial do Fedora e configurei o nginx (aquele que compilei do código-fonte com a configuração fornecida acima) para passar páginas .php para o PHP-FPM via soquetes unix.
Infelizmente, recebi o No input file specified
erro. Já enfrentei esse problema, então sabia o que fazer. Alterei rapidamente a permissão do arquivo, mas ainda recebi o mesmo erro.
Depois de pesquisar por horas e tentar todas as soluções possíveis, ainda recebia o mesmo erro. eu encontreieste tópicoestar compartilhando o mesmo problema.
Pensei por que não experimentar o Nginx do repositório oficial do Fedora. Eu instalei. Interrompeu o nginx anterior (compilado da fonte) /opt/nginx/nginx -s stop
e configurou o novo nginx (do repositório oficial do Fedora) para passar .php para PHP-FPM para os mesmos soquetes unix.
E funcionou.
Minha pergunta é "Por que o nginx (compilado a partir do código-fonte) teve problemas para processar o php enquanto o nginx, do repositório oficial do Fedora, funcionou perfeitamente?". Isso poderia ser SELinux?
EDIT: Mais informações sobre minha configuração.
Nginx (compilado da fonte)
- Instalado em /opt/nginx/
- Exibe conteúdo da web de /srv
Nginx (do repositório oficial do Fedora)
- Instalação padrão, geralmente /usr/sbin/nginx
- Exibe conteúdo de /usr/share/nginx/html/
Responder1
Resolvi finalmente.
O SELinux estava proibindo o PHP-FPM de acessar o arquivo, já que o conteúdo da web era servido por /srv.
Executando o seguinte comando
sudo chcon -R -t httpd_sys_content_t /srv/
resolveu o problema.
Obrigado a todos por ajudar.
Referência:https://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-fedora-centos-red-hat-rhel/