我创建了一个 PHP 脚本,它将在 10 秒后通过提供的邮件列表连续发送邮件,但如果我在我的网络浏览器中保持打开状态,它就可以工作,但是有没有办法在我的托管服务器上运行这个脚本,所以我不需要总是打开我的浏览器和互联网连接,这个脚本会在我的电脑关闭的情况下在服务器本身中持续运行吗?
4 回答
将其作为守护进程或 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+C或KILL
信号、分叉 dameon、日志记录。
假设您遇到命令字段的问题,
在“要运行的命令:”字段中,输入脚本的完整路径(您可能需要与您的主机核实)。如果要运行 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
希望这会有所帮助。
为此,您需要使用 cron 作业。Cron 作业可以按您设置的定期间隔运行。
你可以通过cron运行它...
SSH 到您的托管服务提供商并转到您的 crontab,使用crontab -e
并在每设定的时间内设置一个将使用 wget 的 cron。
wget [options] [url]
在谷歌上搜索如何正确执行此操作的 crons
编辑:如果您无法访问 SSH,并且您使用的是 Windows,则可以设置计划任务,这是 cron 作业的残缺兄弟。您可以运行一个模拟 wget 的 php 脚本。我建议对通过控制台运行 php 的 *.bat 文件运行计划任务
doThis.bat
php [script-location]