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

CentOS 7 部署 Laravel 5 绑定域名后无法正常访问求助

解决Laravel虚拟主机访问仍显示Apache默认页的问题

我来帮你一步步排查这个问题,这种情况通常是虚拟主机配置未生效、优先级冲突或者权限设置导致的,按以下步骤逐一验证:

1. 确认虚拟主机配置文件被正确加载

CentOS 7 上的 Apache 只会加载 /etc/httpd/conf.d/ 目录下以 .conf 结尾的配置文件。如果你把虚拟主机配置放在了其他位置,或者文件名没有 .conf 后缀,Apache 是不会识别的。

  • 先检查你的配置文件位置和命名,比如应该是 /etc/httpd/conf.d/mydomain.conf
  • 执行命令检查配置语法是否正确:
    httpd -t
    
    如果返回 Syntax OK,再重启 Apache 服务让配置生效:
    systemctl reload httpd
    

2. 检查默认站点的优先级冲突

Apache 会优先匹配第一个符合条件的虚拟主机,如果默认的 Apache 配置(比如 /etc/httpd/conf/httpd.conf 里的默认站点)优先级高于你的自定义虚拟主机,就会显示默认页面。

  • 打开 /etc/httpd/conf/httpd.conf,找到默认的 DocumentRoot 配置段,比如:
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
        ...
    </Directory>
    
    可以暂时注释掉这个默认配置段,然后重启 Apache 再测试。

3. 验证文件权限与 SELinux 设置

Laravel 对 storage 和 bootstrap/cache 目录需要写权限,而且 CentOS 7 默认开启的 SELinux 可能会阻止 Apache 访问这些目录:

  • 先设置正确的文件所有者:
    chown -R apache:apache /var/www/html/laravel
    
  • 给必要目录添加写权限:
    chmod -R 755 /var/www/html/laravel/storage /var/www/html/laravel/bootstrap/cache
    
  • 配置 SELinux 上下文(避免临时关闭 SELinux带来的安全问题):
    chcon -R -t httpd_sys_rw_content_t /var/www/html/laravel/storage /var/www/html/laravel/bootstrap/cache
    
    如果想临时测试是否是 SELinux 的问题,可以执行 setenforce 0,再访问网站试试,如果生效了,记得修改 /etc/selinux/config 把 SELINUX=enforcing 改成 SELINUX=permissive(永久生效需要重启服务器)。

4. 检查 DNS 或本地 hosts 解析

如果是测试环境,确保你的本地机器的 hosts 文件(Windows 是 C:\Windows\System32\drivers\etc\hosts,Linux/macOS 是 /etc/hosts)已经添加了对应解析:

服务器IP  www.mydomain.com mydomain.com

如果是公网环境,检查 DNS 解析是否已经生效(可以用 nslookup www.mydomain.com 验证)。

5. 查看 Apache 日志定位问题

如果以上步骤都没解决,查看 Apache 的访问日志和错误日志,能帮你找到具体问题:

  • 访问日志:/var/log/httpd/access_log
  • 错误日志:/var/log/httpd/error_log
    看看访问 www.mydomain.com 时有没有报错信息,比如 403 权限错误、配置加载失败等,根据日志再针对性解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:11:15