在我的设置(debian etch,lighttpd)中,我的网站之一正在调用通过PHP进行image processing的程序。 我想改变这个程序的行为,通过设置一个环境variables,最好不改变networking应用程序。
这个怎么做? =)
为www-data用户拥有的所有进程设置environemtvariables也是可以的,但是我很喜欢在这个场景中,如果.bashrc(?)中的条目被尊重。
谢谢!
由于您使用的是lighttpd fast-cgi ,只需在lighttpd设置中使用bin-environment进行设置即可。
## Start an FastCGI server for php (needs the php5-cgi package) fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php.socket", "max-procs" => 2, "idle-timeout" => 20, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "4", "PHP_FCGI_MAX_REQUESTS" => "10000", ), "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), "broken-scriptfilename" => "enable" )) )
您可以为程序构build包装脚本,将环境设置添加到该脚本中,然后运行包装脚本而不是原始程序。
#!/bin/sh ENV=... /path/to/program
它可能会工作,如果你把它放在lighttpd初始化脚本:
export MYVAR="something"
在脚本的顶部或start()函数内部
任何环境variables都可以通过setenv模块暴露给php
例如:
server.modules += ( "mod_setenv" ) setenv.add-environment = ( "PATH" => env.PATH )