咱们写的PHP应用程序,一般会分别在本地、开发、测试、RC、生产环境中运行,不一样环境中全局变量各不相同。一般简单的部署作法是,每次部署到一个环境,都须要先修改对应的全局变量,而后再部署代码。若是部署频率很高,则这种部署方案比较耗费人力,同时也会增长生产环境的部署风险。php
若是将各类环境的差别配置在服务器中,PHP应用程序读取当前环境下的变量,则大大下降了应用程序部署的成本与风险。nginx
修改配置文件conf/fastcgi.conf,添加配置如:fastcgi_param MAIN_URL 'www.hicoor.com';web
而后重启nginx(命令:sbin/nginx -s reload),便可在PHP应用程序中经过$_SERVER['MAIN_URL']方式来获取环境配置值。但这种配置方式会在php和nginx的大量请求中都带上这些配置,会显著增长系统开销,所以通常不建议这种配置方式。apache
修改php-fpm配置文件php-fpm.conf(位置如:/usr/local/php/etc/php-fpm.conf),添加配置如:env[MAIN_URL] = www.hicoor.com服务器
而后重启php-fpm,关闭命令:ps -aux | grep php-fpm | awk '{print $2}' | xargs kill -9,或:killall nginx,启动命令:/usr/local/php/sbin/php-fpmide
重启后便可在PHP中经过$_SERVER['MAIN_URL']方式来获取环境配置值,这种配置方式比较建议使用。php-fpm
修改配置文件conf/extra/httpd-vhosts.conf,在对应应用配置下新增环境变量配置,如:测试
<VirtualHost *:80> ServerAdmin webmaster@hduhans.xicp.net DocumentRoot "D:/wamp/www" ServerName hduhans.xicp.net ErrorLog "logs/dummy-host2.example.com-error.log" SetEnv MAIN_URL www.hicoor.com CustomLog "logs/dummy-host2.example.com-access.log" common </VirtualHost>
其中SetEnv所在行为新增配置,而后重启apache服务器即完成配置。spa