将 Laravel 核心文件移动到 private_html 目录
Moving Laravel Core Files to private_html Directory
作为安全预防措施,我的老板要求我将 Laravel 7 应用移出 public_html 文件夹并移至 private_html。
所以我的目录结构是这样的:
public_html/public/
private_html/ <-- All the rest of the Laravel core files, app, config, routes, .env, etc.
现在,正如我移动文件后预期的那样,当我访问该网站时收到 HTTP 错误 500。
如何告诉 Laravel 我的 public 文件夹在哪里,以便可以恢复为我的网页提供服务?我需要编辑哪些配置文件?
感谢您的帮助。
编辑 1:在尝试了 Youssef 的建议后,一切都很好,除了我 运行
php artisan storage:link
我得到:
编辑 2:
我能够通过打开 config/filesystems.php 并更改:
来修复“php artisan storage:link”
'links' => [
public_path('storage') => storage_path('app/public'),
],
收件人:
'links' => [
'/new/directory/public_html/public/storage' => storage_path('app/public'),
],
然后,当我键入:
php artisan storage:link
创建了一个新的符号链接。
在public/index.php中将这两个文件的路径更改为它们的当前路径。
autoload.php
的第一行路径
__DIR__.'/../vendor/autoload.php';
至
require __DIR__.'/../../private_html/vendor/autoload.php';
app.php
的第二行路径
$app = require_once __DIR__.'/../bootstrap/app.php';
至
$app = require_once __DIR__.'/../../private_html/bootstrap/app.php';
并将其放入 \App\Providers\AppServiceProvider
register()
方法中以设置 public 目录的路径。
**
* Register any application services.
*
* @return void
*/
public function register()
{
// ...
$this->app->bind('path.public', function() {
return base_path().'/../public_html/public';
});
}
如果您需要直接访问存储的文件,最后重新分配存储目录的路径,使用命令:
php artisan storage:link
您还可以将所有文件从 public_html/public
移动到 public_html
并调整我上面提到的路径
作为安全预防措施,我的老板要求我将 Laravel 7 应用移出 public_html 文件夹并移至 private_html。
所以我的目录结构是这样的:
public_html/public/
private_html/ <-- All the rest of the Laravel core files, app, config, routes, .env, etc.
现在,正如我移动文件后预期的那样,当我访问该网站时收到 HTTP 错误 500。
如何告诉 Laravel 我的 public 文件夹在哪里,以便可以恢复为我的网页提供服务?我需要编辑哪些配置文件?
感谢您的帮助。
编辑 1:在尝试了 Youssef 的建议后,一切都很好,除了我 运行
php artisan storage:link
我得到:
编辑 2:
我能够通过打开 config/filesystems.php 并更改:
来修复“php artisan storage:link”'links' => [
public_path('storage') => storage_path('app/public'),
],
收件人:
'links' => [
'/new/directory/public_html/public/storage' => storage_path('app/public'),
],
然后,当我键入:
php artisan storage:link
创建了一个新的符号链接。
在public/index.php中将这两个文件的路径更改为它们的当前路径。
autoload.php
的第一行路径__DIR__.'/../vendor/autoload.php';
至
require __DIR__.'/../../private_html/vendor/autoload.php';
app.php
的第二行路径$app = require_once __DIR__.'/../bootstrap/app.php';
至
$app = require_once __DIR__.'/../../private_html/bootstrap/app.php';
并将其放入 \App\Providers\AppServiceProvider
register()
方法中以设置 public 目录的路径。
**
* Register any application services.
*
* @return void
*/
public function register()
{
// ...
$this->app->bind('path.public', function() {
return base_path().'/../public_html/public';
});
}
如果您需要直接访问存储的文件,最后重新分配存储目录的路径,使用命令:
php artisan storage:link
您还可以将所有文件从 public_html/public
移动到 public_html
并调整我上面提到的路径