问题描述
我正在用 PHP 创建一个 API,它将一些参数传递给 python 并生成 pdf 格式的报告。 在 report_gen.py 文件中,我有代码来获取参数并生成 pdf。通过命令行成功运行,但是当我从浏览器或邮递员运行 PHP 文件时,它不起作用。 我想通过 cronjob 运行我的 PHP 文件,以便它在特定时间自动调用。
$data = '基本威尔·约翰尼·威尔逊·史密斯';
$command = escapeshellcmd("python3 report_gen.py $data");
$output = shell_exec($command); 回声$输出;
解决方法
可能(至少)有两个问题。
首先您需要检查/知道服务器女佣使用另一个环境。我相信,您没有使用 webserver-user 进行本地检查。所以我会尝试使用绝对路径。您还必须确保 python 环境(无论您配置什么)必须与您的本地用户相同。
其次,您需要确保您拥有运行该文件的所有权限(网络服务器使用的网络服务器至少需要对 report_gen.py 具有读取权限)。