
Um já foi, falta um! Eu entendo perfeitamente tudo o que havia de errado com minha configuração antes e gostaria de agradecer mais uma vez ao Cemal do Stack Overflow. O /location/ agora está exibindo index.php.
O novo problema é que as regras de reescrita. Atualmente, eles estão configurados globalmente e cada local precisa fazer a mesma coisa (eles são front-ends PHP duplicados, mas um deles tem acesso limitado a certas coisas).
No momento o domínio principal.com funciona, mas o meudomínio.com/test está carregando o PHP principal mas não passando os dados dos rewrites. Eu encontrei uma maneira de fazê-lo funcionar com arquivos try, mas estou lutando para fazê-lo funcionar usando o conselho de regexencontrado aqui.
Da forma como está, sem tentativa, o seguinte leva a erros de não ser capaz de encontrar raw_data ou general_data no nginx, apesar da existência desses arquivos, então só posso assumir que devem ser as regras de reescrita.
Clonei as regras de reescrita existentes e prefixei-as com /test2/ mas ainda não consigo localizá-las.
27/02/2018 13:37:46 [erro] 31485#31485: *49483 aberto()
"/var/www/html/test2/general_data" failed (2: No such file or
directory), client: X.X.X.X, server: mydomain.co.uk, request: "POST
/test/weather_data?cell HTTP/1.1", host: "mydomain.co.uk", referrer:
"https://mydomain.co.uk/test2/" 2018/02/27 13:37:46 [error]
31485#31485: *49546 open() "/var/www/html/test/raw_data" failed (2: No
such file or directory), client: X.X.X.X, server: my domain.co.uk,
request: "POST /test/raw_data HTTP/1.1", host: "mydomain.co.uk",
referrer: "https://mydomain.co.uk/test2/"
esse é o erro que me levou à conclusão de qualquer maneira.
Aqui está minha configuração atualas partes relevantes-
}server {
rewrite ^/raw_data$ /raw_data.php?$1 last;
rewrite ^/test_data$ /test_data.php?$1 last;
rewrite ^/motd_data$ /motd_data.php?$1 last;
rewrite ^/(.*)map.common.js$ /static/js/map.common.php last;
rewrite ^/general_data$ /general_data.php?$1 last;
rewrite ^test2/raw_data$ /test2/raw_data.php?$1 last;
rewrite ^test2/test_data$ /test2/test_data.php?$1 last;
rewrite ^test2/motd_data$ /test2/motd_data.php?$1 last;
rewrite ^test2/(.*)map.common.js$ /PMSFE/static/js/map.common.php last;
rewrite ^test2/general_data$ /PMSFE/general_data.php?$1 last;
location / {
include /etc/nginx/mime.types;
index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match;
fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
location /test2 {
include /etc/nginx/mime.types;
root /var/www/html/;
index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match;
fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Qualquer conselho sobre como posso fazer isso funcionar seria muito apreciado, esta é minha primeira vez usando Linux em geral, muito menos tentando hospedar algo substancial, infelizmente os exemplos de nginx que você encontra são tão diferentes que é difícil avaliar o que se aplica ao seu situação particular ou não.
Tentei incluir as regras de reescrita em cada local, como vi em outra postagem, mas isso quebrou a página mydomain.co.uk com o mesmo erro do novo mydomain.co.uk/test2/
Responder1
Tão bobo da minha parte. Um / curto em minhas reescritas.
rewrite ^/test2/raw_data$ /test2/raw_data.php?$1 last;
rewrite ^/test2/test_data$ /test2/test_data.php?$1 last;
rewrite ^/test2/motd_data$ /test2/motd_data.php?$1 last;
rewrite ^/test2/(.*)map.common.js$ /PMSFE/static/js/map.common.php last;
rewrite ^/test2/general_data$ /PMSFE/general_data.php?$1 last;
agora funciona!