Apache虚拟主机仅显示“It works”而非项目页面求助
解决Mac Apache虚拟主机显示“It works”而非Java项目页面的问题
确认虚拟主机配置已加载
检查httpd.conf中是否开启了虚拟主机配置文件的引入,确保以下行未被注释:Include /private/etc/apache2/extra/httpd-vhosts.conf(路径根据你的Apache实际安装位置调整,Mac默认路径为上述内容)
验证端口监听与访问方式
你的虚拟主机配置使用8080端口,需先确保httpd.conf中添加了对应端口的监听:Listen 8080访问时必须明确指定端口:
http://labraize.in:8080,否则会默认走80端口的Apache默认站点,导致显示“It works”。修复目录权限问题
Apache运行用户为_www,需确保项目目录有足够权限让Apache访问:# 赋予目录及子文件执行/读取权限 chmod -R 755 /Users/lalarukh/data/code/prestige-apis # 必要时修改目录所属用户组 sudo chown -R _www:_www /Users/lalarukh/data/code/prestige-apis修正Java应用部署逻辑
Apache本身无法直接运行Java应用(WAR/JAR项目),需搭配Tomcat等Servlet容器,通过反向代理实现请求转发:- 在httpd.conf中启用反向代理模块:
LoadModule proxy_module libexec/apache2/mod_proxy.so LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so - 修改虚拟主机配置,将请求转发到Tomcat运行端口(注意避免与Apache端口冲突,若Apache用8080,Tomcat可改用8081):
<VirtualHost *:80> ServerName labraize.in ProxyPass / http://localhost:8081/prestige-apis/ ProxyPassReverse / http://localhost:8081/prestige-apis/ </VirtualHost>
- 在httpd.conf中启用反向代理模块:
验证配置并重启Apache
每次修改配置后先检查语法正确性:sudo apachectl configtest无错误提示后重启服务:
sudo apachectl restart排查默认站点优先级
若上述操作无效,可暂时注释httpd.conf中默认的站点配置,避免其覆盖自定义虚拟主机:# DocumentRoot "/Library/WebServer/Documents" # <Directory "/Library/WebServer/Documents"> # ... 原默认配置内容 ... # </Directory>
内容的提问来源于stack exchange,提问作者Meta Stack
相关产品推荐
相关产品推荐

