XAMPP-python脚本执行

时间:2014-10-18 13:34:22

标签: php python apache xampp

我正在尝试在我的XAMPP服务器中执行python脚本,但每次调用脚本时我都会得到一个空白页面。当我尝试在地址localhost / cgi-bin / script.py中执行它时,它工作正常,但当我尝试在htdocs中执行它时,它是空白的。在我的htdocs目录中,我有2个文件:

html文件:

<!DOCTYPE html>
<html>
<body>


<form name="input" action="http://localhost/insert.PHP"    method="post">
User: <input type="text" name="user" value="Obama"><br>
Password: <input type="password" name="pass">


<input type="submit" value="Submit">
</form> 

</body>
</html>

insert.php文件,它带来.py文件执行:

<?php

$Nome = $_POST['user'];
$Password = $_POST['pass'];

echo ini_get("disable_functions");



$python = exec('C:\xampp\cgi-bin\script.py');
echo $python;

?>

cgi-bin目录中的.py文件(script.py):

#!C:\Python27\python.exe

import cgitb
cgitb.enable()

print "Content-Type: text/html"
print
print """
    <TITLE>CGI script</TITLE>
    <H1> just fine !</H1>
"""
print " <p>I am a script in python! </p>"

所以我输入用户名和密码,它重定向到insert.php,我得到一个空白页面。谢谢!

1 个答案:

答案 0 :(得分:3)

我认为问题在于您启用了安全模式,这会阻止在安全模式目录之外执行。请参阅http://php.net/manual/en/function.exec.php说明。

您也可以尝试使用system()函数。

我也认为从php调用python脚本不是一个好主意。 :)

编辑: 如果您处于开发环境中,我建议您尝试以下操作:

1)将script.py复制到.php文件所在的目录。

2)将.php exec行更改为system(&#39; python script.py&#39;);

3)如果有效,请尝试在cgi-bin目录中调用.py。如果cgi-bin是你的htdocs目录的一级,你可以试试system(&#39; python .. \ cgi-bin \ script.py&#39;);

我无法在我的机器上试用它,因为我运行Mac。

4)我查看了安全模式描述,它似乎已在PHP 5.4.0中删除了。因此,如果您的PHP版本高于此版本,则不适用于您。

5)我建议在路径中尝试正斜杠:system(&#39; python ../ cgi-bin / script.py&#39;);

祝你好运。如果有帮助,请告诉我。