NGINX não analisa .php5 como .php

1

Eu instalei o nginx com o ISPconfig. Tudo funciona bem, exceto alguns sites que eu tenho portado do servidor apache infelizmente tem extensão .php5 e eu não sei como fazer nginx para analisá-los. Eu tentei muitas soluções e variações, mas ainda não consigo fazê-lo funcionar.

Vou colar minhas configurações dos arquivos e, se alguém tiver uma experiência semelhante que queira compartilhar, eu ficaria grato.

Parte das configurações dos arquivos: /etc/php5/fpm/php.ini

cgi.fix_pathinfo=0

/ etc / nginx / sites-available / default

server {
        listen 80 default_server;
        root /usr/share/nginx/html;
        index index.html index.php index.htm;
        location / {
                try_files $uri $uri/ /index.html;
        }
}
location ~ \.php$ {
        #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #       fastcgi_index index.php;
        #       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #       include fastcgi_params;
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

Arquivo de configuração Vhost para domínio específico com erro:

      location ~ \.php$ {
            try_files /58c4be432bbd2af65343c142b9ec45ec.htm @php;
        }


        location @php {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9048;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
        }

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

/etc/php5/fpm/pool.d/www.conf não foi comentado:

security.limit_extensions = .php .php3 .php4 .php5

E quando alguém acessar essa página .php5 (o site tem mais de 500 backlinks para eles), o navegador começará a fazer o download, como o php-fpm não está analisando o arquivo .php5:

66.233.7.128 - - [26/Feb/2014:22:53:07 +0000] "GET /sitemap.php5 HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"
38.104.70.230 - - [26/Feb/2014:22:54:27 +0000] "GET /index.php5 HTTP/1.1" 200 71941 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"
66.233.7.113 - - [26/Feb/2014:22:56:43 +0000] "GET /sitemap.php5 HTTP/1.1" 200 71941 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"

Como posso configurar o nginx para analisar páginas .php5 como .php?

Obrigado antecipadamente.

    
por Bex1977 28.02.2014 / 00:30

1 resposta

3

Se você criar todas as linhas com:

      location ~ \.php$ {

parecido com:

      location ~ \.(php|php5)$ {

Deve fazer o que quiser. Deixe as linhas @php sozinhas (@php é um bloco interno). Esse regex pode ser mais curto, é claro, mas seria menos claro.

TAMBÉM :

Na sua localização, o bloco @php passa para o socket em vez de localhost:

      fastcgi_pass unix:/var/run/php5-fpm.sock;
    
por 28.02.2014 / 01:29

Tags