【问题标题】:Executing python script from a PHP site -- do I need Django? Can it be done on a raspberry pi? [closed]从 PHP 站点执行 python 脚本——我需要 Django 吗?可以在树莓派上完成吗? [关闭]
【发布时间】:2016-06-28 05:47:54
【问题描述】:

我正在开发一个程序,该程序利用 Python 脚本从 MySQL 数据库中提取信息。 MySQL 数据库由 PHP 站点界面管理(因此 HTML 表单和按钮等)。我在树莓派上设置了这一切,它可以工作。但我想添加更多功能。

特别是我希望能够从 PHP 站点执行某些 python 脚本。我希望它像按下按钮一样简单。

这是我应该使用 Django 的场景吗?我以前从未使用过它,但读过它如何将 Python 与网络连接起来。我找到了一个类似问题的答案,但我想知道是否需要在我的 apache 服务器上设置任何特别的东西:https://stackoverflow.com/a/31811462/5609876

我什至为我的程序制作了一张小图,以防我的解释不够好:

【问题讨论】:

    标签: php python mysql django raspberry-pi2


    【解决方案1】:

    不,你根本不需要 django。

    如果您只想从 PHP 执行 Python 脚本 - 假设您已经编写了脚本并将其存储在某处:

    首先,将 Python 脚本的执行权限分配给运行 PHP 代码的用户。通常,这是运行 Apache 的同一用户。通常这称为www-dataapache 或类似名称。该用户将列在 Apache 配置文件中。

    那么,在您的 PHP 方面,您真正需要的只是 exec:

    <?php
    
        exec('/path/to/python /path/to/your/script.py')
    
    ?>
    

    【讨论】:

    【解决方案2】:

    如果您的服务器上允许使用 shell_exec 函数,您可以使用它通过 Bash 运行您的 Python 脚本。 shell_exec 返回 bash 调用的输出。您唯一需要确定的是 shell_exec 没有在您的服务器的 php.ini 文件中被禁用(查找行 disable_functions shell_exec)。

    如果你的python脚本叫做mypythonscript.py并且和PHP文件在同一个目录下,你可以这样运行它:

    <? shell_exec('python mypythonscript.py'); ?>
    

    【讨论】:

    • 我可以从 PHP 向 bash 发送命令吗?
    • 对不起,是的。我刚刚添加了这个命令的使用示例。
    猜你喜欢
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2015-03-22
    相关资源
    最近更新 更多