Looking for help on fastcgi with different path

Hello!

I have the following config file, excerpt:

location / {
root /home/;
index index.php index.html index.htm;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
include fastcgi_params;
}
}

location /x/ {
alias /stat/;
index index.php index.html index.htm;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /stat$fastcgi_script_name;
include fastcgi_params;
}
}

Because of different path I need to generate a different
SCRIPT_FILENAME inside location /x/. But with this config file nginx
looks for /stat/x/… file instead of /stat/… file. How should I
solve this?

Another question. Is there any global fastcgi setup as lighttpd has? I
mean that I give globally only the host, port, socket and other
parameters (like SCRIPT_FILENAME) are generated by nginx.

Bye,
Zsolt

On Thu, Jun 18, 2009 at 01:41:43PM +0200, Artifex Maximus wrote:

}
}
}

Because of different path I need to generate a different
SCRIPT_FILENAME inside location /x/. But with this config file nginx
looks for /stat/x/… file instead of /stat/… file. How should I
solve this?

An “alias” is incorrectly inherited in nested locations.
This is the reason why the nested locations are still not officially
supported. Probably this will help:

location ~ ^/x/(.+.php)$ {
alias /stat/$1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}

Another question. Is there any global fastcgi setup as lighttpd has? I
mean that I give globally only the host, port, socket and other
parameters (like SCRIPT_FILENAME) are generated by nginx.

There is no global fastcgi settings.

Hello!

2009/6/18 Igor S. [email protected]

location ~ ^/x/(.+.php)$ {
alias /stat/$1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}

Tricky and perfect. Thank you!

Another question. Is there any global fastcgi setup as lighttpd has? I
mean that I give globally only the host, port, socket and other
parameters (like SCRIPT_FILENAME) are generated by nginx.

There is no global fastcgi settings.

Is there any plan for implement? I’m just asking because it makes some
settings much more simple.

Bye,
Zsolt