XAMPP执行Python脚本

1 投票
1 回答
5470 浏览
提问于 2025-04-28 06:36

我正在尝试在我的XAMPP服务器上运行一个Python脚本,但每次调用这个脚本时,页面都是空白的。当我在地址localhost/cgi-bin/script.py中执行它时,一切正常,但在htdocs中执行时却是空白。在我的htdocs目录下,我有两个文件:

一个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 个回答

3

我觉得问题可能是你开启了安全模式,这样会限制在安全模式目录之外执行代码。你可以查看一下这个链接,了解更多关于这个功能的说明:http://php.net/manual/en/function.exec.php

你也可以试试用system()这个函数来代替。

另外,我觉得从PHP调用Python脚本并不是个好主意。:)

编辑:

如果你是在开发环境中,我建议你可以试试以下步骤:

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

2) 把.php文件中的exec那一行改成system('python script.py');

3) 如果这样可以运行,试着在cgi-bin目录中调用.py文件。如果cgi-bin目录在你的htdocs目录的上一级,可以试试system('python ..\cgi-bin\script.py');

我在我的电脑上无法测试,因为我用的是Mac。

4) 我查看了一下安全模式的说明,发现它在PHP 5.4.0版本中被移除了。所以如果你的PHP版本高于这个,应该就没有这个问题了。

5) 我还建议你在路径中使用正斜杠:system('python ../cgi-bin/script.py');

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

撰写回答