Мне нужно выполнить команду AT из браузера.Мой /etc/at.deny пуст, а /etc/at.allow не существует.Я мог бы выполнить "php page.php" в командной строке с любым пользователем и работает нормально.
Вот моя страница (page.php):
<?php
exec('at -f job.txt now + 1 minutes');
?>
My job.txt:
/bin/php /var/www/html/my_job.php
Так что теперь я не хочу выполнять page.php, когда кто-то обращается к моему page.php из своего браузера:
https://mywebpage.com/page.php
Я получил эту ошибку «Ошибка PAM: системная ошибка»из / var / log / httpd / error_log, когда кто-то получает доступ к моей странице.Я предполагаю, что эта ошибка вызвана проблемой с разрешением, может кто-нибудь подскажет, пожалуйста, как это исправить, или подскажет.Я не могу найти ни одного ответа или примера в Интернете.
ОБНОВЛЕНИЕ
Спасибо, что Бармар напомнил мне, что я должен использовать полный путь.И теперь это мой новый page.php, но я все еще получаю ту же ошибку "Ошибка PAM".Любое предложение, пожалуйста?
<?php
exec('at -f /var/www/html/job.txt now + 1 minutes');
>?
Я думаю, что основной проблемой является команда AT.Если я удалю команду AT и с помощью команды 'sh' она будет работать.
exec('sh /var/www/html/job.txt');
ОБНОВЛЕНИЕ:
Итак, в конце концов я обнаружил проблему, SELinux блокируетapache использовать команду atd.Теперь я больше не получаю сообщение об ошибке PAM в error_log после установки SELinux на Permissive.Тем не менее, я все еще получаю некоторую ошибку, мой / var / log / httpd / error_log появляется 'работа 47 в субботу, 26 мая 22:38:00 2018', все кажется нормальным, но my_job.php не работает.Зачем?Я что-то пропустил?