【发布时间】:2015-07-17 04:31:05
【问题描述】:
我是 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>
完成的其他事情/测试:
- Python 脚本独立运行,它是一个用于删除文件的简单 Python 脚本。
- PHP 脚本也可以在运行 Apache 服务器的机器上独立运行。
当我尝试从 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) 又做了 2 处更改:
<?php echo shell_exec("/usr/bin/python /<path>/pytest.py"); echo shell_exec("ls"); ?>在这里-第二行在浏览器中有效,第一行无效。这意味着我的 python 部分没有被执行。
如果这是一个问题,我在某处读到,因为我的 Apache 服务器没有以 root 权限运行。作为新人 - 我不知道如何检查。
如果需要更多信息 - 我可以在后续编辑中提供详细信息。
【问题讨论】:
-
可能是因为您的 shell_exec() 的参数没有从根目录执行它吗?试试 echo shell_exec("/usr/bin/python pytest.py");
-
I am very new to PHP- 快跑!逃跑!像你的生命依赖它一样奔跑! -
@That1Guy:运行到 PHP 还是从 PHP 运行? :)
-
您使用 PHP 来运行 Python?我想我快要崩溃和哭泣了。 :-( 在 .htaccess 中,您可以告诉 Python 将 .py 文件作为 CGI 脚本执行。然后将 shebang
#!/usr/bin/python2.7(或任何版本)添加到文件顶部。 -
May 6 18:22:01 machine abrt: detected unhandled Python exception in 'pytest.py'你需要调试你的python脚本,处理异常看看是什么错误。
标签: javascript php python html ajax