nginx arquivos php sendo baixados pelo navegador, não processados

1

Eu tenho batido minha cabeça contra a parede tentando descobrir isso.

Estou tentando adicionar um subdiretório / knowledge que aponta para um blog wordpress. No entanto, o nginx não está processando os arquivos, ele está sendo exibido no navegador para download.

Por favor, ajude!

server {
    listen      80;
    listen   [::]:80;
    server_name domain.com;

    return 301 https://domain.com$request_uri;
 }

server {
    listen 443  ssl;
    server_name domain.com;

    ssl_certificate    /etc/ssl/domain_com-bundle.crt;
    ssl_certificate_key    /etc/ssl/domain_com.key;

    root /opt/domain.com/public/;

     location / {
        try_files $uri @backend;
      }


    location @backend {
      proxy_pass http://127.0.0.1:3030;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }

    #knowledge wordpress config

    location ^~ /knowledge {
        alias /opt/domainWordpress/;
        index index.php index.html index.htm;
        try_files $uri $uri/ knowledge/index.php?q=$uri&$args;
      }

      location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}
    
por bengem 14.09.2016 / 17:16

1 resposta

0

solicitações de processo nginx usando um único bloco location . Você deve ler em como o nginx processa solicitações .

Seu problema vem do fato de que o local que manipula seu URI ( /knowledge[...] ) difere daqueles que manipulam o URI ( /[...].php , suponho).

Como você usou a operadora especial ^~ location , regex location blocos não estão sendo verificados ao selecionar o mais adequado para servidor suas solicitações, se este bloco corresponde. Como conseqüência de sua solicitação ser atendida por este bloco (prefixo mais longo), ele simplesmente exibe os arquivos do disco, com o tipo MIME padrão configurado.

Você pode tentar aninhar location ~ \.php$ block dentro de location ^~ /knowledge block.

    
por 27.03.2017 / 12:00

Tags