开发中我们往往需要根据环境变量来动态加载配置文件,比如用来保证开发环境,生成环境加载不同配置文件如数据库连接信息等
1. 首先配置环境变量
- apache服务器配置方法
指令中加入 SetEnv RUNTIME_ENVIROMENT DEV
<VirtualHost *:80>
ServerAdmin admin@admin.com
DocumentRoot "/var/www/"
ServerName localhost
SetEnv RUNTIME_ENVIROMENT DEV
SetEnv MYSQL_USERNAME root
SetEnv MYSQL_PASSWORD root
ErrorLog "logs/error.log"
CustomLog "logs/access.log" common
</VirtualHost>
- Nginx服务器的配置方法
在fastcgi_params文件中配置
fastcgi_param RUNTIME_ENVIROMENT 'DEV'
server {
listen 80;
root /var/www;
index index.php;
server_name localhost;
location /
{
index index.php;
}
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
2. php程序端,读取环境变量做处理
- 给出兼容CLI命令行模式,的环境变量读取写法
$_SERVER['RUNTIME_ENVIROMENT'] = isset($_SERVER['RUNTIME_ENVIROMENT'])?$_SERVER['RUNTIME_ENVIROMENT']:(getenv('RUNTIME_ENVIROMENT')?getenv('RUNTIME_ENVIROMENT'):'');
- 定义常量,后续使用
define('RUN_ENV',$_SERVER['RUNTIME_ENVIROMENT']);
- 引入配置文件
require_once DIR_ROOT . '/system/config/' . RUN_ENV . '/config.php';