在运行Raspbian 3.10.25的Raspberry Pi Model B-Rev2上按照https://github.com/ronanguilloux/php-gpio上的说明控制引脚。但我简单无法让它发挥作用。根据说明,这应该是triggerMyScript.php
中的命令:
exec('sudo -t /usr/bin/php ./myGpioScript');
但根据myGpioScript
中的内容,我在Apache日志error.log
中收到错误,说command not found
和No such file or directory
等内容。
我还按照指示添加了/ etc / sudoers。
如果我从命令行运行php triggerMyScript.php
,它的工作正常。
答案 0 :(得分:2)
花了几个小时后,我找到了解决方案。除了php-gpio上的说明之外,我还需要做以下事情:
myGpioScript
中第一行必须是#!/usr/bin/php
而不是#!/usr/bin/env php
php
之后添加-t
,如下所示:exec('sudo -t php /usr/bin/php ./myGpioScript');
(当您考虑它时这是有道理的,但说明并没有这样说)< / LI>
www-data ALL=NOPASSWD: /usr/bin/php
- 这样www-data也可以无限制地运行php。实际上没有必要为实际脚本文件指定权限!任何文件的文件权限都不相关,所以只需将它们保持低位。