fastcgi_param in server context does not work
Maxim Dounin
mdounin at mdounin.ru
Wed Sep 23 14:59:15 MSD 2009
Hello!
On Wed, Sep 23, 2009 at 03:14:10AM -0700, Michael Shadle wrote:
> i used to set fastcgi_params on the global level, but now i have a
> fastcgi.conf file with all the params that i include in my location
> block for php - this allows me to alter the array like one would
> expect. :)
Note that you can't *redefine* params already defined on the same
level. I.e. writing (either direct or via include)
fastcgi_param SOMETHING 1;
fastcgi_param SOMETHING 2;
will send *two* name-value pairs to fastcgi application. It's up to
application to use either both or one of them.
In practice, PHP is known to behave differently in different
versions. After 5.2 it uses last value supplied, before - first
one.
Maxim Dounin
>
> On Wed, Sep 23, 2009 at 2:46 AM, Tomasz Pajor <nikon at puffy.pl> wrote:
> > Tomasz Pajor wrote:
> >>
> >> So there is no way to create such a configuration:
> >>
> >> # fastcgi.conf
> >> root /vhosts/landingpage/public;
> >> charset utf-8;
> >>
> >> fastcgi_index index.php;
> >>
> >> location / {
> >> try_files $uri $uri/ @fallback;
> >> fastcgi_pass unix:/var/run/spawn-fcgi.sock;
> >> fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
> >> include fastcgi_params;
> >> }
> >>
> >> location @fallback {
> >> fastcgi_pass unix:/var/run/spawn-fcgi.sock;
> >> fastcgi_param SCRIPT_FILENAME $document_root/index.php;
> >> include fastcgi_params;
> >> }
> >>
> >> # landingpage.conf
> >> server {
> >> listen 80;
> >> server_name .site1.landingpage.dev;
> >> access_log off;
> >> error_log /var/log/nginx/site1.landingpage.log;
> >>
> >> fastcgi_param SITE site1;
> >> include fastcgi.conf;
> >> }
> >>
> >> server {
> >> listen 80;
> >> server_name .site2.landingpage.dev;
> >> access_log off;
> >> error_log /var/log/nginx/site2.landingpage.log;
> >>
> >> fastcgi_param SITE site2;
> >> include fastcgi.conf;
> >> }
> >
> > I've been going through emails, and I came up with a good solution to my
> > configuration, based on Igor and Maxim suggestion in Conditional
> > fastcgi_param thread.
> > Thanks!
> >
> > # landingpage-fastcgi.conf
> > access_log off;
> > root /vhosts/landingpage/public;
> > charset utf-8;
> > fastcgi_index index.php;
> >
> > location / {
> > try_files $uri $uri/ @fallback;
> > fastcgi_pass unix:/var/run/spawn-fcgi.sock;
> > fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
> > fastcgi_param SITE $landingpage_site;
> > include fastcgi_params;
> > }
> >
> > location @fallback {
> > fastcgi_pass unix:/var/run/spawn-fcgi.sock;
> > fastcgi_param SCRIPT_FILENAME $document_root/index.php;
> > fastcgi_param SITE $landingpage_site;
> > include fastcgi_params;
> > }
> >
> > # landingpage.conf
> > map $http_host $landingpage_site {
> > default site1;
> > .site1.landingpage.dev site1;
> > .site2.landingpage.dev site2;
> > }
> >
> > server {
> > listen 80;
> > server_name .landingpage.dev .site1.landingpage.dev;
> > error_log /var/log/nginx/landingpage/site1-error.log;
> > include landingpage-fastcgi;
> > }
> >
> > server {
> > listen 80;
> > server_name .site2.landingpage.dev;
> > error_log /var/log/nginx/landingpage/site2-error.log;
> > include landingpage-fastcgi;
> > }
> >
> >
> >
> >
> >
> >
>
More information about the nginx
mailing list