У меня есть единственный домен, где корень обслуживается приложением python, работающим под uWSGI. Однако мне нужно запустить форум PHP в подпапке / forum /. У меня в apps-available
Файл конфигурации:
location / { try_files $uri @oath; }
location @oath {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
location /forum/ {
alias /home/drake/forum;
index index.php;
}
location ~ /forum/(.*)\.php {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
Тем не мение, example.com/forum/
отправляется в приложение uWSGI и example.com/forum/index.php
, при передаче в FastCGI возвращает File not found.
и записывает следующее в error.log
:
2013/03/03 00:10:52 [error] 28102#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 93.96.158.230, server: example.com, request: "GET /forum/index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com"
Что я делаю не так?
Ваш /forum/(.*)\/.php
block не устанавливает соответствующий корневой каталог, поэтому PHP не находит скрипт. Попробуйте что-то вроде этого (заменив оба блока местоположения вашего форума):
location /forum {
root /home/drake;
index index.php;
location ~ \.php(?|$) {
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}