A página PHP se recusa a aparecer apesar de verificar o php-fpm, SELinux e nginx

1

Problema

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.

O que é isso

  • Servidor Red Hat Enterprise Linux versão 7.2 (Maipo)
  • versão nginx: nginx / 1.6.3
  • PHP 5.4.16 (fpm-fcgi)

É o SELinux?

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.

php-fpm

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

Registros

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

nginx

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;
}

Registros

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).

Caso de teste

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?

    
por Justin W. Flory 30.01.2016 / 07:54

0 respostas