開發中我們往往需要根據環境變量來動態加載配置文件,比如用來保證開發環境,生成環境加載不同配置文件如數據庫連接信息等
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';