Установить местоположение laravel .env

Поэтому я только что опубликовал сборку laravel на своем производственном сервере. Но файл .env был читаем, когда я его загрузил. Поэтому я загрузил его в корень моего сайта рядом с public_html/ каталог.

Мой вопрос: как сказать Laravel, где .env файл находится? Это сработало, когда у меня было это в public_html/ папка, но как мне сказать, чтобы он смотрел в корневой папке?

3

Решение

Установить путь env в самозагрузки / app.php:

$app->useEnvironmentPath($env_path);

например, макет каталога для моего проекта:

 webapp
-laravel
-public
-.env

Пользовательский путь к файлу env

$app->useEnvironmentPath(
dirname(__DIR__, 2)
);
2

Другие решения

Как вы можете прочитать в официальная документация, Файл .env должен находиться в корневом каталоге вашего приложения Laravel. Там нет никакого способа изменить местоположение файла (и я думаю, что нет никакого смысла тоже).

Более того, корневая папка НЕ ​​ДОЛЖНА быть общедоступной папкой, так как .env не должна подвергаться общедоступному доступу, в противном случае ее главная цель безопасности будет полностью потеряна.

1

Что нужно загрузить на public_html это содержание public каталог в установке Laravel, включая любые файлы JavaScript, CSS-файлы или изображения, которые должны быть доступны клиенту, все остальное должно быть размещено вне общедоступного каталога.

1

Таким образом, вы можете получить доступ к файлу .env из другого места, но это не очень хорошо для безопасности.

ваш-проект / начальная загрузка / app.php

$ app = new Illuminate \ Foundation \ Application (
Realpath (DIR.’/../’)
);

$ App-> useEnvironmentPath (базовый_путь ( ‘имя_папки /’));

добавьте этот код в файл .htaccess для безопасности

<Files .env>
order allow,deny
Deny from all
</Files>
0

Я закончил тем, что установил символическую ссылку с public на public_html, и все заработало как положено

0
По вопросам рекламы [email protected]