今天和一位网友交流的使用,从中得知他的网站空间为了实现三个各不相同的网站,已放置三个Wordpress系统来实现。
操作实现是在网站的根目录下放置一个Wordpress系统,再建立子目录来放置其他的Wordpress系统。可真难为了这位朋友。
这个其实是很简单而且很实在的方法,但是维护成本确是很高的,而且目录结构也不怎么不雅观。
这种模式看来有点像传统的面向过程编程,复用性太低,那么面向对象编程(OOP)怎么来处理好这个需求呢?
一般情况可以这样理解,Wordpress.org提供的Wordpress系统就像是一个Class,放置在网站上被访问时会根据不同的配置(数据库中保存的设置)生成出一个Wordpress运行实例,各不同的配置(设定的主题,插件)实例化出各不相同的基于Wordpress系统的网站。
反过来说,各不相同的Wordpress网站的原因在于不相同的配置。
如果在同一个服务器上可以根据不同的域名访问来指定不同的配置的话,这样即可实现不同的网站。
很高兴,php能做到这很基本一点判断。答案是肯定的。
很巧,在我的本地机器上,配置有自己的2个站,一个就是,另外一个是,现在都是基于Wordpress系统的,在我的wp-config.php里面有我加了这样一段:
- if($_SERVER["HTTP_HOST"]=="" || $_SERVER["HTTP_HOST"]=="cbmland.com"){
- define('DB_NAME', 'cbmland');
- define('DB_USER', 'cbmland');
- define('DB_PASSWORD', '');
- define('DB_HOST', 'localhost');
- define('DB_CHARSET', 'utf8');
- define('DB_COLLATE', '');
- $table_prefix = 'cbm_';
- define ('WPLANG', 'zh_CN');
- }else if($_SERVER["HTTP_HOST"]=="" || $_SERVER["HTTP_HOST"]=="iflex.com.cn"){
- define('DB_NAME', 'cbmland');
- define('DB_USER', 'cbmland');
- define('DB_PASSWORD', '');
- define('DB_HOST', 'localhost');
- define('DB_CHARSET', 'utf8');
- define('DB_COLLATE', '');
- $table_prefix = 'ifx_';
- // define ('WPLANG', 'zh_CN');
- }
很明显,这个配置文件会根据不同的$_SERVER["HTTP_HOST"]来给出不同的数据库表的配置,一个数据表的前缀是 cbm_ 而另外一个是ifx,就算在同一个数据库里面也不会冲突。各自有了独立的数据库配置,在同一个优化好的Wordpress系统下能互不干扰的运行起来。再加上不同的主题风格、和插件,各自选择性的使用。
怎么样?这样就可以基于一份Wordpress系统拷贝,理论上可以无限的运行多个不同风格的Wordpress实例了。
怎么样?整一整,送个给女友?送个给老婆?送个给爸妈?嘿嘿!别以为不要钱,可要悠着点~邻居们都看着呐~
小提示:虚拟主机需要先绑定域名才能实现。