php exec() 而不是 运行 通过 cron 作业

php exec() not running via a cron job

我已经为此苦苦思索了几个小时。

我正在通过 cron 作业执行 php 脚本,除了 exec() 方法外,脚本中的所有内容都有效。

<?php
    exec('gpio write 7 0');

    // Open the file to get existing content
    $current = file_get_contents('log.txt');

    // Append a new person to the file
    $current .= get_current_user().' - '.date('H').":".date('i')." - gpio write 7 0\n";

    // Write the contents back to the file
    file_put_contents($log, $current);
?>

如果我直接从终端执行 php 脚本,它既适用于 pi 用户,也适用于 root 用户。

cron 作业运行时写入 log.txt 文件的数据对我来说很好,这是一个示例:

root - 00:16 - gpio write 7 0
root - 00:17 - gpio write 7 0
root - 00:18 - gpio write 7 0
root - 00:19 - gpio write 7 0

我曾尝试为要执行的 php 文件提供 755777 权限,但没有成功。

这是我执行sudo crontab -e

时的结果
*/1 * * * * /usr/bin/php /var/www/check_time.php

如有任何帮助,我们将不胜感激。

提前致谢。

上线

exec('gpio write 7 0);

应该是

exec('gpio write 7 0');

? ' 似乎从未关闭。

您应该具体说明 gpio 的路径并给出确切位置,以便 cron 知道在哪里可以找到它,/usr/local/bin 不是由 cron 导入的:

/usr/local/bin/gpio

那么它将是:

exec('/usr/local/bin/gpio write 7 0);