javascript - 无法在客户端从 php 执行 python 脚本

标签 javascript php python html ajax

我是 PHP 和 Apache 的新手。

我正在构建一个小网页 - 它可以在客户端计算机上单击一个按钮后在服务器上运行一些 python 代码。为此,我在网上阅读了几篇文章,它们告诉 PHP 是实现它的方法。我还读到我不需要 AJAX。我对 PHP、AJAX 和相关技术的理解处于初级水平。

我有一个 Apache 服务器在我的 RHEL 6.5 机器上运行。 我有 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 权限运行。作为新手 - 我不知道如何检查。

如果需要任何更多信息 - 我可以在后续编辑中提供详细信息。

最佳答案

尝试放置文件的完整路径。在您的情况下,您只需说 'pytest.py',因此请将其替换为完整路径。

这样做,结果会是这样的:

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

(还有,你在usr/bin/python前面少了一个/)

关于javascript - 无法在客户端从 php 执行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086874/

相关文章:

PHP。有没有办法要求函数参数是一个数组?

php - 如何在不使用迭代的情况下提取 DOM 子节点或重命名元素?

Python复制文件到文件夹

Pythonunittest检测circleci下运行测试

javascript - jquery 选择器向下钻取?

javascript - 使用jquery查找div的索引

php - 从样式 css 获取背景图像 URL 的简单 html dom

c# - 无法将 C# 字典作为参数传递给 ironPython 方法

javascript - link_to 远程后的 Rails ajax 回调

javascript - 在javascript中得到错误的总数