• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel 5+ .env环境配置文件详解

    在我们开发的时候,有时候我们希望不同的环境中有不同的配置参数,举例来说,你希望生产环境使用的缓存机制与本地环境不同。

    要实现这个目的,Laravel使用了DotEnv这个PHP库。在Laraval的安装根目录下,我们会看到一个名为.env.example的文件,我们需要手动将其命名为.env(或拷贝一个副本并将其命名为.env)。

    打开.env文件,可以看到一系列配置信息:

    APP_NAME=Laravel        

    APP_ENV=local        

    APP_KEY=base64:qDt/OQzs9YbNTyfHC4xgG+YY87+LcxDkPrB2RW1NxyI=        

    APP_DEBUG=true        

    APP_URL=http://localhost        

       

    LOG_CHANNEL=stack        

       

    DB_CONNECTION=mysql        

    DB_HOST=127.0.0.1        

    DB_PORT=3306        

    DB_DATABASE=      

    DB_USERNAME=        

    DB_PASSWORD=        

       

    BROADCAST_DRIVER=log        

    CACHE_DRIVER=file        

    SESSION_DRIVER=file        

    SESSION_LIFETIME=120        

    QUEUE_DRIVER=sync        

       

    REDIS_HOST=127.0.0.1        

    REDIS_PASSWORD=null        

    REDIS_PORT=6379        

       

    MAIL_DRIVER=smtp        

    MAIL_HOST=smtp.mailtrap.io        

    MAIL_PORT=2525        

    MAIL_USERNAME=null        

    MAIL_PASSWORD=null        

    MAIL_ENCRYPTION=null        

       

    PUSHER_APP_ID=        

    PUSHER_APP_KEY=        

    PUSHER_APP_SECRET=        

    PUSHER_APP_CLUSTER=mt1        

       

    MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"        

    MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

    可以看到,文件中列出了很多配置,包含了缓存,数据库,开发环境,队列等等。

    因此,.env文件不应该被加入到版本控制中,也就是说每一个开发环境下的.env文件都是独立的。我们可以根据我们开发环境的不同,配置出不同的.env文件,从而实现不同的开发环境拥有不同的配置参数。

    那么基本概念已经介绍完了,接下来我们来分解一下.env文件中比较常用的几个配置参数。

    首先看到

    APP_NAME=Laravel      

    APP_ENV=local      

    APP_KEY=base64:qDt/OQzs9YbNTyfHC4xgG+YY87+LcxDkPrB2RW1NxyI=      

    APP_DEBUG=true      

    APP_URL=http://localhost

    其中APP_NAME是我们的项目名称,这里我们可以根据需要自行修改。

    注意:如果你输入的字符串中含有空格,请将你的字符串放在""中,例如APP_NAME="Eagle Luo"

    APP_ENV是我们的开发环境,在生产环境下,我们可以将其改为production。

    APP_KEY是Laravel生成的一个32位的字符串,用于加密session等数据。

    这个钥匙很重要,引用官方文档的话来说,

    If the application key is not set, your user sessions and other encrypted data will not be secure!

    如果我们使用了compoer安装Laravel,那么这个秘钥会自动帮我们生成,否则我们需要运行

    $ php artisan key:generate

    来生成这个秘钥。

    APP_DEBUG是我们是否打开DEBUG信息的开关,设置为true的时候,代码出现错误将会显示相应的Stack trace,而如果设置为false将隐藏错误信息。

    APP_URL则是我们的项目地址。

    好了,再来我们看到

    DB_CONNECTION=mysql

    DB_HOST=127.0.0.1

    DB_PORT=3306

    DB_DATABASE=

    DB_USERNAME=

    DB_PASSWORD=

    DB_CONNECTION指的是我们的数据库连接种类,这个值在config/database.php中connections数组中被定义:

      'connections' => [   
      
        'sqlite' => [   
          'driver' => 'sqlite',   
          'database' => env('DB_DATABASE', database_path('database.sqlite')),   
          'prefix' => '',   
        ],   
      
        'mysql' => [   
          'driver' => 'mysql',   
          'host' => env('DB_HOST', '127.0.0.1'),   
          'port' => env('DB_PORT', '3306'),   
          'database' => env('DB_DATABASE', 'forge'),   
          'username' => env('DB_USERNAME', 'forge'),   
          'password' => env('DB_PASSWORD', ''),   
          'unix_socket' => env('DB_SOCKET', ''),   
          'charset' => 'utf8mb4',   
          'collation' => 'utf8mb4_unicode_ci',   
          'prefix' => '',   
          'strict' => true,   
          'engine' => null,   
        ],   
      
        'pgsql' => [   
          'driver' => 'pgsql',   
          'host' => env('DB_HOST', '127.0.0.1'),   
          'port' => env('DB_PORT', '5432'),   
          'database' => env('DB_DATABASE', 'forge'),   
          'username' => env('DB_USERNAME', 'forge'),   
          'password' => env('DB_PASSWORD', ''),   
          'charset' => 'utf8',   
          'prefix' => '',   
          'schema' => 'public',   
          'sslmode' => 'prefer',   
        ],   
      
        'sqlsrv' => [   
          'driver' => 'sqlsrv',   
          'host' => env('DB_HOST', 'localhost'),   
          'port' => env('DB_PORT', '1433'),   
          'database' => env('DB_DATABASE', 'forge'),   
          'username' => env('DB_USERNAME', 'forge'),   
          'password' => env('DB_PASSWORD', ''),   
          'charset' => 'utf8',   
          'prefix' => '',   
        ],   
      ],

    我们可以根据需要修改这个数组,例如数据库的charset,collation等信息。

    DB_HOST和DB_PORT就不用多说,分别指代了数据库连接的ip和端口号。

    DB_DATABASE指的是我们连接上数据库后默认使用的数据库名称。

    DB_USERNAME和DB_PASSWORD指的自然是我们连接数据库所使用的用户名和密码。

    在Homestead开发环境下,默认的MySQL用户名为homestead,密码为secret。

    好了,本文主要讲解了Laravel 5+ .env环境配置文件的各项含义与使用方法,更多源于Laravel框架的使用技巧请查看下面的相关链接

    您可能感兴趣的文章:
    • Laravel如何友好的修改.env配置文件详解
    • Nginx中运行PHP框架Laravel的配置文件分享
    • Laravel框架环境与配置操作实例分析
    • Laravel 前端资源配置教程
    • laravel config文件配置全局变量的例子
    • Laravel数据库读写分离配置的方法
    • Laravel 数据库加密及数据库表前缀配置方法
    • laravel框架数据库配置及操作数据库示例
    • laravel-admin自动生成模块,及相关基础配置方法
    • laravel 配置路由 api和web定义的路由的区别详解
    • Laravel5.6框架使用CKEditor5相关配置详解
    • Laravel配置全局公共函数的方法步骤
    • Laravel5框架自定义错误页面配置操作示例
    • laravel配置Redis多个库的实现方法
    • nginx实现一个域名配置多个laravel项目的方法示例
    • laravel 框架配置404等异常页面
    • Laravel 5.5官方推荐的Nginx配置学习教程
    • Laravel Memcached缓存驱动的配置与应用方法分析
    上一篇:Laravel5.3+框架定义API路径取消CSRF保护方法详解
    下一篇:Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Laravel 5+ .env环境配置文件详解 Laravel,.env,环境,配置文件,