You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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容器,通过反向代理实现请求转发:

    1. 在httpd.conf中启用反向代理模块:
      LoadModule proxy_module libexec/apache2/mod_proxy.so
      LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
      
    2. 修改虚拟主机配置,将请求转发到Tomcat运行端口(注意避免与Apache端口冲突,若Apache用8080,Tomcat可改用8081):
      <VirtualHost *:80>
          ServerName labraize.in
          ProxyPass / http://localhost:8081/prestige-apis/
          ProxyPassReverse / http://localhost:8081/prestige-apis/
      </VirtualHost>
      
  • 验证配置并重启Apache
    每次修改配置后先检查语法正确性:

    sudo apachectl configtest
    

    无错误提示后重启服务:

    sudo apachectl restart
    
  • 排查默认站点优先级
    若上述操作无效,可暂时注释httpd.conf中默认的站点配置,避免其覆盖自定义虚拟主机:

    # DocumentRoot "/Library/WebServer/Documents"
    # <Directory "/Library/WebServer/Documents">
    #     ... 原默认配置内容 ...
    # </Directory>
    

内容的提问来源于stack exchange,提问作者Meta Stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:40:29