서버의 하위 디렉터리에 Symfony2 앱을 설정하려고 합니다.
웹서버: nginx 1.1.6 + php fpm OS: 젠투
내 목표는 앱이 하위 디렉터리에서 작동하도록 하는 것입니다
하위 도메인.xy.domain.tld/tool
내 nginx 구성은 다음과 같습니다
server {
listen 80;
server_name subdomain.xy.domain.tld;
error_log /var/log/nginx/subdomain.xy.error.log info;
access_log /var/log/nginx/subdomain.xy.access.log main;
location /tool {
root /var/www/vhosts/subdomain.xy/tool/web;
index app.php;
location ~ \.php($|/) {
include fastcgi_params;
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)($|/)") {
set $script $1;
}
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/subdomain.xy/tool/web$fastcgi_script_name;
#fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_NAME $script;
fastcgi_param PATH_INFO $path_info;
}
}
}
어떻게 해야 할지 전혀 모르겠습니다. 몇 시간 동안 웹을 검색하고 수십 가지의 다양한 구성을 시도했지만 아무것도 작동하지 않았습니다. 누군가 아이디어가 있기를 바랍니다 =)
답변1
해결책을 찾았습니다. 어쩌면 다른 사람에게 도움이 될 수도 있습니다.
server {
listen 80;
server_name domain.xy;
error_log /var/log/nginx/domain.xy.error.log info;
access_log /var/log/nginx/domain.xy.access.log main;
root /var/www/vhosts/domain.xy;
location /tool {
alias /var/www/vhosts/domain.xy/tool/web;
index app.php;
if (-f $request_filename) {
break;
}
rewrite ^(.*)$ /tool/app.php last;
}
location ~ /tool/(.+)\.php(/|$) {
set $script $uri;
if ($uri ~ "/tool/(.+\.php)(/|$)") {
set $script $1;
}
fastcgi_pass backend;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root/tool/web/$script;
}
}