zoukankan      html  css  js  c++  java
  • Laravel .env 多环境配置文件

    项目开发中,通常会有本地开发环境、内网测试环境、线上真实环境。这三种环境的配置通常都不尽相同,Laravel 可以通过环境变量  APP_ENV 的值来加载不同的 .env 配置文件。下面会介绍两种方法,分别是通过 Nginx 和 PHP-FPM 来设置 APP_ENV 环境变量的值。

    方法一:修改 Nginx 配置文件设置 APP_ENV:

    location = /index.php {
      index index.php;
      try_files $uri =404;
      fastcgi_pass unix__tmp_php_cgi_sock;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param SCRIPT_NAME $fastcgi_script_name;
      fastcgi_param APP_ENV xxxx;
    }

    方法二:修改 PHP-FPM 配置文件设置 APP_ENV:

    env[APP_ENV] = xxxx

    上述两种方法只需二选一。重启 Nginx 和 PHP-FPM 服务,Laravel 框架就会自动选择加载项目根目录下的 .env.xxxx 配置文件,而不会去加载 .env 配置文件了。

    通过 APP_ENV 环境变量值加载特定 .env 配置文件的 Laravel 源代码位于文件Illuminate/Foundation/Bootstrap/DetectEnvironment.php 中,摘录关键代码如下:

     1 /**
     2  * Detect if a custom environment file matching the APP_ENV exists.
     3  *
     4  * @param  IlluminateContractsFoundationApplication  $app
     5  * @return void
     6  */
     7 protected function checkForSpecificEnvironmentFile($app)
     8 {
     9     if (! env('APP_ENV')) {
    10         return;
    11     }
    12 
    13     $file = $app->environmentFile().'.'.env('APP_ENV');
    14 
    15     if (file_exists($app->environmentPath().'/'.$file)) {
    16         $app->loadEnvironmentFrom($file);
    17     }
    18 }

    请注意:

    当设置了 APP_ENV 环境变量时,当运行 Laravel 的 Aritsan 终端命令之前,比如迁移命令(./artisan migrate)、启动队列侦听器(./artisan queue:listen)等等,均需要在终端也导入 APP_ENV 环境变量。

    $ export APP_ENV=xxxx

    $ ./artisan migrate

    或者

    $ APP_ENV=xxxx ./artisan migrate

    当然,也可以选择在 ~/.bash_profile 或者 ~/.bashrc 中一劳永逸地设定好终端环境变量 APP_ENV 的值。

  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/imzhi/p/6999298.html
Copyright © 2011-2022 走看看