我需要从浏览器执行AT命令。我的/etc/at.deny为空,而/etc/at.allow不存在。我可以执行" php page.php"在命令行上与任何用户一起工作正常。
这是我的页面(page.php):
<?php
exec('at -f job.txt now + 1 minutes');
?>
我的job.txt:
/bin/php /var/www/html/my_job.php
所以现在当有人从他们的浏览器访问我的page.php时,我不想执行page.php:
https://mywebpage.com/page.php
我收到此错误&#34; PAM失败:系统错误&#34;当有人访问我的页面时,从/ var / log / httpd / error_log。我想这个错误是由许可问题引起的,有人可以告诉我如何解决它或给我一些建议。我无法在线找到任何答案或示例。
更新
感谢Barmar提醒我,我应该使用完整路径。现在这是我的新page.php,但我仍然得到同样的错误&#34; PAM失败&#34;。有什么建议吗?
<?php
exec('at -f /var/www/html/job.txt now + 1 minutes');
>?
我认为主要问题是AT命令。如果我删除AT命令并使用&#39; sh&#39;命令它会起作用。
exec('sh /var/www/html/job.txt');
更新
所以最后我发现了问题,SELinux阻止apache使用atd命令。现在我没有得到PAM失败&#34;在我将SELinux设置为Permissive后,在error_log中。但是,我仍然收到一些错误,我的/ var / log / httpd / error_log出现在2018年5月26日星期六22:38:00&#39;作业47,一切似乎没事,但是my_job.php没有作品。为什么?我错过了什么吗?