SLES12-SP5服务器Apache2目录列表启用失败,求解决方法
解决SLES12-SP5上Apache2目录列表启用及404问题
针对你遇到的目录列表不显示且返回404的问题,按以下步骤排查解决:
1. 确认目标目录的存在与权限
- 先检查
/scratch/log_dir是否真实存在:
若目录不存在,执行ls -ld /scratch/log_dirmkdir -p /scratch/log_dir创建。 - 确保Apache运行用户(SLES中默认是
wwwrun)对该目录及上级路径有访问权限:
若权限仍有问题,可直接调整目录属主:# 给上级目录添加执行权限(让Apache能进入目录) chmod o+x /scratch # 给目标目录添加读和执行权限 chmod o+rx /scratch/log_dirchown -R wwwrun:www /scratch/log_dir
2. 验证Apache配置与模块状态
- 检查配置语法是否合法:
若报错,根据提示修正apache2ctl -thttpd.conf中的配置。 - 确保
mod_autoindex模块已启用(这是目录列表功能的核心模块):
执行后重启Apache服务:a2enmod autoindexsystemctl restart apache2 - 排查是否有其他配置冲突:检查
/etc/apache2/vhosts.d/下的虚拟主机配置文件,确保没有覆盖/scratch/log_dir的Options或Require规则。
3. 修正访问路径匹配问题
404错误的核心原因是浏览器访问的URL未对应到/scratch/log_dir,解决方式二选一:
- 方式一:创建软链接到Apache根目录
Apache默认站点根目录为/srv/www/htdocs,给目标目录创建软链接:
重启Apache后,访问ln -s /scratch/log_dir /srv/www/htdocs/log_dirhttp://你的服务器IP/log_dir即可查看目录列表。 - 方式二:添加Alias映射
在httpd.conf中你的<Directory>配置块上方添加:
重启Apache后,同样访问Alias /log_dir /scratch/log_dirhttp://你的服务器IP/log_dir即可。
4. 排除默认索引文件干扰
如果/scratch/log_dir下存在index.html、index.php这类默认索引文件,Apache会优先显示这些文件而非目录列表,可临时重命名测试:
mv /scratch/log_dir/index.html /scratch/log_dir/index.html.bak
内容的提问来源于stack exchange,提问作者saravanan jothilingam
相关产品推荐
相关产品推荐

