猿问

将 Laravel 核心文件移动到 private_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 ERROR 500。


我如何告诉 Laravel 我的公共文件夹在哪里,以便可以返回服务我的网页?我需要编辑哪些配置文件?


谢谢你的帮助。


编辑 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

创建了一个新的符号链接。


侃侃无极
浏览 70回答 1
1回答

莫回无

在 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()设置公共目录路径的方法中。**&nbsp;* Register any application services.&nbsp;*&nbsp;* @return void&nbsp;*/public function register(){&nbsp; &nbsp; // ...&nbsp; &nbsp; $this->app->bind('path.public', function() {&nbsp; &nbsp; &nbsp; &nbsp; return base_path().'/../public_html/public';&nbsp; &nbsp; });}最后,如果您需要直接访问存储的文件,请使用命令重新分配存储目录的路径:php artisan storage:link您还可以将所有文件从 移动public_html/public到public_html并调整我上面提到的路径
随时随地看视频慕课网APP
我要回答