在我的设置 (debian etch、lighttpd) 中,我认为我的一个网站正在通过 PHP 调用一个程序进行一些图像处理。我想通过设置环境变量来更改此程序的行为,最好不要更改 Web 应用程序。
怎么做?=)
为 www-data 用户拥有的所有进程设置环境变量也是可以的,但我不确定在这种情况下是否会尊重 .bashrc(?) 中的条目。
谢谢!
答案1
由于你正在使用 lighttpd快速CGI,只需使用箱环境在 lighttpd 设置中。
## 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"
))
)
答案2
您可以为该程序构建一个包装脚本,将环境设置添加到其中,然后运行包装脚本而不是原始程序。
#!/bin/sh
ENV=... /path/to/program
答案3
任何环境变量都可以通过 setenv 模块暴露给 php,
例如:
server.modules += ( "mod_setenv" )
setenv.add-environment = ( "PATH" => env.PATH )
答案4
如果你将它放入 lighttpd 初始化脚本中它可能会起作用:
export MYVAR="something"
在脚本顶部或 start() 函数内部