0

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

4

3 回答 3

1

Apache 它本身不处理自动化/调度,还有另一种 linux 技术可供您执行这样的任务。


在 apache 上使用 Cron 的原因

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

  • 将根据用户请求进行事件(导航到您的 php
    脚本时)

  • 一旦用户离开当前页面,当前正在
    执行的脚本将停止

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

对 Cron 不利?

cronjobs 通常没有缺点,但令人烦恼的是,在服务器环境中,cron 会尝试通过电子邮件将任何输出(echo、print、print_r、var_dump 或任何 HTML)发送到root别名


这称为 acron job通常称为 acron它的作用,本质上就像Windows Task Scheduler它在您希望的参数中运行任务的位置,例如.. Time

在此文本之后是 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 设置,请关注此帖子:

在 Mac 上开始使用 cronjobs

祝你好运

于 2013-04-26T01:20:25.693 回答
1

不确定您到底想实现什么,但很可能您想在 Cron 中运行此脚本,而不是在 Apache 中。

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

使用 Apache有几个原因:

  • 使用 Apache,脚本将根据客户的请求执行。你永远不知道下一个请求何时会发生——也许在 5 分钟内,也许在两年内。
  • 脚本启动后,您的客户端将不得不等到脚本完成;这将不必要地增加页面加载时间。
于 2013-04-26T00:56:23.350 回答
1

要单独运行脚本,请使用

php file.php

在命令行中。为了让它每 x 经常运行一次,你使用Cron,你大部分时间通过命令行访问它的命令

crontab -e

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

于 2013-04-26T00:59:15.830 回答