如何为 laravel 生成 .env 文件?

Posted

技术标签:

【中文标题】如何为 laravel 生成 .env 文件?【英文标题】:How to generate .env file for laravel? 【发布时间】:2015-07-07 01:45:29 【问题描述】:

从documentation 我看到可以创建一个 laravel 项目 通过 laravel 安装程序:

$laravel new blog

或通过作曲家:

$composer create-project laravel/laravel --prefer-dist

如果我尝试第一种方法,则不会创建 .env 文件。 如何让 laravel、artisan 或 composer 为我创建一个 .env 文件?

【问题讨论】:

你至少应该有一个.env.example。您是否有可能因为文件被隐藏而看不到该文件? (以. 开头) 【参考方案1】:

刚刚尝试了两种方式,两种方式都生成了.env文件:

Composer 应该自动创建 .env 文件。在composer.jsonpost-create-project-cmd 部分,您可以找到:

"post-create-project-cmd": [
  "php -r \"copy('.env.example', '.env');\"",
  "php artisan key:generate"
]

两种方式都使用相同的composer.json文件,所以应该没有任何区别。

建议您将laravel/installer更新为last version:1.2,然后重试:

composer global require "laravel/installer=~1.2"

您始终可以通过运行手动生成.env 文件:

cp .env.example .env
php artisan key:generate

【讨论】:

我的 composer.json 上没有 laravel/installer 怎么办?只需 laravel/framework 在 require 和 laravel/homesead 在 require-dev... =/ - 但是手动创建它效果很好。 谢谢,当我将一个项目从我的存储库克隆到另一个系统时,我需要它,它工作得很好。【参考方案2】:

在 windows 操作系统中,您可以打开命令提示符,将目录切换到您的项目目录。 示例, 我的项目目录

E:\xampp\htdocs\my_project

您可以像这样在命令提示符中输入(按输入每一行):

E:

cd xampp\htdocs\my_project

然后你就可以打字了,

copy .env.example .env

如果您使用的是 Linux,您可以输入 cp,而不是 copy

【讨论】:

【参考方案3】:

我遇到了项目中没有显示 .env 文件的问题。

原来我使用的 IDE(Netbeans,尽量不要判断)会显示某些类型的 .hidden 文件,但不是全部。

绞尽脑汁后,我检查了文件系统并找到了 .env + .env.example 文件/用文本编辑器修改了它们。

对于像我这样使用狡猾的 IDE 的罕见情况,请留下这个答案。

【讨论】:

是的,这也是我的问题。好的 IDE 最后完成.. :D 问题询问如何 generate 不显示,但由于这被标记为正确答案,我添加了一个答案,告诉您如何在 Netbeans 中显示 .env而不是退出以使用另一个 IDE。 @Popnoodles 是的,这个答案只是指出了其他可能困扰提问者的潜在问题。坦率地说,当时的快速修复是使用记事本编辑器——但我什至不知道 OP 是否使用 Netbeans——它可能是任何其他 IDE 都有类似问题。这个问题的最佳答案是 limonte,因为 OP 没有编辑他的问题以使其特定于 Netbeans。【参考方案4】:

如果.env一个文件丢失了,那么还有另一种方法可以生成一个.env文件

您可以下载env.example,将其重命名为.env并进行编辑。只需设置正确的数据库凭据等。

不要忘记当您使用php artisan key:generate 时,它会为您的.env 文件生成新密钥

【讨论】:

请指定放置此文件的位置。 你的应用程序的根目录需要有一个.env文件,你可以留在那里【参考方案5】:

在控制台(cmd)中,进入应用根路径并执行:

type .env.example > .env

也可以使用:

在 Windows 中:

copy .env.example .env

在 Linux/Mac 中:

cp .env.example .env

【讨论】:

【参考方案6】:

.env 文件被 Netbeans 隐藏。要向他们展示这样做:

工具 > 选项 > 其他 > 文件

在 Files Ignored be the IDE is Ignored Files Pattern 下:

默认是

^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|_svn)$|~$|^\.(?!(htaccess|git.+|hgignore)$).*$

将 env 添加到排除-未排除位

^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|_svn)$|~$|^\.(?!(env|htaccess|git.+|hgignore)$).*$

现在显示名为 .env 的文件。

【讨论】:

【参考方案7】:

使用命令创建 .env!

composer 运行 post-root-package-install 要么 sudo composer run post-root-package-install

【讨论】:

【参考方案8】:

这是一个旧线程,但由于它仍然在“26”天前被查看并且最近活跃,因此这是一个快速解决方案。

最初没有 .env 文件,您必须将 .env.example 复制为 .env

windows 中,您可以打开 命令提示符,也就是 CLI,然后在 根目录中粘贴下面的确切代码 的项目。必须在起始行包含 (,不带空格。

(
echo APP_NAME=Laravel
echo APP_ENV=local
echo APP_KEY=
echo APP_DEBUG=true
echo APP_URL=http://localhost
echo.
echo LOG_CHANNEL=stack
echo.
echo DB_CONNECTION=mysql
echo DB_HOST=127.0.0.1
echo DB_PORT=3306
echo DB_DATABASE=homestead
echo DB_USERNAME=homestead
echo DB_PASSWORD=secret
echo.
echo BROADCAST_DRIVER=log
echo CACHE_DRIVER=file
echo SESSION_DRIVER=file
echo SESSION_LIFETIME=120
echo QUEUE_DRIVER=sync
echo.
echo REDIS_HOST=127.0.0.1
echo REDIS_PASSWORD=null
echo REDIS_PORT=6379
echo.
echo MAIL_DRIVER=smtp
echo MAIL_HOST=smtp.mailtrap.io
echo MAIL_PORT=2525
echo MAIL_USERNAME=null
echo MAIL_PASSWORD=null
echo MAIL_ENCRYPTION=null
echo.
echo PUSHER_APP_ID=
echo PUSHER_APP_KEY=
echo PUSHER_APP_SECRET=
echo PUSHER_APP_CLUSTER=mt1
echo.
echo MIX_PUSHER_APP_KEY="$PUSHER_APP_KEY"
echo MIX_PUSHER_APP_CLUSTER="$PUSHER_APP_CLUSTER"
)>".env"

只需按 Enter 键退出提示,您应该会在您在上面输入 CLI 命令的同一目录中创建具有默认设置的 .env 文件。

希望这会有所帮助。

【讨论】:

【参考方案9】:

还有另一种解释为什么 .env 不存在,当你移动所有 Laravel 文件时会发生这种情况。

采用这个工作流程:在您的项目目录中您执行laravel new whatever,Laravel 安装在whatever,您执行mv * .. 将所有文件移动到您的项目文件夹,然后您删除whatever。问题是mv默认不移动隐藏文件,所以.env文件被留下,被删除了!

【讨论】:

【参考方案10】:

如果您在查看 .env 文件时遇到问题,或者它没有显示在项目中,请执行以下操作:ls -a。 这允许查看 Linux 中的隐藏文件。您也可以使用 Visual Studio Code 打开该文件夹,您将看到这些文件并能够对其进行修改。

【讨论】:

以上是关于如何为 laravel 生成 .env 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Laravel 模块架构应用 CRUD 生成器?

Laravel 5.5 安装不生成 .env 文件

如何为 Jetty 的 Maven Cargo 插件指定 jetty-env.xml 文件?

如何为 rspec 设置 ENV 变量?

如何为 laravel 迁移指定文件夹?

laravel 踩坑 env,config