PHP exec()无法执行Python脚本
我有一个简单的PHP函数,应该在被调用时执行一个Python脚本。我在我的PHP程序中尝试过这种函数很多次,但这次这个函数根本没有执行Python脚本。当我从命令提示符访问这个脚本并运行python testing.py
时,它可以成功执行。我想提到的是,这个脚本使用了Python的NLTK库,执行起来比较复杂,通常需要超过20秒才能完成操作(比如数据处理和存储到数据库)。我在想,是不是这个执行的延迟导致了问题,还是说我这次漏掉了什么其他的东西?
function success(){
$mystring = exec('python testing.py');
$mystring;
if(!$mystring){
echo "python exec failed";
}
else{
echo "<br />";
echo "successfully executed!";
}
4 个回答
0
试着去掉 $mystring;
这一行
function success() {
$mystring = exec('python testing.py');
if(!$mystring){
echo "python exec failed";
} else {
echo "<br />";
echo "successfully executed!";
}
}
为了测试,可以试试:
function success() {
$mystring = exec('python testing.py', $output);
var_dump($output);
}
1
试着使用Python程序的准确路径。
$mystring = exec('python testing.py');
15
你需要使用完整的路径来指定python
和你的文件。你可以通过输入which python
命令来找到python
的完整路径,这个命令通常会输出'/usr/bin/python',而你应该已经知道你的文件的路径。所以你的命令应该像这样:
$mystring = exec('/usr/bin/python /home/user/testing.py');
另外,你还要确保你的Python脚本有合适的权限,因为你的网页服务器很可能是以不同的用户身份运行的,所以权限应该设置为"-rwxrwxr-x"或者类似的设置。