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

将Laravel 10+Inertia React部署到cPanel时遇HTTP 500错误求助

Laravel 10 + Inertia React部署cPanel遇HTTP 500错误的排查方案

针对你部署时遇到的问题——index.php能显示自定义文本但Laravel启动就报500,说明web服务器能正常解析PHP,但Laravel的初始化流程出了问题,按以下步骤排查:

1. 先看Laravel错误日志

直接去storage/logs/laravel.log里找具体错误信息,这是最快定位问题的方式。如果没权限访问日志,临时打开调试模式:修改.env里的APP_DEBUG=true,刷新页面就能看到详细错误(生产环境记得改回false)。

2. 核对文件权限

cPanel上Laravel的权限很容易出问题:

  • storage、bootstrap/cache目录权限设为755或775,目录里的文件设为644
  • .env文件权限别设成777(不安全),一般644就行
  • 如果把整个Laravel项目放在public_html里,确保vendor目录权限正确,不然自动加载会失败

3. 确认index.php的路径修改是否正确

你改了index.php里的URL,要保证核心文件的加载路径没错:

  • 如果整个Laravel项目都在public_html下,index.php里的路径应该是:
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
  • 如果是把Laravel的public目录内容移到public_html,项目主体在上级目录,那路径要改成:
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

路径错了会直接导致加载不了Laravel核心,触发500。

4. 清缓存重置配置

用cPanel终端或SSH执行这些命令:

php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan optimize:clear

没SSH权限的话,临时在index.php开头加这段代码,访问一次后删掉:

<?php
use Illuminate\Support\Facades\Artisan;

Artisan::call('config:clear');
Artisan::call('cache:clear');

5. 检查Inertia前端配置和编译

  • 确认resources/js/app.js里的Inertia配置没问题,比如页面解析路径正确:
createInertiaApp({
  resolve: name => require(`./Pages/${name}.jsx`),
  setup({ el, App, props }) {
    ReactDOM.render(<App {...props} />, el)
  },
})
  • 部署前一定要编译前端资源:npm run build,确保public/js、public/css里有编译后的文件,且权限正常。

6. 核对PHP版本

Laravel 10要求PHP至少8.1,去cPanel的PHP选择器里看看当前版本是否符合,不符合就切换到8.1及以上版本。


内容的提问来源于stack exchange,提问作者Abdul Wahed Sabury

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:33:23