我在设置允许我从 PHP 脚本管理 cron 作业的服务器时遇到了麻烦。这个想法是:用户可以根据需要创建任意数量的任务,并可以为每个任务设置警报。将警报保存到 MySQL 数据库后,我想在用户指定的时间为该条目创建一个 cronjob。
逻辑非常简单,但我对 unix 用户/文件权限感到沮丧。问题是,用户“www-data”没有运行 crontab 的权限,因此我不能使用它通过 php 脚本中的 shell_exec 调用来管理 cronjobs。我已经阅读了很多关于类似问题的教程/线程,但没有任何运气。我能得到的最接近的是我应该确保 www-data 用户有权运行 crontab(我很肯定它没有)。但是,我将“www-data”用户放入“crontab”组,我在“/etc/cron.d”目录中创建了“cron.allow”文件,但仍然没有。
顺便说一句,我正在使用 $output = shell_exec("crontab -u www-data -l") 来查看它是否正常工作(如果 $output == null 则出现错误)。
我应该怎么做才能使它工作?或者我应该使用一些不同的方法(也许我可以有一些 www-data 可写的文件并在 crontab 配置中设置它应该在那里检查 cronjobs,但我也不知道该怎么做)?