【问题标题】:By running python script with php - working in console but not in web browser通过使用 php 运行 python 脚本 - 在控制台中工作,但不在 Web 浏览器中
【发布时间】:2021-07-27 10:17:19
【问题描述】:

我正在用 PHP 创建一个 API,它将一些参数传递给 python 并生成 pdf 格式的报告。 在 report_gen.py 文件中,我有获取参数和生成 pdf 的代码。哪个通过命令行成功运行,但是当我从浏览器或邮递员运行 PHP 文件时,它不起作用。 我想通过 cronjob 运行我的 PHP 文件,以便它在特定时间自动调用。

$data = '基本的 Will Johnyy Willson Smith';

$command = escapeshellcmd("python3 report_gen.py $data");

$output = shell_exec($command); 回声$输出;

【问题讨论】:

    标签: python php shell-exec


    【解决方案1】:

    可能(至少)有两个问题。

    首先你需要检查/知道服务员使用了另一个环境。我相信,您没有使用 webserver-user 进行本地检查。所以我会尝试使用绝对路径。您还必须确保 python 环境(无论您配置了什么)必须与您的本地用户相同。

    其次,您需要确保您拥有运行该文件的所有权限(网络服务器使用的网络服务器至少需要对 report_gen.py 具有读取权限)。

    【讨论】:

    • report_gen.py 拥有 644 权限。以及如何使用绝对路径的 webserver-user。任何语法。
    • 绝对路径:Windows:“C.\\python\\python.exe C:\\bla\\fasel\\blub\\report_gen.py”,Linux:“/usr/bin/ python /bla/fasel/blub/report_gen.py"
    • 我尝试使用绝对路径,但无法通过浏览器工作。还有其他解决方案吗?
    • 你在 Linux 上运行吗?您可以将错误输出(stderr)重定向到标准输出(stdout),以查看在运行命令时是否有错误:“/usr/bin/python /bla/fasel/blub/report_gen.py 2> &1"
    猜你喜欢
    • 2019-05-24
    • 2016-05-25
    • 2020-09-27
    • 2014-06-27
    • 2014-06-29
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多