Выполнить команду AT из браузера, когда кто-то заходит на мою страницу - PullRequest
0 голосов
/ 26 мая 2018

Мне нужно выполнить команду 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 не работает.Зачем?Я что-то пропустил?

...