【问题标题】:PHP Exec Crontab Not Doing AnythingPHP Exec Crontab 什么都不做
【发布时间】:2012-07-21 00:35:21
【问题描述】:

我正在尝试使用 PHP 脚本设置 cron 作业。这在我运行 XAMPP 的计算机上运行良好,但是当我在我的网络主机(Just Host)上尝试它时,它并没有将它添加到 cron 作业列表中。这是PHP代码:

exec('crontab cronfile.txt');

cronfile.txt 内容:

* * * * * /usr/bin/php -q /home/-username-/public_html/cron/cron.php 1

但是,当我通过 cPanel 添加它时,这确实有效,并且我可以使用 shell_exec('crontab -l') 查看任何 cron 作业。任何想法如何解决这个问题?

【问题讨论】:

  • 我建议通过 cpanel 添加 cronjobs,而不是通过 PHP。如果您需要从 PHP 应用程序添加自己的计划任务,请每 5 分钟设置一个 cronjob 以检查它是否有事情要做。

标签: php exec crontab shell-exec


【解决方案1】:

很可能 Apache 以不同于 username 的用户身份运行,因此它不会更新 usernames crontab 文件。运行脚本

<?php phpinfo()

并验证 Apache 以哪个用户身份运行。

在我的系统上,我看到以下内容

User/Group  apache(48)/48

【讨论】:

  • 呼叫系统('whoami');返回我的用户名
【解决方案2】:

你应该使用这个exec('crontab /tmp/cronfile.txt')
它会起作用。 您可以将每个脚本添加到此文件中。
示例:

touch /tmp/cronfile.txt
vi /tmp/cronfile.txt
* * * * * path-to-script
* * * * * path-to-script2 
.
.
finally
crontab /tmp/cronfile.txt
crontab -l you will see your cron list 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多