Linux环境下XAMPP配置虚拟主机出现DocumentRoot指向错误问题
问题排查与解决步骤
1. 显式添加NameVirtualHost指令(适配部分XAMPP发行版)
打开你的httpd-vhosts.conf文件,在配置最顶部添加一行代码:
NameVirtualHost *:80
Apache 2.4之后该指令默认启用,但部分XAMPP打包的旧版本Apache需要显式声明才能基于域名匹配虚拟主机,否则会默认返回第一个匹配80端口的虚拟主机内容,或者 fallback 到默认htdocs配置。
2. 解决默认虚拟主机冲突
检查httpd.conf中是否存在默认的<VirtualHost *:80>配置指向XAMPP原生的htdocs目录,如果存在请将其注释,或者将该配置移动到httpd-vhosts.conf所有自定义虚拟主机之前作为默认 fallback 项:
# 可放在httpd-vhosts.conf最顶部 <VirtualHost *:80> DocumentRoot "/opt/lampp/htdocs" ServerName localhost </VirtualHost>
调整后访问localhost就会返回默认htdocs内容,不会和自定义项目冲突。
3. 核对域名输入
你描述中提到访问webev.app1存在拼写错误,正确域名是webdev.app1,注意输入的域名需和配置的ServerName完全一致。
4. 重启Apache生效配置
所有配置修改后必须重启XAMPP的Apache服务才会生效,执行命令:
sudo /opt/lampp/lampp restartapache
5. 排查目录权限问题
Linux下Apache运行用户默认无权限访问普通用户home目录下的内容,需要给项目上级目录开放执行权限:
chmod +x /home/(user) chmod -R 755 /home/(user)/webdev
同时确认Apache运行用户对webdev目录有读权限。
6. 验证配置正确性
执行XAMPP自带的Apache配置检查命令确认配置无语法错误:
sudo /opt/lampp/bin/apachectl -S
输出的虚拟主机列表中如果能看到webdev.app1和webdev.app2的配置,说明配置已被正确加载。
内容的提问来源于stack exchange,提问作者gowner
相关产品推荐
相关产品推荐

