【问题标题】:Run a PHP file in a cron job using CPanel使用 CPanel 在 cron 作业中运行 PHP 文件
【发布时间】:2011-11-12 01:35:08
【问题描述】:

我只是想在 CPanel 中使用 cron 作业运行 PHP 脚本 - 这是正确的语法吗:

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null

我没有收到任何说明 cron 已完成的电子邮件通知,我需要对 PHP 文件执行任何特定操作吗?

【问题讨论】:

  • 我认为看到许多项目都托管在 Cpanel 上是非常相关的,如果需要,人们需要知道如何运行 cron 作业
  • 如果服务器故障或堆栈溢出中不允许使用 cPanel,应该在哪里提出问题?
  • 颇具讽刺意味的是,这个问题被归类为 StackOverflow 的“离题”,但这是我在这里遇到过的最活跃的问题.....我希望它对其他人有所帮助:)跨度>
  • Thanx @Tatu Ulmanen 它对我有用!

标签: php cron cpanel


【解决方案1】:

在 Hostgator CPANEL 上这对我有用:

php /home/here_your_user_name/public_html/cronJob.php

【讨论】:

    【解决方案2】:

    其实很简单,

    php -q /home/username/public_html/cron/cron.php
    

    【讨论】:

      【解决方案3】:

      对于特定领域的Multi PHP Cron Job,这样做,

      /usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script
      

      在上面的示例中,将“ea-php56”替换为分配给您希望使用的域的 PHP 版本。

      希望这对某人有所帮助。

      【讨论】:

        【解决方案4】:

        专家建议。

        /usr/local/bin/php /home/username/public_html/path/to/cron/script
        

        【讨论】:

          【解决方案5】:

          这很好用,还可以发送电子邮件:

          /usr/bin/php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

          以下两个命令也可以正常工作,但不发送电子邮件:

          /usr/bin/php -f /home/同上

          php -f /home/同上

          【讨论】:

            【解决方案6】:

            这条 cron 行在使用 cpanel 的 hostgator VPS 上为我工作。

            /usr/bin/php -q /home/username/public_html/scriptname.php
            

            【讨论】:

              【解决方案7】:

              我希望您的问题也与路径和 php 二进制文件有关。 如果您已根据旧答案修复了路径,请在运行 cron 作业时使用 php-cli 而不是 php 命令。

              php_sapi_name() 可能没有返回 cli。它返回其他东西,如cgi-fcgi 等。

              /usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null

              我希望它会有所帮助。

              【讨论】:

                【解决方案8】:

                我在 CPanel 上使用 /usr/bin/php 时遇到了问题,因为它被编译为“cgi-fcgi”二进制文件而不是“cli”。尝试使用 /usr/local/bin/php 或者,因为它在路径中的第一个,所以只需使用 'php' 代替:

                php /path/to/script.php
                

                如果您想将脚本作为可执行文件运行,请给它 +x perms 并使用以下内容作为脚本的第一行:

                #!/usr/bin/env php
                

                【讨论】:

                  【解决方案9】:

                  这是最简单的方法:

                  php -f /home/your_username/public_html/script.php

                  如果要将脚本输出记录到文件中,请将其添加到命令的末尾:

                  >> /home/your_username/logs/someFile.txt 2>&1

                  【讨论】:

                    【解决方案10】:

                    就是这样:

                    /usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null
                    

                    【讨论】:

                      【解决方案11】:

                      我使用此命令为此激活 cron 作业。

                      /usr/bin/php -q /home/username/public_html/yourfilename.php
                      

                      在godaddy服务器上,它工作正常。

                      【讨论】:

                      【解决方案12】:

                      在 crontab 系统中:

                      • /usr/bin/php 是 php 二进制路径(在某些系统中不同,例如:freebsd /usr/local/bin/php,linux:/usr/bin/php
                      • /home/username/public_html/cron/cron.php 应该是你的 php 脚本路径
                      • /dev/null 应该是 cron 输出,例如:/home/username/stdoutx.txt

                      因此您可以通过查看 cron 输出 /home/username/stdoutx.txt 来监控您的 cron

                      【讨论】:

                      • 我现在正在使用它并且它可以工作,但是我没有收到任何电子邮件通知任何想法为什么不呢? php /home/username/public_html/cron/cron.php 注意我必须将以下行放在 PHP 脚本的顶部 #! /usr/bin/php -q
                      • 如果你想让 cronjob 为你发送电子邮件,你必须使用 php mail(),我不认为 cronjob 有自动邮件系统,除非你使用 shell 脚本或 php。
                      • 当我点击 cPanel 中的“cronjobs”选项卡时,页面上有两个框 - 一个用于您希望执行的命令,另一个用于您希望输出的电子邮件地址被送到。这是在 cPanel 11 中。
                      • 什么是完整的命令?我的意思是在一行中包含所有选项的完整命令。
                      • @SomyA 请告诉我运行 java 脚本文件的命令。
                      【解决方案13】:

                      >/dev/null 阻止 cron 发送邮件。

                      实际上在我看来,最好让 php 脚本本身来关心它的日志记录,而不是仅仅向 cron 输出一些东西

                      【讨论】:

                      • 请问你是怎么做到的? cronTabs 不会输出到什么东西吗?我在结尾也是>/dev/null 2>&1...
                      • @ThomasK 如果你做这样的任务/path/to/file.php > /dev/null 它会保持沉默。
                      猜你喜欢
                      • 1970-01-01
                      • 2014-03-07
                      • 2014-07-22
                      • 1970-01-01
                      • 2021-07-28
                      • 2017-02-27
                      • 1970-01-01
                      • 2014-04-24
                      相关资源
                      最近更新 更多