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

Laravel项目部署于cPanel:如何将上传路径改为public_html?

解决cPanel中Laravel项目文件上传路径错误问题

核心问题分析

你的目录结构为Laravel项目主体与public_html同级,仅将原public目录内容移至public_html,导致public_path()默认指向项目内已不存在的public目录,进而上传功能无法识别正确的web根目录。

有效解决方案

方案1:全局绑定正确的public路径并清理缓存

  1. 打开app/Providers/AppServiceProvider.php,在register方法中添加路径绑定:
public function register()
{
    $this->app->bind('path.public', function () {
        // 假设项目根目录与public_html同级,根据实际目录结构调整路径
        return base_path('../public_html');
    });
}
  1. 登录cPanel终端,进入Laravel项目根目录,执行缓存清理命令:
php artisan config:clear
php artisan cache:clear
# 生产环境可重新缓存配置
php artisan config:cache

方案2:直接配置filesystems的root路径

  1. 在项目根目录的.env文件中添加public_html的绝对路径(可通过cPanel文件管理器查看具体路径):
PUBLIC_HTML_PATH=/home/your-username/public_html
  1. 修改config/filesystems.php中的real_public磁盘配置:
'real_public' => [
    'driver' => 'local',
    'root' => env('PUBLIC_HTML_PATH'),
    'url' => env('APP_URL'),
    'visibility' => 'public',
    'throw' => false,
],
  1. 执行缓存清理命令使配置生效。

方案3:验证index.php的路径指向

确保public_html/index.php已正确指向Laravel项目目录:

// 替换为你的项目根目录相对路径
require __DIR__.'/../laravel-project/vendor/autoload.php';
$app = require_once __DIR__.'/../laravel-project/bootstrap/app.php';

权限检查

确保public_html/upload/articles目录具备可写入权限:

chmod -R 755 /home/your-username/public_html/upload
chown -R your-username:your-username /home/your-username/public_html/upload

排障技巧

若上传仍失败,查看Laravel日志文件storage/logs/laravel.log,日志会显示具体错误(如路径不存在、权限不足),可针对性排查解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:04:58