六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 69|回复: 0

Apache配置磁盘缓存时Permission denied的解决

[复制链接]

升级  4.8%

156

主题

156

主题

156

主题

进士

Rank: 4

积分
524
 楼主| 发表于 2013-1-27 04:46:30 | 显示全部楼层 |阅读模式
      最近,对网站完整性进行评估时,发现生产机现有的Apache存在一些漏洞需要修补。前两天,开始着手进行修补,考虑之后,还是觉得重新安装新版Apache比较稳妥,一方面把版本更新到我们需要的版本,另一方面,可以保留原版本,万一升级后出现问题,可以快速地恢复。
      原版本是2.0.59,我们的目标是升级到2.2.10,没有别的原因,2.2.10是Sun官方的最新版本,呵呵。
      安装过程就不必多说了,无非是 ./configuration ,make,make install。安装好之后,在apache安装目录下建了一个cache目录作为磁盘缓存的目录。在httpd.conf文件中增加了配置项来启用缓存功能:
<IfModule mod_cache.c>  CacheDefaultExpire 3600   CacheMaxExpire 86400   CacheLastModifiedFactor 0.1  <IfModule mod_disk_cache.c>     CacheRoot /usr/local/apache2.2.10/cache     CacheMaxFileSize 10000000     CacheMinFileSize 1   CacheEnable disk /     CacheDirLevels 5     CacheDirLength 3  </IfModule>   #<IfModule mod_mem_cache>  #   CacheEnable mem /  #   MCacheSize 4096  #   MCacheMaxObjectCount 100  #   MCacheMinObjectSize 1  #   MCacheMaxObjectSize 2048  #</IfModule></IfModule>按照文档(官方和非官方)说明,前面的配置无误的话,启动Apache就应该能实现缓存功能了。
      满心欢喜地敲入 bin/apachectl start ,启动没有报错,看来有戏。
      先进入cache目录看看,有没有跟预想的一样有缓存文件产生.....咦!啥也没有啊,难道缓存没有生效吗?再看看日志:tail -f logs/error_4.log,发现日志有如下内容:
[Wed Nov 12 16:02:32 2008] [debug] mod_cache.c(131): Adding CACHE_SAVE filter for /content/9162.shtml
[Wed Nov 12 16:02:32 2008] [debug] mod_cache.c(138): Adding CACHE_REMOVE_URL filter for /content/9162.shtml
[Wed Nov 12 16:02:32 2008] [debug] mod_cache.c(639): cache: Caching url: /content/9162.shtml
[Wed Nov 12 16:02:32 2008] [debug] mod_cache.c(645): cache: Removing CACHE_REMOVE_URL filter.
看样子,缓存应该生效了呀,怎么在cache目录下没有文件生成呢?想既然日志中已有缓存日志,缓存应该生效了,就这样就可以了。后来想想还是不踏实,再找找原因。
      再仔细看看日志,发现下面还有这样的内容:
[Wed Nov 12 16:02:32 2008] [debug] mod_cache.c(830): (13)Permission denied: cache: store_headers failed
原来是这里的鬼,缓存目录没有权限,把缓存目录先授权再说:
chmod -R 777 cahce
再看目录属性,已经由原来的:
drwxr-xr-x   2 root     other        512 Nov 12 14:53 cache
变成
drwxrwxrwx 934 root     root       11776 Nov 13 10:45 cache
 
再重启apache,没有报错,查看日志, (13)Permission denied: cache: 也不再报,进入cache目录,有文件生成!
OK,这样才算大功告成。
 
 
感触:
      有句话:世上最怕就是认真两个字。  这话一点不假,如果半途就马虎应付,问题就得不到解决;稍微认真仔细了一点,问题就迎刃而解了。 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表