【发布时间】:2012-02-02 03:04:00
【问题描述】:
我需要在每天的预定时间运行一个 php 脚本来更新数据库中的某些字段并发送自动电子邮件。我怎么能做到这一点?
是否可以在 XAMP 服务器中编写一些服务以每天在预定时间运行脚本?我不知道如何更新数据库并在预定时间自动发送电子邮件。谁能分享一些想法或概念?
我正在使用在 Linux 服务器上运行的 PHP 和 MySQL。
【问题讨论】:
我需要在每天的预定时间运行一个 php 脚本来更新数据库中的某些字段并发送自动电子邮件。我怎么能做到这一点?
是否可以在 XAMP 服务器中编写一些服务以每天在预定时间运行脚本?我不知道如何更新数据库并在预定时间自动发送电子邮件。谁能分享一些想法或概念?
我正在使用在 Linux 服务器上运行的 PHP 和 MySQL。
【问题讨论】:
您应该使用Cron 作业来执行此操作。查看the Wikipedia page 上的示例。
Cron 作业应使用运行必要任务的php 可执行文件调用脚本。
【讨论】:
只需创建执行所需工作的脚本,一旦确定它可以正常工作,通过在浏览器中点击 URL 来测试它。复制网址并添加Cronjob
然后安排此命令在您想要运行的任何时间运行
php ABSOLUTE_URL_TO_SCRIPT >> logfile
日志文件是可选的。但它会让你有机会看看发生了什么。
例如,如果您想每 4 小时运行一次脚本,并假设您的脚本位于 http://localhost/work/scripty.php 并假设您的 http 根目录是 /var/www,
您将在终端中运行“crontab -e”并添加以下行:
* */4 * * * php /var/www/work/scripty.php
如果您需要更多信息,请发表评论,我会更新答案。
【讨论】:
include_path 设置正确,或者您使用绝对路径(当前文件的完整路径总是在__FILE__ 中)应该没有问题。使用 lynx 是不必要的资源浪费;它包括 lynx、网络服务器和 PHP。直接运行脚本包括 PHP。
PHP 不能自己运行脚本,因为 php 没有像 python 这样的守护进程!! 因此,您必须借助操作系统的帮助来调用您的自定义脚本。
例如在 linux 中: (example.sh) 导出 USE_PHP=php cd $SCRIPT_ROOTDIR $USE_PHP -f cronfile.php service="checkdatabase" (服务是传递给您的 cronfile 的参数)。
要设置 cron 作业,请查看此链接 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
【讨论】:
在 Linux 中,我们可以创建 .sh 文件,并可以给出一个特定的运行时间,称为 cron 作业。 所以应该使用这种方法只是制作一个shell文件并给它一个时间段。 为此,您应该寻求 linux 专家的帮助。
使用以下内容:Cron Job
【讨论】: