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?