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

Laravel 9部署至cPanel出现404错误求助

Laravel 9 部署至 cPanel 404 错误排查方案

1. 核对项目文件结构(核心问题点)

Laravel 正确部署逻辑并非将整个项目放入 public_html,而是:

  • 将 Laravel 项目根目录(含 app、vendor、bootstrap 等文件夹)放在 public_html 同级目录(比如 cPanel 主目录下新建 laravel-project 文件夹存放)
  • 将 Laravel 项目中 public 目录下的所有文件(含 index.php、.htaccess)完整复制到 public_html 目录
  • 修改 public_html/index.php 中的路径引用,指向外部的项目目录:
    // 原代码
    require __DIR__.'/../vendor/autoload.php';
    $app = require_once __DIR__.'/../bootstrap/app.php';
    
    // 修改后(假设外部项目文件夹名为 laravel-project)
    require __DIR__.'/../laravel-project/vendor/autoload.php';
    $app = require_once __DIR__.'/../laravel-project/bootstrap/app.php';
    

2. 确认 mod_rewrite 模块启用

进入 cPanel 的「Apache Configuration」→「Module Manager」,检查 mod_rewrite 是否处于启用状态,未启用则勾选开启。

3. 调整 .htaccess 规则

替换 public_html/.htaccess 为适配 cPanel 的规则:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

4. 检查目录与文件权限

  • public_html 文件夹权限设置为 755
  • 所有文件(含 index.php)权限设置为 644
  • 避免因权限不足导致服务器无法读取文件

5. 清除 Laravel 缓存

若有 SSH 权限,进入项目根目录执行:

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

若无 SSH 权限,可在 public_html 临时创建 clear-cache.php 文件(执行后删除):

<?php
exec('php ../laravel-project/artisan config:clear');
exec('php ../laravel-project/artisan cache:clear');
exec('php ../laravel-project/artisan route:clear');
exec('php ../laravel-project/artisan view:clear');
echo "缓存已清除";
?>

(注意替换 ../laravel-project 为你的实际项目路径)

内容的提问来源于stack exchange,提问作者Md. Sakibur Rahman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:51:09