繁体   English   中英

无法在客户端执行来自php的python脚本

[英]cant execute python script from php, in the client side

我是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)做了两次更改:

     <?php echo shell_exec("/usr/bin/python /<path>/pytest.py"); echo shell_exec("ls"); ?> 

    在这里 - 第二行是从浏览器工作,第一行不是。 这意味着我的python部分没有被执行。

如果这是一个问题我在某处读到,因为我的Apache服务器没有以root权限运行。 新的 - 我不知道如何检查。

如果需要更多信息 - 我可以提供连续编辑的详细信息。

尝试将完整路径放在文件中。 在你的情况下你只是说'pytest.py' ,所以用完整的路径替换它。

这样做会导致类似这样的事情:

<?php
    echo shell_exec("/usr/bin/python /home/username/scripts/pytest.py");
?>

(另外,你错过了一个/usr/bin/python前面)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM