0

作为安全预防措施,我的老板要求我将我的 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:在尝试了优素福的建议后,一切都很好,除非我跑步

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

创建一个新的符号链接。

4

1 回答 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()设置公共目录路径的方法中。

**
 * 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/publicpublic_html并调整我上面提到的路径

于 2020-08-11T22:45:29.570 回答