一般來(lái)說(shuō),我們有開(kāi)發(fā)環(huán)境(DEV)、測(cè)試環(huán)境(TEST)、生產(chǎn)環(huán)境(PROD)。
怎樣解決自動(dòng)根據(jù)不同環(huán)境切換相應(yīng)的配置文件的問(wèn)題呢?
本文以PHP為例。
最簡(jiǎn)單的方法,是確保三種環(huán)境的服務(wù)器可以給出一模一樣的設(shè)置給程序,如數(shù)據(jù)庫(kù)地址、端口、數(shù)據(jù)庫(kù)名、用戶名密碼等。但在資源緊缺的環(huán)境下可操作性不強(qiáng)。
首先,無(wú)論如何,建三個(gè)對(duì)應(yīng)的配置文件是必須的。
如:
config.dev.php
config.test.php
config.prod.php/config.php
然后,便是自動(dòng)切換的問(wèn)題。
其實(shí),正常情況下,這三者的運(yùn)行環(huán)境可能都相同,無(wú)法簡(jiǎn)單的通過(guò)環(huán)境的不同進(jìn)行區(qū)分。除非那種極客型的,如修改php代碼,不同環(huán)境增加不同環(huán)境變量標(biāo)示手動(dòng)編譯PHP,這樣運(yùn)行環(huán)境中就具備了區(qū)分標(biāo)示,然后封裝一個(gè)判斷方法。同樣在資源緊缺的情況下,可操作性不強(qiáng)。
剩下比較可行的,就是通過(guò)文件軟連接的方式。*nix、Windows都有辦法創(chuàng)建文件軟連接,系統(tǒng)無(wú)論有幾個(gè)配置文件,在運(yùn)行時(shí)都只需要一個(gè)文件,所以在不造成相應(yīng)程序大幅改動(dòng)代碼來(lái)實(shí)現(xiàn)切換的話,就是這種方案了:
config.dev.php
config.test.php
config.prod.php
然后手動(dòng)在每種環(huán)境創(chuàng)建軟連接config.php,指向?qū)?yīng)的文件config.xxx.php。
實(shí)在像虛擬主機(jī),就直接在服務(wù)器上把config.prod.php 改成 config.php
PS
在大型的應(yīng)用中,異常復(fù)雜的無(wú)數(shù)資源需要調(diào)用的環(huán)境,專門(mén)做一個(gè)資源管理與調(diào)度的系統(tǒng),然后針對(duì)每種資源如mysql服務(wù)編號(hào)命名,然后在應(yīng)用環(huán)境中,調(diào)用統(tǒng)一的api來(lái)獲取配置資源。這種方式,其實(shí)還是要在資源比較充足的情況下,尤其測(cè)試環(huán)境與正式環(huán)境不能在一臺(tái)機(jī)器上。這樣,可以根據(jù)應(yīng)用請(qǐng)求的ip或端口來(lái)判斷:那臺(tái)是測(cè)試服務(wù)器,我就返回一個(gè)測(cè)試用的配置數(shù)據(jù)給它;這臺(tái)是正式環(huán)境,就返回正式的配置。
當(dāng)前文章:環(huán)境配置文件布局解決方案
網(wǎng)站地址:http://chinadenli.net/article32/cjjhpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、用戶體驗(yàn)、做網(wǎng)站、Google、網(wǎng)站內(nèi)鏈、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)