今天和一位網(wǎng)友交流cacheAsFile的使用,從中得知他的網(wǎng)站空間為了實(shí)現(xiàn)三個(gè)各不相同的網(wǎng)站,已放置三個(gè)Wordpress系統(tǒng)來實(shí)現(xiàn)。
操作實(shí)現(xiàn)是在網(wǎng)站的根目錄下放置一個(gè)Wordpress系統(tǒng),再建立子目錄來放置其他的Wordpress系統(tǒng)?烧骐y為了這位朋友。
這個(gè)其實(shí)是很簡單而且很實(shí)在的方法,但是維護(hù)成本確是很高的,而且目錄結(jié)構(gòu)也不怎么不雅觀。
這種模式看來有點(diǎn)像傳統(tǒng)的面向過程編程,復(fù)用性太低,那么面向?qū)ο缶幊蹋∣OP)怎么來處理好這個(gè)需求呢?
一般情況可以這樣理解,Wordpress.org提供的Wordpress系統(tǒng)就像是一個(gè)Class,放置在網(wǎng)站上被訪問時(shí)會根據(jù)不同的配置(數(shù)據(jù)庫中保存的設(shè)置)生成出一個(gè)Wordpress運(yùn)行實(shí)例,各不同的配置(設(shè)定的主題,插件)實(shí)例化出各不相同的基于Wordpress系統(tǒng)的網(wǎng)站。
反過來說,各不相同的Wordpress網(wǎng)站的原因在于不相同的配置。
如果在同一個(gè)服務(wù)器上可以根據(jù)不同的域名訪問來指定不同的配置的話,這樣即可實(shí)現(xiàn)不同的網(wǎng)站。
很高興,php能做到這很基本一點(diǎn)判斷。答案是肯定的。
很巧,在我的本地機(jī)器上,配置有自己的2個(gè)站,一個(gè)就是cbmland.com,另外一個(gè)是iFlex.com.cn,現(xiàn)在都是基于Wordpress系統(tǒng)的,在我的wp-config.php里面有我加了這樣一段:
- if($_SERVER["HTTP_HOST"]=="www.cbmland.com" || $_SERVER["HTTP_HOST"]=="cbmland.com"){
- define('DB_NAME', 'cbmland');
- define('DB_USER', 'cbmland');
- define('DB_PASSWORD', 'http://cbmland.com');
- define('DB_HOST', 'localhost');
- define('DB_CHARSET', 'utf8');
- define('DB_COLLATE', '');
- $table_prefix = 'cbm_';
- define ('WPLANG', 'zh_CN');
- }else if($_SERVER["HTTP_HOST"]=="www.iflex.com.cn" || $_SERVER["HTTP_HOST"]=="iflex.com.cn"){
- define('DB_NAME', 'cbmland');
- define('DB_USER', 'cbmland');
- define('DB_PASSWORD', 'http://iFlex.com.cn');
- define('DB_HOST', 'localhost');
- define('DB_CHARSET', 'utf8');
- define('DB_COLLATE', '');
- $table_prefix = 'ifx_';
- // define ('WPLANG', 'zh_CN');
- }
很明顯,這個(gè)配置文件會根據(jù)不同的$_SERVER["HTTP_HOST"]來給出不同的數(shù)據(jù)庫表的配置,一個(gè)數(shù)據(jù)表的前綴是 cbm_ 而另外一個(gè)是ifx,就算在同一個(gè)數(shù)據(jù)庫里面也不會沖突。各自有了獨(dú)立的數(shù)據(jù)庫配置,在同一個(gè)優(yōu)化好的Wordpress系統(tǒng)下能互不干擾的運(yùn)行起來。再加上不同的主題風(fēng)格、和插件,各自選擇性的使用。
怎么樣?這樣就可以基于一份Wordpress系統(tǒng)拷貝,理論上可以無限的運(yùn)行多個(gè)不同風(fēng)格的Wordpress實(shí)例了。
怎么樣?整一整,送個(gè)給女友?送個(gè)給老婆?送個(gè)給爸媽?嘿嘿!別以為不要錢,可要悠著點(diǎn)~鄰居們都看著吶~
小提示:虛擬主機(jī)需要先綁定域名才能實(shí)現(xiàn)。 |