我有一个在 AWS 上运行的 Web 服务器,它连接到一个 mysql 数据库。数据库有一个每天运行一次的事件。我需要在同一计划上运行一个 php 脚本来检查数据库,然后发送推送通知。我不相信我可以从数据库中执行此操作,因此需要在 Web 服务器上完成。我只是不知道如何在 AWS 上做这种事情。
我从未运行过 cron 作业,但这似乎是我想要的,但我不知道这是如何在 AWS 上完成的,它可以触发 php 脚本吗?
您在这里遇到了几个问题,最重要的是建立您的 SSH 访问权限(正如您所说的,“控制台访问权限”)。没有它,您将无法设置您的 cron 作业。
至于 cron 作业,您将需要执行以下步骤:
1) 设置一个 crontab 文件,可能在您的主目录中。这是一个示例文件,可帮助您入门:
#This file is: /home/<your-user-name>/mycronfile.cron
#Use "crontab mycronfile.cron" to reinstall this file
#Use "crontab -l" to list the contents of the current crontab
#Use man 5 crontab for info
#Format is: minute hour dayofmonth month dayofweek
# * * * * * *
# | | | | | |
# | | | | | +-- Year (range: 1900-3000)
# | | | | +---- Day of the Week (range: 1-7, 1 standing for Monday)
# | | | +------ Month of the Year (range: 1-12)
# | | +-------- Day of the Month (range: 1-31)
# | +---------- Hour (range: 0-23)
# +------------ Minute (range: 0-59)
# , and - can be used as in 0,15,30,45 or 1-5
# run my script every WEEKDAY at 3pm
0 15 * * 1-5 php -f /Library/Developer/myscript.php
# note that it's okay to leave out Year since I'm not using it
2) 按照上面 cron 示例中的指示,从您的主目录安装此文件:
crontab mycronfile.cron
3)通过键入以下内容确认已安装:
crontab -l
最后一点是,在您的 PHP 脚本中,您不能使用 $_SERVER 全局变量,因为 CLI 模式不支持这些全局变量。你所有的路径都必须是绝对的。