apache — PHP exec, запуск командных командных оболочек (с использованием archlinux)

Я использую Archlinux и хочу запустить следующий скрипт (последняя строка на самом деле):

<?php
var_dump(get_current_user());
var_dump(exec("whoami"));
var_dump(exec("sudo echo 1 > /sys/class/gpio/gpio44/value"));

Сценарий имеет следующие разрешения (я пробовал с и без sudo в последней строке)

-rwxr-xr-x 1 http http  126 Nov 17 17:24 turn_on.php

а также http был добавлен в \etc\sudoers с ВСЕ разрешений

http ALL=(ALL) ALL

Результат открытия turn_on.php скрипт в браузере это:

string(4) "http" string(4) "http" string(0) ""

Сценарий не делает то, что должен (последняя строка) и в журнале apache, каждый раз, когда я перезагружаю браузер, я получаю:

sh: /sys/class/gpio/gpio44/value: Permission denied

Это мой первый тест, посвященный тому, что я хочу сделать, я думаю сделать что-то более «PHP-стиль веб-службы API». Любое предложение высоко ценится.
Cheers.-

0

Решение

Вам необходимо проверить разрешения / sys / class / gpio / gpio44 / value, так как именно это вызывает ошибку разрешений.

Также попробуйте использовать sudo из командной строки для имитации функциональности скрипта:

sudo -u http echo 1 > /sys/class/gpio/gpio44/value

Если это не удается, вам просто нужно повозиться с вашими разрешениями, пока они не будут работать правильно, а затем повторите попытку из браузера.

Если вышеперечисленное работает, но в браузере все равно происходит сбой, вероятно, выполнение вашего скрипта на самом деле не использует пользователя http.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]