咱們寫的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