问题描述
我在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',],// ...
],
请注意,这不是最佳做法。