XAMPP-python脚本执行

Posted

技术标签:

【中文标题】XAMPP-python脚本执行【英文标题】:XAMPP-python script execution 【发布时间】:2014-12-13 22:32:43 【问题描述】:

我试图在我的 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,我得到一个空白页。谢谢!

【问题讨论】:

阅读 PHP exec 的文档。 php.net/manual/en/function.exec.php 它确实返回所执行命令的完整输出。为什么你首先要通过 PHP 运行 python 脚本?为什么不直接执行呢? 谢谢,问题确实是从 php 调用的。 【参考方案1】:

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

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

我也认为从 php.ini 调用 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');

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

【讨论】:

感谢您的反馈 Yerke。你如何建议我调用我的脚本?我是这个东西的新手:s 当我将
localhost/insert.PHP" method="post"> 更改为
localhost/cgi-bin/script.py" method= “发布”>。我似乎你的猜测是正确的,我永远不会再尝试从 php 文件调用。

以上是关于XAMPP-python脚本执行的主要内容,如果未能解决你的问题,请参考以下文章

如何让Python脚本在cmd下执行

python脚本怎么执行

python如何重新执行脚本?

怎么执行一个自己写的脚本文件

python脚本中调用执行另一个带参数python脚本的问题

python 实现脚本上传远程服务并执行脚本