资讯专栏INFORMATION COLUMN

Laravel5.4 不同环境下 env 文件设置

Darkgel / 2038人阅读

Laravel5.4现在支持不同环境下env文件设置(好像是L5.4最新支持的吧,记不清楚了,也有可能L5.2-5.3就已经支持了),可以针对不同环境(development, staging, production)设置env文件为:

development: .env.development
staging: .env.staging
production: .env.production

根据不同环境服务器设置系统变量(可根据phpinfo()查看APP_ENV环境变量是否OK):

development: APP_ENV=development
staging: APP_ENV=staging
production: APP_ENV=production

这样,项目根目录下就会有根据不同环境对应的.env.xxx文件,放入版本控制,本地的环境对应.env不需要放入版本控制。

原理可看laravel的源码:

namespace IlluminateFoundationBootstrap;

use DotenvDotenv;
use DotenvExceptionInvalidPathException;
use SymfonyComponentConsoleInputArgvInput;
use IlluminateContractsFoundationApplication;

class LoadEnvironmentVariables
{
    /**
     * Bootstrap the given application.
     *
     * @param  IlluminateContractsFoundationApplication  $app
     * @return void
     */
    public function bootstrap(Application $app)
    {
        if ($app->configurationIsCached()) {
            return;
        }

        $this->checkForSpecificEnvironmentFile($app);

        try {
            (new Dotenv($app->environmentPath(), $app->environmentFile()))->load();
        } catch (InvalidPathException $e) {
            //
        }
    }

    /**
     * Detect if a custom environment file matching the APP_ENV exists.
     *
     * @param  IlluminateContractsFoundationApplication  $app
     * @return void
     */
    protected function checkForSpecificEnvironmentFile($app)
    {
        if (php_sapi_name() == "cli" && with($input = new ArgvInput)->hasParameterOption("--env")) {
            $this->setEnvironmentFilePath(
                $app, $app->environmentFile().".".$input->getParameterOption("--env")
            );
        }

        if (! env("APP_ENV")) {
            return;
        }

        $this->setEnvironmentFilePath(
            $app, $app->environmentFile().".".env("APP_ENV")
        );
    }

RightCapital招聘Laravel DevOps

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23078.html

相关文章

  • Git多分支平行发展(一个仓库包含多个不同的项目)

    摘要:建立并切换到本地分支沐沐沐也可以直接用删除本地仓库里的所有文件除了的文件夹,然后推送沐沐沐这个时候,远程仓库的分支便和本地仓库的分支一样都是空白的,这样就可以随心所欲的推送了。 背景 最近在用laravel开发微信小程序的接口,因为服务器PHP版本的问题,分别用了laravel 5.6(php 7.1,开发环境) 和 laravel 5.4 (php 5.6,服务器环境),开发完成后...

    MonoLog 评论0 收藏0
  • Any-基于Laravel5.4新的权限管理后台骨架

    摘要:最简化权限管理系统,基于开发。基于开发,唯一优化的是用权限和路由别名绑定,这样代码写好之后就可以直接使用。如果是超级管理员,即使没有这个权限会自动赋予权限给超级管理员角色。默认管理员账号密码。然后正常执行命令其他命令即可。 Any 最简化权限管理系统,基于 Laravel5.4 开发。由于 Laravel5.5 发布推迟,只好先写个 Laravel5.4版本的,后面再升级上去。演示地址...

    Lavender 评论0 收藏0
  • Laravel5.4 博客部署到阿里云服务器

    摘要:前边已经学会在本地用进行开发了,现在就让我们将本地开发的项目部署到阿里云服务器,来次实战操作,阿里云部署环境阿里,,使用服务器,登录。 前边已经学会在本地用Homestead进行开发了,现在就让我们将本地开发的项目部署到阿里云服务器,来次实战操作,阿里云部署环境:阿里ECS,Ubuntu,使用Nginx服务器,SSH登录。 一、服务器配置 如果你的服务器是刚申请的,则必须做一些基础的配...

    JowayYoung 评论0 收藏0
  • laravel5.4发送邮箱

    摘要:一发送邮箱其实不难,不如说挺简单的,首先还是现在注册一个账号并且设置如下图授权码很重要的,请好好记住,待会在的中要配置到的二如果以上你都做完了,那接下来就是配置了你的账号你的客户端授权密码你的账号账号名三然后接下来就是配置路由以及在控制器上 一、发送邮箱其实不难,不如说挺简单的,首先还是现在163注册一个账号并且设置如下图 showImg(https://segmentfault.c...

    ZHAO_ 评论0 收藏0
  • Laravel5.4 队列简单配置与使用

    摘要:队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短请求和相应的时间。每一种队列驱动的配置都可以在该文件中找到,包括数据库,,,,以及同步本地使用驱动。处理完毕后当前任务会自动删除。基本就下面这个样到此队列简单配置与使用就结束了。 概述 什么是队列? 百度百科是这样说的 队列是在传输过程中保存数据的容器。 举几个生活中例子: iphone手机新款发布,三里屯iphone进的...

    _DangJin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<