How to set vhost-specific ENV vars for pass to php-fpm/fastcgi?
pgndev
pgnet.dev at gmail.com
Wed Nov 28 23:34:02 UTC 2018
I run nginx + php-fpm.
I include the following 'secure' config into my shared site config
cat ../sec/params.shared
fastcgi_param DATABASE_HOST "localhost";
fastcgi_param DATABASE_PORT "3306";
fastcgi_param DATABASE_NAME "db_name";
fastcgi_param DATABASE_USER "db_user";
fastcgi_param DATABASE_PASSWORD "db_pass";
It works as intended, setting the ENV vars in PHP env.
I'd like to add some vhost-specific env vars, that ONLY exist & are set for
specific vhost's ENVs
For example, I'd like to set up a conditional add'n of
set $this_token ""
if ($host = 'vhost1.example.com') {
set $this_token "data";
10 fastcgi_param VHOST1_TOKEN $this_token;
}
But when I add this stanza to the main config above, conf check fails
nginx: [emerg] "fastcgi_param" directive is not allowed here in
/etc/nginx/sec/param.shared:10
nginx: configuration file /etc/nginx/nginx.conf test failed
If instead I add
set $this_token ""
if ($host = 'vhost1.example.com') {
set $this_token "data";
}
fastcgi_param VHOST1_TOKEN $this_token;
it passes check
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
In this case the ENV var "VHOST1_TOKEN" is corrrectly defined in the match
case, but it is also *defined*, though null, for any/all other vhosts.
How do I construct this conditional ENV var setting to ONLY set/defined the
vars on host match?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20181128/1266b9be/attachment.html>
More information about the nginx
mailing list