外壳是 tcsh。PHP v5.1.6。红帽 5.7。安全模式关闭。
使用 exec 从浏览器运行 php 脚本:
- 通过 bash 脚本上的 source 命令配置环境
- 根据 bash 脚本设置的环境运行 python 程序(程序输出到 STDOUT)
这可以从命令行($shell = tcsh)工作:
/bin/bash -c "source /path-to-config-bash-script/config.sh; /bin/path-to-python /path-to-python-program/prog.py 2>&1"
这没有。Python程序返回错误,表示环境设置不正确(找不到某些库等):
<?php
....
$cmd = "/bin/bash -c \"source /path-to-config-bash-script/config.sh; /bin/path-to-python /path-to-python-program/prog.py 2>&1\"";
$ret_val = exec( $cmd, $ret_arr, $err );
?>
四重检查权限,一切看起来都很好。
谢谢!