Eu tenho um pequeno servidor web que hospeda uma pequena página PHP que executa uma função muito pequena. Eu costumava hospedar isso em outra máquina. Eu movo o site para uma nova máquina com um sistema operacional diferente e, agora, a página do PHP não é carregada para qualquer pessoa que esteja visualizando o site. Parece estar do lado de fora. Outras páginas no site estão acessíveis.
Esse foi meu primeiro pensamento. Eu verifiquei se o contexto correto foi aplicado ao meu servidor web. Todos os blocos de servidores estão sob /var/www/
para induzir o SELinux a tratá-los como o Apache.
Eu tentei desativar o SELinux com setenforce 0
para testar se esse era o problema. Não houve mudança e eu liguei novamente.
Eu instalei o php-fpm via yum.
php.ini
Eu segui documentação e alterei a configuração cgi.fix_pathinfo
para 0 no meu arquivo php.ini
. Parece o seguinte.
cgi.fix_pathinfo=0
php-fpm.conf
Como por online documentação , certifiquei-me de que o diretório /etc/php-fpm.d/*.conf
está incluído na instalação do php-fpm. A daemonização também está definida como falsa.
include=/etc/php-fpm.d/*.conf
daemonize = no
www.conf
Eu também segui on-line documentação para criar o socket php-fpm. Minhas alterações no arquivo de configuração são as seguintes.
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Os registros de erros de /var/log/php-fpm/error.log
foram menos que úteis.
[30-Jan-2016 01:24:56] NOTICE: fpm is running, pid 29692
[30-Jan-2016 01:24:56] NOTICE: ready to handle connections
[30-Jan-2016 01:24:56] NOTICE: systemd monitor interval set to 10000ms
[30-Jan-2016 01:44:31] NOTICE: Terminating ...
[30-Jan-2016 01:44:31] NOTICE: exiting, bye-bye!
[30-Jan-2016 01:44:31] NOTICE: fpm is running, pid 30102
[30-Jan-2016 01:44:31] NOTICE: ready to handle connections
[30-Jan-2016 01:44:31] NOTICE: systemd monitor interval set to 10000ms
Eu também segui a configuração do nginx pelo mesmo guia . Além disso, eu posso confirmar que o nginx é capaz de server páginas PHP com uma página de teste com <?php phpinfo(); ?>
. Informações sobre minha instalação do PHP aparecem como esperado.
Meu bloco de servidores para o site com problemas é o seguinte.
server {
listen 443 ssl;
server_name example.com;
root /var/www/rit.j-f.co/public_html;
index index.php index.html index.htm;
access_log /var/www/rit.j-f.co/logs/rit.j-f.co_access.log;
error_log /var/www/rit.j-f.co/logs/rit.j-f.co_error.log error;
ssl on;
ssl_certificate /etc/ssl/certs/rit_j-f_co/rit_j-f_co-fullchain.pem;
ssl_certificate_key /etc/ssl/certs/rit_j-f_co/rit_j-f_co-privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ =404;
server_tokens off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_read_timeout 120;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /var/www/html/404.html;
error_page 500 502 503 504 /var/www/html/50x.html;
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ /\. {
access_log off;
log_not_found off;
deny all;
}
}
server {
listen 80;
server_name example.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
Os logs de erro do bloco do servidor também foram menos que úteis. Eles continham apenas erros triviais sobre uma página que faltava (algo que eu consegui corrigir sozinho).
O site que estou tentando testar pode ser encontrado aqui . Você pode ver uma página de trabalho no mesmo site aqui . A página inicial usa PHP, a segunda página não. O código-fonte do site pode ser encontrado aqui .
Remover as seguintes linhas do PHP no index.php
faz com que a página fique assim.
Eu tenho feito o meu melhor para manter a paciência e tentar encontrar uma solução por conta própria, mas não consigo descobrir para onde ir a partir daqui. Eu sinto que tentei tudo óbvio e os logs não estão me ajudando. Algum conselho?
Tags php nginx php-fpm centos web-server