所以我刚刚向我的生产服务器发布了一个laravel版本。但是当我上传它时,.env文件是可读的。所以我将它上传到我public_html/
目录旁边的网站的根目录。
我的问题是:如何告诉laravel .env
文件的位置?我在public_html/
文件夹中使用它时有效但是如何告诉它查看根文件夹?
答案 0 :(得分:2)
在 bootstrap / app.php 中设置env路径:
$app->useEnvironmentPath($env_path);
例如,我的项目的目录布局:
webapp
-laravel
-public
-.env
env文件的自定义路径
$app->useEnvironmentPath(
dirname(__DIR__, 2)
);
答案 1 :(得分:1)
您需要上传到public_html
的是Laravel安装中public
目录的内容,包括客户应该可以访问的任何JavaScript文件,CSS文件或图像,其他所有内容都应该公开。目录
答案 2 :(得分:1)
正如您在official documentation中所读到的那样,.env文件必须位于Laravel应用程序的根目录中。没有办法改变文件位置(我认为也没有意义)。
此外,根文件夹SHOULDN' T是公共文件夹,因为.env不应该公开访问,否则它的主要安全目标将完全丢失。
答案 3 :(得分:0)
这样您就可以从其他位置访问.env文件,但这对安全性不利。
您的项目/引导/ app.php
$ app = new Illuminate \ Foundation \ Application( 真实路径(的 DIR 即可。 '/ .. /') );
在.htaccess文件中添加此代码以确保安全性
<Files .env>
order allow,deny
Deny from all
</Files>
答案 4 :(得分:0)
我最终设置了一个从public到public_html的符号链接,一切都按预期工作