2014-02-06 176 views
2

在運行Raspbian 3.10.25的我的Raspberry Pi Model B-Rev2上,按照https://github.com/ronanguilloux/php-gpio上的說明控制引腳。但我簡單不能讓它工作。根據說明,這應該是命令triggerMyScript.php:根據內容在myGpioScript無法通過apache運行php-gpio並使用sudo執行exec()

exec('sudo -t /usr/bin/php ./myGpioScript'); 

但我得到了Apache的錯誤日誌error.log說的東西一樣command not foundNo such file or directory

我也按照指示添加了/ etc/sudoers。

如果我從命令行運行php triggerMyScript.php,它可以很好地工作。

回答

2

花了幾個小時後,我找到了解決方案。我需要做的旁邊下面的事情是什麼在PHP-GPIO指示說:

  • myGpioScript的第一行必須是#!/usr/bin/env php#!/usr/bin/php代替
  • 我不得不-t後添加php,像這樣:exec('sudo -t php /usr/bin/php ./myGpioScript'); (這是有道理的,當你想到它,但說明並沒有這樣說)
  • 我不得不將這添加到sudoers文件:www-data ALL=NOPASSWD: /usr/bin/php - 這樣www數據也可以運行php沒有限制。指定實際腳本文件的權限實際上並不是必需的!

任何文件的文件權限都不相關,因此只需將它們設置爲低。

+0

主要是你缺少的是sudoers文件的一部分。這是能夠以sudo運行腳本或命令的基礎。如果你使用過python:pi ALL = NOPASSWD:/ usr/bin/python /home/pi/scripts/python_gpio_scripts/script.py。我不建議您無限制地授予權限,您應該嘗試只保留需要運行的腳本。 – ederollora