Eu tenho uma configuração NGINX definida como abaixo para que o acesso
stg.server.org
seja atendido por PHP 5.6 (php56-php-fpm running on port 9000)
e
stg.server.org/simon/apps/
será atendido, PHP 7.3 (php-fpm running on port 9001)
mas sem sucesso. Alguém tem uma pista de como conseguir isso?
server {
listen stg.server.org:80;
server_name stg.server.org;
root /var/www/html/;
index index.php index.html index.htm;
#charset koi8-r;
access_log /var/log/nginx/access_log;
error_log /var/log/nginx/error_log error;
location / {
root /var/www/html/;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root /var/www/html/;
fastcgi_pass 127.0.0.1:9000; #php-fpm PHP 5.6
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include /etc/nginx/fastcgi_params;
}
location /simon/apps/ {
root /var/www/stg.server.org/simon/apps/;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
location ~ \.php$ {
root /var/www/apps-stg.unep.org/simon/pims/;
try_files $uri =404
fastcgi_pass 127.0.0.1:9001; #php-fpm PHP 7.3
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
Há vários problemas com sua configuração.
A expressão regular
location
tem precedência sobre um prefixolocation
, a menos que o^~
modificador seja usado. Consulte este documento para obter detalhes.O caminho para o arquivo é construído concatenando o valor de
root
com o URI, portanto, a parte do caminho/simon/apps/
que aparece no URI também não deve aparecer noroot
valor.A
try_files
instrução nolocation ^~ /simon/apps/
bloco deve presumivelmente ser padronizada para o/simon/apps/index.php
script e não para o arquivo/index.php
.root
eindex
as diretivas são herdadas e não precisam ser repetidas nos blocos onde o valor não foi alterado.Por exemplo:
Na sua pergunta, você tem um caminho diferente para os scripts PHP. É mais simples manter os arquivos PHP na mesma raiz do documento. O acima só funcionará se o URI
/simon/apps/index.php
estiver localizado no caminho/var/www/stg.server.org/simon/apps/index.php
.