在Hostgator主机子域名部署Laravel应用出现500错误求助
排查与修复步骤
- 第一步优先查看错误日志定位根因
优先查看服务器站点错误日志,或Laravel项目下storage/logs目录内的最新日志文件,500错误的具体原因会在日志中明确标注,可跳过盲目试错环节。 - 调整.htaccess配置(适配子目录部署)
你当前的.htaccess未配置子目录重写基准,部署在subdomain子目录下时需要补充RewriteBase规则,修改后的完整配置如下:
同时确认当前主机已开启<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # 新增子目录重写基准 RewriteBase /subdomain/ # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>mod_rewrite扩展,部分主机默认未开启该Apache模块会导致重写规则失效。 - 检查目录权限
确保Laravel项目的storage和bootstrap/cache两个目录的权限设置为755,部分权限管控严格的主机要求权限不能高于755,权限过高或过低都会触发500错误。 - 校验基础配置
- 确认当前主机PHP版本匹配你使用的Laravel版本要求,例如Laravel 9要求PHP >= 8.0,Laravel 10要求PHP >= 8.1
- 核对
index.php中引入的vendor和bootstrap路径完全正确,路径错误会导致核心文件加载失败 - 核对项目
.env文件中的站点域名、数据库连接等配置与当前主机环境匹配,不同主机的数据库配置存在差异
内容的提问来源于stack exchange,提问作者Qasim Mohammed
相关产品推荐
相关产品推荐

