有没有办法在cron中每十分钟或在预定时间运行脚本来添加一个php脚本(文件)?在cron中添加php脚本以执行来自php的计划任务?
因为我希望用户能够安排何时发送通讯到他选择的很多电子邮件。
所以我必须从PHP创建一个cron作业来在该预定时间运行一个php文件。
,如果你有一个共享的网络托管环境(不VPS)
有没有办法在cron中每十分钟或在预定时间运行脚本来添加一个php脚本(文件)?在cron中添加php脚本以执行来自php的计划任务?
因为我希望用户能够安排何时发送通讯到他选择的很多电子邮件。
所以我必须从PHP创建一个cron作业来在该预定时间运行一个php文件。
,如果你有一个共享的网络托管环境(不VPS)
如果脚本文件名是news.php和/home/user/news.php 的crontab线好像是这是可能的:
* * * * * php /home/user/news.php
如果你不想每分钟运行一次。 您可以编辑*与左(M,H,DOM,星期一,DOW)
但是,如果只有你有相同的虚拟主机,你不能做到这一点, 你必须能够访问外壳或其他方法来配置 您crobtab文件(可能从您的提供商接入面板)
但是你可以在其他服务器上运行的crontab工作由Apache over HTTP协议来运行你的news.php。在此选项中,远程服务器上的crontab作业必须通过网络运行脚本。例如。 wget的是一个很好的选择,因为它:
* * * * * wget http://www.yourdomain.com/dir/news.php
我的建议是不允许Apache的调用来改变的cron的PHP脚本。这是灾难写的。通常cron被设置为需要root权限。这是可以改变的,但重点是如果你的网站被黑客入侵,给攻击者修改你的cron的能力可能会非常糟糕。
更重要的是,它不是必需的。你所要做的就是选择一些粒度,比如说每分钟或5分钟或10分钟。你对用户说,他们可以把它安排到这个级别。给他们一些从每个月到每5分钟的选项。无论他们选择什么,将其写入数据库。
然后每1,5或10分钟运行一次不同的PHP脚本(无论最小粒度是多少),并让它查看数据库以查看是否有任何要运行,执行或发送的内容。
是这是可能的,但在共享主机上它会影响你的以及该主机上的其他网站。
因此,如果你的文件没有经常被cron调用,那么可以把cron放在共享主机上,但是如果你必须经常调用它,那么这是不可取的,你也可以由你的提供者抛出,因为没有人因为其他网站而希望有不足之处的网站。
伟大的解决方案! – 2010-04-19 13:45:18
那么我的解决方案是不被接受?;-) – Svisstack 2010-04-19 14:04:39