PHP\Laravel 中的符号链接问题
Problem with Symbolic links in PHP\Laravel
我在直接管理员上使用 Laravel 7。我实际上无权访问 Command Line/Terminal,我需要 Symbolic link 存储。
我试过:
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 之前。
更新:我意识到托管公司禁用了这个功能;我要求他们启用它,但他们说:这是不可能的。你知道另一种方法吗?
您可以修改public
磁盘的根路径直接指向public文件夹。考虑以下代码片段;
/** /config/filesystems.php */
'disks' => [
// ...
'public' => [
'driver' => 'local',
'root' => public_path('storage'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
// ...
],
请注意,这不是最佳做法。
但我终于解决了这个问题,看起来有点愚蠢但它有效:
在 Ubuntu Linux 中,我尝试创建一个 symlink,就像 Laravel 中的存储符号 link,使用以下命令:
ln -s ../laravelFolder/storage/app/public storage
然后我压缩了这个符号 link 并上传到我的 public_html 文件夹并且它有效。
我希望它会有所帮助..
我在直接管理员上使用 Laravel 7。我实际上无权访问 Command Line/Terminal,我需要 Symbolic link 存储。
我试过:
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 之前。
更新:我意识到托管公司禁用了这个功能;我要求他们启用它,但他们说:这是不可能的。你知道另一种方法吗?
您可以修改public
磁盘的根路径直接指向public文件夹。考虑以下代码片段;
/** /config/filesystems.php */
'disks' => [
// ...
'public' => [
'driver' => 'local',
'root' => public_path('storage'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
// ...
],
请注意,这不是最佳做法。
但我终于解决了这个问题,看起来有点愚蠢但它有效:
在 Ubuntu Linux 中,我尝试创建一个 symlink,就像 Laravel 中的存储符号 link,使用以下命令:
ln -s ../laravelFolder/storage/app/public storage
然后我压缩了这个符号 link 并上传到我的 public_html 文件夹并且它有效。 我希望它会有所帮助..