(A) php.ini里的variables_order="EGPCS"
getenv(), apache_getenv()
(B) 增加系统的环境变量? 如果只是增加PHP范围内是可以的.系统的不可能.
(C)
$command = 'export xxx=yyy;my command';
$lastline = system($command,$return);
getenv(), apache_getenv()
(B) 增加系统的环境变量? 如果只是增加PHP范围内是可以的.系统的不可能.
(C)
$command = 'export xxx=yyy;my command';
$lastline = system($command,$return);
谢谢回复啊,对于(B), 就是只增加php范围内的就可以了(不知道对于用exec执行外部命令管用不),因为命令需要在php中运行,请问具体实现方法呢?
对于(A),我之前查过了,已经是EGPCS了,但是exec里面貌似获取不了那些环境变量,似乎只能获取$_ENV里面的
echo exec("export LLL=hi;echo \$LLL"); //输出hi
echo exec("echo \$LLL"); //没有输出
?>
(A)的少一堆是因为执行PHP的用户和你在Shell的用户不同造成的.
PHP code<?php
echo exec("export LLL=hi;echo \$LLL"); //输出hi
echo exec("echo \$LLL"); //没有输出
?>
这样是不行的,我试过的,因为好像每一个exec是一个独立的shell,所以你前一个设置环境变量成功了,但是第二次调用exec的时候又重新打开一个shell,环境变量还是取不到的.(A)的少一堆是因为执行PHP的用户…
执行PHP的用户和我在shell执行成功的用户是一样的,已经通过修改apache配置文件改过了,但是环境变量还是无法从exec中完整的读取到我再试试,不行就只有用(C)的方法了....
就可以在apache2的php的$_server中找到xxx
谢谢大家的解答,结贴