我对PHP&的Apache。
我正在构建一个小网页 - 可以通过点击客户端计算机上的按钮在服务器上运行一些python代码。为此,我在网上阅读了一些文章,告诉PHP是如何做到的。我还读到我不需要AJAX。我对PHP,AJAX和相关技术的理解处于初级阶段。
我在RHEL 6.5计算机上运行了一个Apache服务器。 我有PHP v5.3.3,Python v2.6。
PHP脚本(script.php):
<?php
echo shell_exec("python pytest.py");
?>
位置:/var/www/html/script.php
权限:chmod 777 script.php
Python脚本(pytest.py):
import os
os.remove("/<path>/hon.txt")
位置:/var/www/html/pytest.py
权限:chmod 777 pytest.py
索引HTML(index.html):
<!DOCTYPE html>
<html>
<header>
<title>Python Run</title></header>
<body>
<p>
<b><font size="10" color="red"><div align="center">Run Python Jobs</div></font></b>
</p>
<table style="width:100%">
<tr>
<td>Script1</td>
<td>Description</td>
<td>
<form action="script.php" method="get">
<input type="submit" value="Run Py Script">
</form>
</td>
</tr>
</table>
</body>
</html>
完成其他事项/测试:
当我尝试从HTML单击按钮时,PHP脚本似乎不起作用。
我检查了来自
的日志消息cd /var/log/
tail messages -f
May 6 18:22:01 machine abrt: detected unhandled Python exception in 'pytest.py'
我不确定这是否是因为权限,所以我做了
chmod 777 -R /var/www
即便如此,我也有同样的问题
我不知道出了什么问题,所以我对PHP脚本(script.php)进行了两次更改:
<?php
echo shell_exec("/usr/bin/python /<path>/pytest.py");
echo shell_exec("ls");
?>
在这里 - 第二行是从浏览器工作,第一行不是。这意味着我的python部分没有被执行。
如果这是一个问题,我会在某处读到,因为我的Apache服务器没有以root权限运行。新的 - 我不知道如何检查。
如果需要更多信息 - 我可以提供连续编辑的详细信息。
答案 0 :(得分:3)
尝试将完整路径放置到您的文件中。在您的情况下,您只需说出'pytest.py'
,因此请将其替换为完整路径。
这样做会导致类似这样的事情:
<?php
echo shell_exec("/usr/bin/python /home/username/scripts/pytest.py");
?>
(另外,您错过了/
)前面的一个usr/bin/python