php - XAMPP-python脚本执行

标签 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;

?>

最后.py文件(script.py)位于cgi-bin目录中:

#!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,然后我得到一个空白页面。谢谢!

最佳答案

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

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

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

编辑: 如果您使用的是开发环境,我建议您尝试以下操作:

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

2) 将 .php 执行行更改为 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');

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

关于php - XAMPP-python脚本执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26440305/

相关文章:

javascript - 通过 AJAX 显示 WordPress 最后的帖子

php - 是否使用 MySQL 中的当前/默认字符集转换 BLOB?

php - 调用未定义的函数 Project\Http\Controllers\array_sort()

php - 创建一个动态的 php insert into mysql 函数?

python - 要列出的文本区域

python - 如何在sqlalchemy中创建子查询

python - Python 中的非弹性碰撞

linux - 连接硬编码目录和用户创建的文本文件会在不应该的时候添加根级路径

laravel - docker Apache : 'chmod: changing permissions of "file"Operation not permitted'

node.js - 如何限制对 Node.js 服务器的直接访问