Gre*_*g K 7 php environment-variables command-line-interface
我有一个使用passthru()来运行命令的脚本.我需要在运行此命令之前设置一些shell环境变量,否则将无法找到它的库.
我尝试过以下方法:
putenv("LD_LIBRARY_PATH=/path/to/lib");
passthru($cmd);
Run Code Online (Sandbox Code Playgroud)
使用putenv()似乎不会传播到我正在运行的命令.它无法说它找不到它的库.当我export LD_LIBRARY_PATH=/path/to/lib在bash中运行时,它运行正常.
我也试过以下(徒劳):
exec("export LD_LIBRARY_PATH=/path/to/lib");
passthru($cmd);
Run Code Online (Sandbox Code Playgroud)
如何从PHP设置一个shell变量,它传播到我的PHP脚本的子进程?
我是否仅限于检查当前环境中是否存在变量并要求用户手动设置它?
我不是100%熟悉PHP的exec如何工作,但你尝试过: exec("LD_LIBRARY_PATH=/path/to/lib $cmd")
我知道这适用于大多数shell,但我不确定PHP是如何做事的.
编辑:假设这是有效的,处理多个变量只需用空格分隔:
exec("VAR1=val1 VAR2=val2 LD_LIBRARY_PATH=/path/to/lib $cmd")
| 归档时间: |
|
| 查看次数: |
13049 次 |
| 最近记录: |