У меня есть сценарий bash, который работает , не нуждаясь в корне.Что (за исключением необходимости быть root) может вызвать ошибку разрешений при использовании PHP shell_exec?
Но когда я запускаю его через shell_exec()
(или system()
или exec()
), как это:
return system("/home/tom/rrd/rrdtool-drawgraph.sh $interval $multiples - debug 2>&1;");
я получаю следующее сообщение:
ш:/Главная/Том/RRD/RRDtool -drawgraph.sh: Разрешение отклонено
(Странно, сообщение повторяется. Не уверен, что это действительно так? Редактировать: он, кажется, не повторяется, когда я использую backticks вместо shell_exec
. Go figure.)
Я пробовал использовать права доступа 777. Я попытался изменить владельца и группу на www-data
. Я изменил каталог, в который он вставляет свой вывод, чтобы иметь одинаково разрешительные разрешения.
Он все еще не работает.
Единственное, что я могу придумать, это то, что сценарий находится в моем домашнем каталоге. Если это проблема, я был бы удивлен (потому что мой веб-корень также находится в моем домашнем каталоге), но я готов к исправлению. Если это проблема, могу ли я исправить ее, не требуя корневых привилегий?
Если это не связано с тем, чтобы быть в моем домашнем каталоге, в чем проблема? И как мне это исправить?