如何为 Laravel 生成 .env 文件?

41

根据文档,我发现可以通过laravel安装程序创建一个laravel项目:

$laravel new blog

或通过composer安装:

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

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


你应该至少有一个.env.example文件。可能是因为它被隐藏了,所以你看不到这个文件吗?(以.开头) - lukasgeiter
你的操作系统是什么?如果是Linux,则默认情况下点(.)文件处于隐藏状态。请显示隐藏文件,您将获得.env.env.example文件。 - Chinmay235
11个回答

83
刚刚尝试了两种方式,两种方式都生成了.env文件。
Composer应该会自动创建.env文件。在composer.json的post-create-project-cmd部分中可以找到:
"post-create-project-cmd": [
  "php -r \"copy('.env.example', '.env');\"",
  "php artisan key:generate"
]

两种方法都使用相同的composer.json文件,所以不应该有任何区别。
我建议您将laravel/installer更新到最新版本:1.2,并再次尝试。
composer global require "laravel/installer=~1.2"

你可以通过运行以下命令手动生成.env文件:
cp .env.example .env
php artisan key:generate

如果我的composer.json上没有laravel/installer,只有在require中有laravel/framework和在require-dev中有laravel/homestead呢?这样的话...=/ - 但是手动创建文件夹也可以解决问题。 - giovannipds
1
谢谢,我在将项目从我的存储库克隆到另一个系统时需要它,它非常好用。 - Prafulla Kumar Sahu

30
在Windows操作系统中,您可以打开命令提示符,将目录更改为您的项目目录。
例如:
我的项目目录
E:\xampp\htdocs\my_project
你可以像这样在命令提示符中输入(每行按回车键):
E:

cd xampp\htdocs\my_project

那么你可以输入:

copy .env.example .env

如果您使用的是Linux系统,可以输入cp来代替copy


20

我遇到了一个问题,项目中没有出现.env文件。

后来发现我使用的IDE(NetBeans,请不要评判)只会显示某些类型的.hidden文件,而不是全部。

在苦思冥想一段时间后,我检查了文件系统并找到了.env和.env.example文件,然后用文本编辑器对它们进行了修改。

我留下这个答案,为那些像我一样使用了有问题的IDE的人提供帮助。


1
是的,那也是我的问题。好的集成开发环境总是最后出现.. :D - koalaok
1
问题要求如何生成而不是显示,但由于这被标记为正确答案,我已经添加了一个回答,告诉您如何在Netbeans中显示.env,而不是退出使用另一个IDE。 - Popnoodles
@Popnoodles 是的,这个答案只是指出可能困扰提问者的其他潜在问题。坦白地说,当时的快速解决方法是使用记事本编辑器 - 但我甚至不知道 OP 是否正在使用 Netbeans - 它可能是任何其他具有类似问题的 IDE。这个问题的最佳答案是由 limonte 给出的,因为 OP 没有编辑他的问题使其成为 Netbeans 特定的问题。 - gan

18
如果缺失.env文件,则可以通过另一种方式生成.env文件。可以下载env.example文件,将其重命名为.env并进行编辑,然后设置正确的数据库凭据等信息。不要忘记当您使用php artisan key:generate时,它会在您的.env文件中生成新密钥。

1
请指定将此文件放置在何处。 - bart
1
你的应用程序的根目录需要有一个.env文件,你可以将其放在那里。 - Udhav Sarvaiya

15
在控制台(cmd)中,进入应用程序的根路径并执行:
type .env.example > .env

也可以使用:

在Windows中:

copy .env.example .env

在Linux/Mac上:

cp .env.example .env

3

.env文件被Netbeans隐藏了。要显示它们,请执行以下操作:

工具 > 选项 > 杂项 > 文件

在 IDE 忽略的文件下,是忽略文件模式:

默认设置为

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

将 env 添加到排除-不排除位中。
^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|_svn)$|~$|^\.(?!(env|htaccess|git.+|hgignore)$).*$

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


1
创建 .env 文件使用以下命令!
composer run post-root-package-install 或者 sudo composer run post-root-package-install
“Original Answer” 翻译成中文就是“最初的回答”。

1
这是一个旧帖子,但由于它仍然被查看,并且最近活跃“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"

只需按下回车键退出提示,您就应该在您输入上面的 CLI 命令的相同目录中创建具有默认设置的 .env 文件。
希望这可以帮助到您。

1

如果您无法查看.env文件或该文件在项目中未显示,请执行以下操作:ls -a
这将允许您在Linux中查看隐藏文件。您还可以使用Visual Studio Code打开文件夹,然后您将看到文件并能够修改它们。


-1

为什么 .env 文件不存在还有另一个解释,这发生在你移动所有 Laravel 文件的时候。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接