2012-06-19 3 views
1

Использование PHP Я хотел бы иметь возможность перечислить crontab root. Я могу запустить следующую команду как пользователь Apache из командной строки и получить желаемый результат:PHP: Список корневых crontab с sudo

sudo crontab -l 

однако, в моем PHP У меня есть следующая команда, которая не работает и возвращает пустой набор:

exec('sudo crontab -l', $out); 
print_r($out); 

Является ли это экологическим? Или разрешения?

Я также попытался shell_exec()system() и passthru()

Кроме того, к сведению, что у меня есть отключена SELinux и добавил Apache в файл sudoers, так что он не должен быть предложено ввести пароль.

+0

Это может быть лучше на форуме serverfault.stackexchange.com. –

+0

Что говорит 'echo'' whoami \ '," \ n ";' говорит? – hakre

+0

Включены ли сообщения об ошибках? – Mike

ответ

1

Решено: Даже если я отчетности установлена ​​ошибка, вы должны перенаправить вывод команды следующим образом:

exec('sudo crontab -l 2>&1', $out); 
var_dump($out); 

После установки этого, я обнаружил следующую ошибку:

sudo: sorry, you must have a tty to run sudo 

После изучения проблемы решение состоит в том, чтобы отредактировать файл sudoers и закомментировать: #Default requiretty.

http://www.zimbra.com/forums/installation/10553-solved-sudo-sorry-you-must-have-tty-run-sudo.html

Я извиняюсь, как я получил дальше в этом вопросе, она стала меньше выпуска PHP и больше вопрос системы UNIX.

+0

Не забудьте принять этот ответ как правильный! –