您好我有一个问题,想知道是否可以使用php脚本在apache中运行规则。 我举个例子 假设我想删除在数据库中注册超过1年的图像。 然后我制作一个正确的剧本?让它在apache中运行这个检查,间隔为5分钟?
答案 0 :(得分:1)
不确定你想要实现什么,但很可能你想在Cron中运行这个脚本,而不是在Apache中运行。
http://en.wikipedia.org/wiki/Cron
使用Apache有几个原因:
答案 1 :(得分:1)
要自行运行脚本,请使用
php file.php
在命令行中。要使它经常每x运行一次,您可以使用Cron,您可以通过命令行使用命令
进行访问。crontab -e
但所有这些都假定您可以访问服务器上的命令行。如果不这样做,最好只使用Require once将脚本包含在每个页面的顶部,以便每次有人加载您的网站时都会运行该脚本
答案 2 :(得分:1)
Apache它自己不处理自动化/调度,还有另一种Linux技术可供你执行这样的任务。
使用Cron over apache的原因
不支持自动/定时请求
事件将根据用户请求进行(导航到您的php时) 脚本)
用户导航离开当前页面后,当前为
执行脚本将停止
为什么要使用Cronjobs? - Cron支持定时活动 - 不需要任何用户请求(自动运行) - 执行脚本直到它完成执行 - 控制输出,您可以控制输出以推入文本 用于记录的文件或转到/ dev / null以销毁所有输出
Down Sides To Cron?
cronjobs通常没有缺点,相反令人烦恼的是,在服务器环境中,cron将尝试通过电子邮件将任何输出(echo,print,print_r,var_dump或任何HTML)发送到root
别名
这称为cron job
,通常称为cron
,它的作用基本上类似于Windows Task Scheduler
,它在您希望的参数中运行任务.. < EM>时间的。
在此文本之后是cronjob的基本条目以及如何访问它。
如果您通过cpanel
访问,那么任务列表底部附近应该有一个选项。如何使用cpanel创建一个在自己的页面中解释。
从命令行编辑:
在这种情况下使用您喜欢的文本编辑器我将使用nano ..我以root身份运行
nano /etc/crontab
然后,您将看到一个基本输入(除非修改)
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
添加以下行(修改以满足您的要求)这一行将每分钟运行一次。
* * * * * root /usr/bin/php /var/www/cron.php # This will run every minute as the root user
布局的
* * * * *
- 代表时间,在这种情况下......每周,每小时,每一天,每周的每个月
root
- 这是cron将作为
/usr/bin/php
- 出于兼容性原因,您应该包括安装PHP的路径
/var/www/cron.php
- 基于所述时间执行的PHP脚本的位置
cronjob的设置:
* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
使用我在本部分文本上方显示/解释的内容,修改您的crontab以满足您的要求
如果使用Mac设置,请按照以下文章进行操作:
Getting started with cronjobs on a Mac
祝你好运