在apache上运行的php脚本

时间:2013-04-26 00:54:07

标签: php apache cron

您好我有一个问题,想知道是否可以使用php脚本在apache中运行规则。 我举个例子 假设我想删除在数据库中注册超过1年的图像。 然后我制作一个正确的剧本?让它在apache中运行这个检查,间隔为5分钟?

3 个答案:

答案 0 :(得分:1)

不确定你想要实现什么,但很可能你想在Cron中运行这个脚本,而不是在Apache中运行。

http://en.wikipedia.org/wiki/Cron

使用Apache有几个原因:

  • 使用Apache,脚本将根据客户端的请求执行。你永远不知道下一个请求何时会发生 - 可能是5分钟,也许是两年。
  • 启动脚本后,您的客户端必须等到脚本完成;这将不必要地增加页面加载时间。

答案 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

祝你好运