2

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

4

4 回答 4

2

将其作为守护进程或 cron 运行。对于 cron,您可以低至每 1 分钟运行一次。Cron 不支持 bellow 。cron 条目将如下所示,

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

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

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

守护程序解决方案更灵活但难以实施。为此,您必须处理信号处理以处理Ctrl+CKILL信号、分叉 dameon、日志记录。

于 2012-10-28T16:02:32.647 回答
2

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

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


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

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

希望这会有所帮助。

于 2012-10-29T14:20:42.087 回答
0

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

于 2012-10-28T15:59:42.393 回答
0

你可以通过cron运行它...

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

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

wget [options] [url]

在谷歌上搜索如何正确执行此操作的 crons

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

doThis.bat

php [script-location]
于 2012-10-28T16:01:27.917 回答