今天给一台刚装的CentOS 5-64bit的机器装Apache,以前用VPS用习惯了,按照VPS的老方法装Apache,并且写好虚拟主机配置文件,准备启动Apache,但是执行/etc/init.d/httpd start的时候failed,并且不提示任何错误消息。于是找了下Apache报错日志error_log文件,发现有如下一行:
(13)Permission denied: httpd: could not open error log file
一般来说我看到Permission denied首先想到的是权限设置出了问题,于是开始给我的日志目录各种改权限、改归属用户。但是就算我设了777权限,这个错误依旧存在,而且错误信息还都是这么一句。
无语上了一下百度,结果搜出来的结果无非就是该权限、重装Apache之类的。然后又搜了一下看到国外一个博客里面提到了使用chcon的方法,试后错误照旧。而且我又发现这个错误很奇怪,因为在用httpd命令强制启动成功后,从外网还是无法访问到Apache的页面。于是突然想到,是不是和万恶的SELINUX有关。主要是平常用VPS比较多,而一般VPS都是默认禁止了SELINUX的,因此一开始也没有想到这个东西上面。使用命令setenforce 0临时关闭selinux之后,再启动service httpd start就成功了。
好吧,不得不说SELINUX实在是令人郁闷,如果没什么特殊需要的话朋友们就禁用掉它吧。