Поэтому я только что опубликовал сборку laravel на своем производственном сервере. Но файл .env был читаем, когда я его загрузил. Поэтому я загрузил его в корень моего сайта рядом с public_html/
каталог.
Мой вопрос: как сказать Laravel, где .env
файл находится? Это сработало, когда у меня было это в public_html/
папка, но как мне сказать, чтобы он смотрел в корневой папке?
Установить путь env в самозагрузки / app.php:
$app->useEnvironmentPath($env_path);
например, макет каталога для моего проекта:
webapp
-laravel
-public
-.env
Пользовательский путь к файлу env
$app->useEnvironmentPath(
dirname(__DIR__, 2)
);
Как вы можете прочитать в официальная документация, Файл .env должен находиться в корневом каталоге вашего приложения Laravel. Там нет никакого способа изменить местоположение файла (и я думаю, что нет никакого смысла тоже).
Более того, корневая папка НЕ ДОЛЖНА быть общедоступной папкой, так как .env не должна подвергаться общедоступному доступу, в противном случае ее главная цель безопасности будет полностью потеряна.
Что нужно загрузить на public_html
это содержание public
каталог в установке Laravel, включая любые файлы JavaScript, CSS-файлы или изображения, которые должны быть доступны клиенту, все остальное должно быть размещено вне общедоступного каталога.
Таким образом, вы можете получить доступ к файлу .env из другого места, но это не очень хорошо для безопасности.
ваш-проект / начальная загрузка / app.php
$ app = new Illuminate \ Foundation \ Application (
Realpath (DIR.’/../’)
);
добавьте этот код в файл .htaccess для безопасности
<Files .env>
order allow,deny
Deny from all
</Files>
Я закончил тем, что установил символическую ссылку с public на public_html, и все заработало как положено