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

Laravel执行storage:link遇open_basedir限制问题求助

方法1:手动创建软链接(推荐)

如果您有服务器文件管理器或FTP权限,可直接手动创建软链接:

  • 定位到Laravel项目的public目录,路径为/home/chanvays/domains/chanvay.store/public_html/public
  • 在该目录下创建软链接,目标指向../../storage/app/public(对应绝对路径/home/chanvays/domains/chanvay.store/public_html/storage/app/public)
  • 若能使用SSH(即使无法执行php artisan),可切换到public目录后执行命令:
    ln -s ../storage/app/public storage
    

方法2:修改路由逻辑用PHP手动创建链接

替换您原有的路由代码,直接调用PHP的symlink函数创建链接,避免Artisan命令的路径解析问题:

Route::get('/linkstorage', function () {
    $publicStorage = public_path('storage');
    $appPublicStorage = storage_path('app/public');

    if (!file_exists($publicStorage) && !is_link($publicStorage)) {
        symlink($appPublicStorage, $publicStorage);
        return 'Storage link created successfully.';
    }

    return 'Storage link already exists.';
});

访问https://chanvay.store/linkstorage即可完成链接创建,此方法会确保路径在open_basedir允许的范围内(错误提示允许路径包含/home/chanvays/,上述两个路径均符合要求)。

方法3:修改文件系统配置(应急方案)

若上述方法均不可行,可直接将公共存储目录指向public下的子目录,无需软链接:

  1. 打开config/filesystems.php,找到disks中的public配置:
    'public' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
        'url' => env('APP_URL').'/uploads',
        'visibility' => 'public',
    ],
    
  2. 在public目录下创建uploads文件夹
  3. 将原storage/app/public中的文件迁移到public/uploads目录

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

相关产品推荐
方舟 Agent Plan

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

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