2012-01-04 81 views
4

我需要在计划的时间每天运行一个php脚本来更新数据库中的某些字段并发送自动发送的电子邮件。我如何做到这一点?如何在预定时间运行PHP脚本

是否可以在XAMP服务器中编写一些服务以便在计划的时间每天运行脚本?我不知道如何更新数据库并在预定时间自动发送电子邮件。任何人都可以分享一些想法或概念吗?

我使用在Linux服务器上运行的PHP和MySQL。

回答

3

您应该使用Cron工作来完成它。查看the Wikipedia page上的示例。

Cron作业应使用运行必要任务的可执行文件php调用脚本。

0

在Linux中,我们可以创建.sh文件,并且可以给出一个特定的时间来运行,称为cron作业。 所以SO应该使用这个方法创建一个shell文件并给它一个时间段。 你应该为linux专家提供帮助。

使用以下命令:Cron Job

2

只需创建一个具有所需作业的脚本,通过点击浏览器中的URL进行测试,一旦你确定它的作品的权利。复制该网址,并添加任何时候你想运行

php ABSOLUTE_URL_TO_SCRIPT >> logfile 

日志文件是可选的一个Cronjob

然后安排这个命令在运行。但它会让你有机会看到发生了什么。

例如,如果你想运行脚本每4小时,并假设你的脚本是http://localhost/work/scripty.php,并假设你的HTTP根是/ var/WWW,

你会在终端中运行“crontab -e命令”并添加以下行:

* */4 * * * php /var/www/work/scripty.php 

如果您需要更多信息只是评论我会更新答案。

+0

这将运行工作每4分钟,而不是小时。当你可以直接运行脚本时,为什么要使用lynx呢? – 2012-01-04 06:57:33

+0

感谢您的纠正和l is是无痛的,因为在php cli中,即使您只是运行脚本,相关的php包括也会搞砸,除非您明确地将当前目录更改为脚本。我希望他的脚本在没有任何修改的情况下运行:) – BlackDivine 2012-01-04 07:11:28

+0

如果'include_path'设置正确,或者您使用绝对路径(当前文件的完整路径总是在__FILE__中),应该没有问题。使用l is是不必要的资源浪费;它包括l,,网络服务器和PHP。直接运行脚本包括PHP。 – 2012-01-04 07:17:33

0

PHP不能自行运行脚本,因为php没有像python这样的守护进程! 所以你必须采取操作系统的帮助来调用你的自定义脚本。

例如在Linux中: (example.sh) 出口USE_PHP = PHP CD $ SCRIPT_ROOTDIR $ USE_PHP -f cronfile.php服务= “checkdatabase” (服务传递给你的cronfile参数)。

有关设置cron作业,看看这个链接 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/