2013-04-26 87 views
0

你好我有一个问题,想知道是否有可能使用php脚本在apache中运行规则。 我会举一个例子 比方说,我想要删除在数据库中注册超过1年的图像。 然后我做一个脚本吧?给它留下它运行在apache这个检查间隔5分钟?在apache上运行的php脚本

+3

的疑问句这很难理解。你能展示一些你已经尝试过的代码吗? – hek2mgl 2013-04-26 00:56:15

+0

Apache不会进行调度。你会想要像cron – Phil 2013-04-26 00:56:33

+1

Linux,Windows或Mac? – 2013-04-26 00:56:36

回答

1

不知道你到底想要达到什么目的,但很可能你想在Cron而不是Apache中运行这个脚本。

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

有几个原因使用Apache:

  • 与Apache,脚本会在客户的要求来执行。你永远不知道什么时候下一个请求会发生 - 可能在5分钟内,也许在两年内。
  • 一旦脚本启动,您的客户端将不得不等待脚本完成;这将不必要地增加页面加载时间。
1

要单独运行一个脚本,在命令行中使用

php file.php 

。为了让经常跑每x,您使用Cron,您通过命令行访问的大部分时间用命令

crontab -e 

但所有这一切假设您可以访问命令行您的服务器上。如果你不这样做,最好只使用Require once将脚本包含在每个页面的顶部,以便每当有人加载你的站点时运行脚本

+0

不是所有情况。例如,要从Cronjob运行,您需要包含PHP位置'/ usr/local/php'。 – 2013-04-26 01:12:22

1

Apache自身不处理自动化/调度,还有另外一种Linux技术可以让你执行这样的任务。


理由使用cron在阿帕奇

  • 不支持自动化/定时的请求

  • 活动将在用户请求(导航到你的PHP
    脚本时进行)

  • 一旦用户naviga TES从当前页面了,目前
    执行脚本将停止

为什么使用Cronjobs? - 克朗支持定时事件 - 不需要任何用户请求(运行自动化) - 执行脚本,直到它已完成执行 - 控制输出,您可以控制输出推到一个文本 文件记录或转到/ dev/null以销毁所有输出

Down Cides To Cron?

有通常是没有缺点到cronjobs,而一个烦恼的是,在一个服务器管环境,cron将会尝试到电子邮件任何输出(回声,打印,的print_r,的var_dump或任何HTML)到root别名


这就是所谓的cron job通常被称为cron这是什么一样,本质上是喜欢Windows Task Scheduler它运行在您希望例如参数的任务.. 时间

以下文本是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

好运

相关问题