Como executar o php sob o nginx com uma raiz de documento diferente?

0

Eu tenho um arquivo php que estou tentando acessar através de um navegador. O arquivo php veio com um conjunto de instruções para configurar o nginx - no entanto, ele assume que o script php está localizado na raiz do documento. Esse espaço já foi tomado, então estou tentando fazer com que isso funcione em um local alternativo. Eu adicionei uma diretiva de localização para servir este arquivo específico:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        index index.php index.html;

        server_name _;

        root /var/www/document_root;

        location /wp
        {
            alias /var/www/my_directory
            try_files $uri $uri/ =405;
        }

        location ~ ^/wp/(.+\.php)$ 
        {
            alias /var/www/my_directory;
            try_files $uri $uri/ =406;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }       

        [...]

        ## this location directive was already there
        location / 
        {
            fastcgi_index  index.php;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors off;
            include fastcgi_params;
            add_header 'Access-Control-Allow-Origin' "$http_origin";
        }

}

Eu tentei o alias e o root, mas com essa configuração eu recebo um erro 406 ao tentar carregar o link .

Se eu alterar o parâmetro raiz para / var / www / my_directory, o script php será mostrado OK (presumivelmente usando a localização / seção).

Se eu comentar a localização / seção existente e renomear meu ~ ^ / wp /(.+. php) $ para / ele também funcionará bem.

E em um sidenote, com a configuração acima, eu também posso ver   link bem.

Meu palpite é que o SCRIPT_FILENAME não aponta para nada válido, mas nem o log do php-fpm nem os logs do nginx mostram nada de útil. Alguém poderia me ajudar?

    
por Lieuwe 24.04.2018 / 16:40

0 respostas

Tags