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

时间:2015-06-11 11:20:29

标签: php laravel laravel-5 laravel-dotenv

我想使用.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库已初始化,因此.env中的bootstrap.php变量不可用。

我可以设置存储路径并且.env变量可用吗?

1 个答案:

答案 0 :(得分:3)

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

请务必从$app->useStoragePath(getenv('STORAGE_PATH'));

中删除app.php
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',
        ],
    ],
];