我有一个Python脚本,当从命令行调用时可以很好地工作,但是当从在同一台机器上的Apache上运行的php脚本调用时会死掉。
错误meesage(从Apache错误日志中删除):
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
用PHP调用:
$exec_string = '/usr/bin/python /path/to/file/doSearch.py "' . $data[ 'term' ] . '"' . $id . ' &';
pclose( popen( $exec_string , 'r' ) );
Python文件正在处理数据,然后写回文件系统。
答案 0 :(得分:0)
我认为你在第一个参数后错过了一个空格。试试这个:
$exec_string = '/usr/bin/python /path/to/file/doSearch.py "' . $data[ 'term' ] . '" ' . $id . ' &';
// see hat here --> ^
您可能希望确保转移所有数据,以使其对CLI安全。
答案 1 :(得分:0)
您的流程应该有一些输出要在popen函数中执行。 但是,当直接关闭此读取文件流时,pclose将导致此异常。