我正在创建一个 Web 应用程序。部分功能取决于用户可以启动/停止导入电子邮件的 cronjob。
它不起作用。
只是为了确保我走在正确的轨道上,作为初学者,我只想让 'crontab -l' 从 php 工作并将其打印到 Web 浏览器。
这就是我的做法(handle_email_cronjob.php):
$output = shell_exec('crontab -l');
echo $output;
但我得到的只是一无所有。(做 shell_exec('ls -l'); 给我目录中的文件/目录列表)
猫错误日志:
'/var/spool/cron' is not a directory, bailing out.
好吧,无论错误日志说什么,它都是一个目录。ls -Z /var/spool:
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 cron
SELinux 已开启,我不想改变它。
ls -Z /var/spool/cron:
-rwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 apache
-rw-------. root root unconfined_u:object_r:cron_spool_t:s0 root
应该使用的是apache。(我确实尝试将 cron_spool_t 设置为 apache,但仍然没有工作。)
ls -Z handle_email_cronjob.php:
-rwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_script_exec_t:s0 handle_email_cronjob.php
我只是有一种直觉,它与 SELinux 有关,但我不知道如何修复它。
有什么问题,我该如何解决?(或者有比我更好的方法吗?)