PHP \ Laravel中的符号链接问题

问题描述


我在Direct admin上使用Laravel 7。我实际上没有访问命令行/终端的权限,我需要存储的符号链接

我尝试过:

Route::get('/foo',function () {
    Artisan::call('storage:link');
});

还有:

symlink('/domains/MyProject.com/LaravelFolder/storage/app/public','/domains/MyProject.com/public_html');

但是我收到此错误

symlink() has been disabled for security reasons

我的LaravelFolder放在public_html之前。

更新:我意识到托管公司已禁用此功能;我要求他们启用它,但是他们说:这是不可能的。您知道另一种方法吗?

解决方法

但是我终于解决了这个问题,它看起来有点愚蠢,但是可以起作用:

在Ubuntu Linux中,我尝试使用以下命令创建一个符号链接,如Laravel中的存储符号链接:

ln -s ../laravelFolder/storage/app/public storage

,然后我压缩了此符号链接,并将其上传到我的public_html文件夹,它可以正常工作。 希望对您有所帮助。

,

您可以修改public磁盘的根路径以直接指向公用文件夹。请考虑以下代码段;

/** /config/filesystems.php */

'disks' => [
    // ...
    'public' => [
        'driver' => 'local','root' => public_path('storage'),'url' => env('APP_URL').'/storage','visibility' => 'public',],// ...
],

请注意,这不是最佳做法。