lumen 5.7 利用 Vance Lucas 的 PHP 库 DotEnv 管理配置文件,默认配置文件为 .env
。
当前多环境配置是根据虚拟域名后缀切换不同的配置文件:
- 本地开发环境(localhost),访问域名后缀
.z
。 - 开发环境(develop),访问域名后缀
.d
。 - 测试环境(testing),访问域名后缀
.t
。 - 生产环境(production),访问域名后缀
.com
。
修改文件 bootstrap\app.php
修改为:
try {
//根据域名后缀配置切换不同环境
$httpName = $_SERVER['HTTP_HOST']; //当前域名
$suffix = substr(strrchr($httpName, '.'), 1); //获取域名后缀
switch ($suffix) {
case false:
//shell 命令环境配置(没有域名后缀)
$environment = '.env.localhost';
break;
case 'z':
//本地环境
$environment = '.env.localhost';
break;
case 'd':
//开发环境
$environment = '.env.develop';
break;
case 't':
//测试环境
$environment = '.env.testing';
break;
default:
//正式环境
$environment = '.env.production';
break;
}
(new Dotenv\Dotenv(dirname(__DIR__),$environment))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
//
}
新建对应的配置文件,配置完成。
附配置文件说明:
//环境
APP_NAME=Lumen //应用名称
APP_ENV=local //运行环境名称
APP_KEY= // 敏感信息加密密钥,可使用 php artisan key:generate 重新生成。
APP_DEBUG=true // 是否启用调试模式 正式环境修改为 false。
APP_URL=http://localhost //项目访问域名
APP_TIMEZONE=UTC //时区
//日志
LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=
//数据库配置
DB_CONNECTION=mysql //使用的数据库
DB_HOST=127.0.0.1 //链接地址
DB_PORT=3306 //端口
DB_DATABASE=homestead //数据库名称
DB_USERNAME=homestead //用户名
DB_PASSWORD=secret //用户密码
//缓存
CACHE_DRIVER=file // 缓存驱动,默认使用文件作为缓存。
QUEUE_CONNECTION=sync // 队列驱动,默认使用同步模式。
运行对应的环境命令 添加参数 --env=(指定环境 默认为 localhost)
php artisan migrate --env=develop
php artisan db:seed --env=develop
请注意:
当设置了 APP_ENV 环境变量时,当运行 Laravel 的 Aritsan 终端命令之前,比如迁移命令(./artisan migrate)、启动队列侦听器(./artisan queue:listen)等等,均需要在终端中 APP_ENV 环境变量。
在nginx/apache运行环境下配置APP_ENV 参考: