"关了防火墙还不通?"
当你盯着"无法访问此网站"四个字发呆时,可能已经踩进了一个比防火墙更深的坑。
这坑不是端口没开,也不是服务没起,而是系统里藏着的那个"隐形保安"在搞事情。它叫SELinux,平时装死,一旦你的网页文件放错了地方,或者Apache想跑自定义目录,它就直接锁死通道——连报错都懒得告诉你。
检查方法其实超简单,就跟翻钱包找身份证一样:
先敲一行`sestatus`,如果看见"Enforcing"仨字,八成就是它。
再跑`ls -Z /var/www/html`,要是文件标签不对,恭喜,找到元凶。
处理也粗暴:
1. 别急着`setenforce 0`,那是拔网线式断案。先切到宽容模式`setenforce 0`,能访问就说明定位没错。
2. 永久修复就像给文件盖公章:`semanage fcontext -a -t httpd_sys_content_t "/data/www?"`,再跑`restorecon -Rv /data/www`让它立即生效。
3. 实在吃不准,就装个`setroubleshoot-server`,它会把错误翻译成"人话",连命令都帮你写好。
末了记住:图省事关掉SELinux,等于把大门钥匙挂门把手上。能让网页跑起来的办法很多,但最靠谱的,永远是读懂它的脾气,而不是赶走它。