使用PHP passthru()

时间:2019-04-03 12:10:41

标签: php apache xampp

我试图通过使用passthru()函数从php调用我的python脚本。我已经成功完成了该任务,并且为了进行开发,我使用了xampp,现在有时我手动安装了apache,php和其他附件。 我还对apache conf进行了更改,以使我的python脚本正常工作,其中一些在我直接通过ajax调用它们时有效,但是脚本如下:

<?php

passthru("python C:/Apache24/htdocs/app1/pyscripts/export_zakup.py GARČIN
2>&1",$retval);
echo $retval;

?>

给我这样的结果: 'python'无法识别为内部或外部命令,可操作程序或批处理文件。 1

此外,当我将python C:/Apache24/htdocs/app1/pyscripts/export_zakup.pyGARČIN复制到我的cmd时,它也可以正常工作。 我已经花了几个小时试图找出问题所在,但没有成功。有人知道问题出在哪里吗?

1 个答案:

答案 0 :(得分:1)

首先,通过在命令行中运行which python来找到Python可执行文件所在的位置:

$ which python
$ /usr/bin/python

然后使用PHP脚本中可执行文件的完整路径:

passthru("/usr/bin/python C:/Apache24/htdocs/app1/pyscripts/export_zakup.py GARČIN
2>&1",$retval);
echo $retval;

请记住,Windows和Linux机器上的路径将有所不同。例如,Windows上的最新版本通常在C:\Python27\中安装可执行文件,因此完整路径为C:\Python27\python