php - 在 Laravel 5.1 中使用 .env 设置存储路径

标签 php laravel laravel-5 phpdotenv

我想使用 .env 文件在 Laravel 5.1 中配置存储路径。我的 bootstrap/app.php 看起来像这样:

<?php
$app = new \Illuminate\Foundation\Application(
    realpath(__DIR__.'/../')
);
$app->useStoragePath(getenv('STORAGE_PATH'));

.env 文件中的相关行是:

STORAGE_PATH=/var/www/storage

这行不通。我发现 Dotenv 库在处理 Bootstrap 后 被初始化,因此 .env 变量在 bootstrap.php 中不可用。

是否有不同的地方可以设置存储路径和可用的 .env 变量?

最佳答案

config/filesystems.php 中,您可以设置存储路径。尝试在那里设置您的存储路径,看看它是否有效。请注意,下面的示例是我对您的 config/filesystems.php 外观的建议。不要介意 s3 设置。这是我项目的一部分。

记得从 app.php

中删除 $app->useStoragePath(getenv('STORAGE_PATH'));
return [

    'default' => 's3',

    'cloud' => 's3',

    'disks' => [

        'local' => [
            'driver' => 'local',
            'root'   => env('STORAGE_PATH'),
        ],

        's3' => [
            'driver' => 's3',
            'key'    => env('AWS_KEY'),
            'secret' => env('AWS_SECRET'),
            'region' => env('AWS_REGION'),
            'bucket' => env('AWS_BUCKET'),
        ],

        'rackspace' => [
            'driver'    => 'rackspace',
            'username'  => 'your-username',
            'key'       => 'your-key',
            'container' => 'your-container',
            'endpoint'  => 'https://identity.api.rackspacecloud.com/v2.0/',
            'region'    => 'IAD',
        ],
    ],
];

关于php - 在 Laravel 5.1 中使用 .env 设置存储路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30779351/

相关文章:

php - Laravel:如何在 Form POST 中使用参数以在 Route::post 中使用?

php - Laravel,将数据从数组保存到数据库

php - 在 PHP 中读取 CSV 文件返回黑色菱形中的问号

php - 使用 Laravel 4 更新/插入连接 View

php - 获取 Laravel 异常的模型

php - Laravel 试图删除最后添加的 MySQL 行

php - laravel whereHas 结果很奇怪

PHP 过早退出 while 循环

php - preg_match 第二场比赛

php - 如何停止 Doctrine2 迁移 :Diff from always adding foreign key relationships that already exist in Database?