【问题标题】:How to set a crontab using php?如何使用 php 设置 crontab?
【发布时间】:2011-06-30 09:41:14
【问题描述】:

我需要从 php 脚本设置一个 crontab。我知道它可以由

设置

system("echo '* * * * * echo \"Hello world\"' >> cron.crontab"); system("crontab cron.crontab"); //cron.crontab is the file name of the crontab

“cron.crontab”文件在根目录中创建,但 crontab 没有按预期工作!当我尝试以下命令时,它说没有设置 crontab!

crontab -l

我想我错过了一些东西。我正在使用 yii 框架。在 yii 框架中是否有处理 cron 的扩展?还有其他方法吗?请帮我。谢谢。

【问题讨论】:

  • 不完全重复。该问题涉及那里接受的答案中的代码,看起来它不起作用。
  • 问题略有不同,但这个问题的答案是链接中接受的答案的最后一句话。

标签: php unix cron crontab


【解决方案1】:

您通常必须是 root 才能设置 crontab,这与 php 以 root 身份运行不同,在这种情况下您不走运。

编辑:并非完全不走运。请参阅上面塞巴斯蒂安评论中的链接。

【讨论】:

  • PHP 在服务器上以用户身份运行……作为用户,它可能有一个可以为自己设置的 crontab。但这些作业将作为网站/服务器的用户运行,可能有也可能没有足够的访问权限来完成工作。
  • 没错。感谢您的澄清。
【解决方案2】:

您是否以与运行 Web 服务器相同的用户身份运行 crontab -l?否则你将看不到它的 cronjobs。

【讨论】:

    【解决方案3】:

    Apache 通常无法使用主 crontab。但是,每个用户也有一个 crontab,而且您上面的代码很可能设置了 apache 的 crontab(或您的站点运行的任何用户的 crontab)。

    尝试crontab -u apache -l,或将apache 替换为您的网站运行的任何用户,并查看您设置的条目是否存在。

    【讨论】:

      猜你喜欢
      • 2015-12-28
      • 2021-12-25
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      相关资源
      最近更新 更多