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,需排查解决。
<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

