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

Ubuntu22.04 Apache2多Laravel项目部署访问异常求助

问题背景

已在Ubuntu 22.04服务器完成PHP、MariaDB、Apache2环境配置,Laravel项目部署在/var/www/html/site1.it路径并正常运行。后续在/var/www/html/site2.it部署第二个Laravel项目,复用site1的配置步骤创建site2.conf并重启Apache2,同时在Mac的hosts文件中配置了IP与域名的映射,但访问http://site2.it时会跳转至site1.it,需排查解决。

site1.conf 配置内容
<VirtualHost *:80>
    ServerAdmin site1@localhost
    ServerName site1
    ServerAlias site1.it
    DocumentRoot /var/www/html/site1.it/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =site1.it [OR]
    RewriteCond %{SERVER_NAME} =site1
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
#<VirtualHost *:443>
 #    DocumentRoot /var/www/html/site1.it/public
 #    ServerName site1
 #    ServerAlias www.site1.it
 #    SSLEngine on
 #    SSLCertificateFile /home/
 #    SSLCertificateKeyFile /home
 #
 #    <Directory /var/www/html/site1.it/public>
 #        Order allow,deny
 #        AllowOverride All
 #        Allow from all
 #    </Directory>
#</VirtualHost>
排查及解决建议
  • 校验site2.conf配置准确性
    确保site2.conf中所有字段对应site2项目,示例正确配置如下:

    <VirtualHost *:80>
        ServerAdmin site2@localhost
        ServerName site2
        ServerAlias site2.it
        DocumentRoot /var/www/html/site2.it/public
        ErrorLog ${APACHE_LOG_DIR}/site2-error.log
        CustomLog ${APACHE_LOG_DIR}/site2-access.log combined
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =site2.it [OR]
        RewriteCond %{SERVER_NAME} =site2
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    </VirtualHost>
    

    重点检查ServerName、ServerAlias、DocumentRoot是否替换为site2的信息,避免遗漏site1相关字段。

  • 确认site2站点已启用
    执行命令启用site2站点:sudo a2ensite site2.conf,随后重启Apache2:sudo systemctl restart apache2。
    可临时禁用site1站点(sudo a2dissite site1.conf)后访问site2.it,验证site2配置是否生效。

  • 禁用Apache默认站点
    默认的000-default.conf可能作为 fallback 站点干扰匹配,执行sudo a2dissite 000-default.conf禁用后重启Apache测试。

  • 检查Mac hosts文件映射
    确认hosts文件中两条映射均正确:

    服务器IP地址    site1.it
    服务器IP地址    site2.it
    

    在Mac终端执行ping site2.it,确认返回服务器IP,排除DNS解析错误。

  • 清除缓存
    浏览器永久重定向缓存可能导致错误跳转,清除浏览器缓存后重试;Mac终端执行sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder刷新系统DNS缓存。

  • 查看Apache虚拟主机匹配状态
    执行sudo apache2ctl -S查看所有已加载的虚拟主机,确认输出中包含site2.it的条目,检查配置是否被正确识别。

  • 检查site2项目权限及配置
    修复目录权限:sudo chown -R www-data:www-data /var/www/html/site2.it,设置存储目录权限:sudo chmod -R 775 /var/www/html/site2.it/storage。同时确认.env文件中APP_URL设置为http://site2.it(或对应HTTPS地址)。

内容的提问来源于stack exchange,提问作者64Bit1990

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:40:36