【发布时间】:2017-12-28 03:23:22
【问题描述】:
我需要运行一个 python 脚本,通过 PHP 生成的网页使用 pyinstaller 编译。 我尝试了 shell_exec()、exec() 和 system() 都没有成功。 我经常在后台从终端运行脚本:
temperature_sensor_code > /dev/null 2>&1
我已将 www-data 用户添加到 sudoers。我知道这不是一个好方法,但我需要它来发送 killall temperature_sensor_code 命令(这是有效的)。
这是我的情况:
<?php
$run = escapeshellcmd('temperature_sensor_code > /dev/null 2>&1');
shell_exec($run);
header("Refresh: 0; URL=index.php");
?>
我在 /usr/bin 中创建了一个符号链接,也尝试使用脚本的完整路径,但没有成功。
更新:为了更简单,我创建了一个简单的 sh 脚本 run.sh 并放入 /var/www 并使其运行
shell_exec("/var/www/run.sh");
这对我有用。因此,我将脚本 temperature_sensor_code 放在 /var/www 中,但这不起作用。如果我添加var_dump(exec("/var/www/temperature_sensor_code/temperature_sensor_code"));
给我:string(0) ""
我认为编译后的python脚本有问题,因为PHP端似乎还可以。
【问题讨论】:
-
错误?预期的结果是什么?
-
没有从 PHP 报告的错误。 python 脚本本身工作正常;基本上它读取传感器并将数据存储在 MySQL 中。
-
试过正常的执行功能了吗?
-
@uglypointer 已经尝试过