始终在主机服务器中运行PHP脚本

时间:2012-10-28 15:58:37

标签: php web-services

我已经创建了一个PHP脚本,它将在10秒后通过提供的邮件列表连续发送邮件,但是如果我在我的网络浏览器中保持打开它会有效,但有没有办法在我的托管服务器上运行此脚本本身,所以我不需要总是保持我的浏览器和互联网连接,这个脚本将在服务器本身连续工作,虽然我的电脑已关闭?

4 个答案:

答案 0 :(得分:2)

将其作为守护程序或cron运行。对于cron,你可以每隔1分钟运行一次。 Cron不支持吼叫。 cron条目看起来像这样,

# m h  dom mon dow   command
  * *  *   *   *    /usr/bin/php /path/to/project/file.php

对于守护进程,基本上你从命令行运行这个脚本。在脚本中,你运行一个10秒睡眠的while循环。

while(true){
    // do stuff
    sleep(10);
}

守护程序解决方案更灵活但难以实施。为此,您必须处理signal handling来处理 Ctrl + C KILL信号,forking dameon,记录。

答案 1 :(得分:2)

假设您遇到命令字段问题,
在“要运行的命令:”字段中,输入脚本的完整路径(您可能需要与主机核实)。 如果你想运行一个php文件,该命令将以php开头。例如,如果要运行RSS Import来更新Pligg提要,则输入php和import_feeds.php文件的路径。
在AN Hosting上,您的路径看起来像这样:

php /home/[your username]/public_html/rss/import_feeds.php


如果你想运行自动备份脚本,它备份你的MySQL数据库并通过电子邮件发送副本给你(参见8个WordPress Bloggers(和其他人)的MySQL备份策略,策略#7),你输入/ bin / sh(因为这是一个shell脚本),以及脚本的路径 在AN Hosting上,您的路径看起来像这样:

/bin/sh /home/[your username]/etc/upstart_cron_backup.sh

希望这会有所帮助。

答案 2 :(得分:0)

您需要使用cron作业。 Cron作业可以按照您设定的定期间隔运行。

答案 3 :(得分:0)

你可以通过cron ...

运行它

SSH到您的托管服务提供商 并使用crontab -e

转到您的crontab

并在每个设定的时间内设置一个使用wget的cron。

wget [options] [url]

搜索谷歌如何正确地执行此操作

编辑:如果您无法访问SSH,并且您正在使用Windows,则可以设置计划任务,这是cron作业的残缺兄弟。你可以运行一个模拟wget的php脚本。我建议将计划任务运行到* .bat文件,该文件通过控制台运行php

doThis.bat

php [script-location]