当前位置:
首页 > 技术站长 > 【重新发布】wordpress一主机多站点配置笔记

【重新发布】wordpress一主机多站点配置笔记

以下内容转自文章:http://www.cmhello.com/one-wordpress-to-build-many-sites.html

你有多个WordPress搭建的博客?一个博客就安装一个WordPress程序?

其实,一个WordPress程序就可以搭建多个网站,设置也很简单,就是根据不同的域名调用不同的数据库即可。

前提条件:

几个站必须在同一个主机空间

几个站的固定链接样式必须一样

每一个网站创建一个独立的MySQL数据库,其实同一个数据库不同表头也是可以的

将每个域名都解析到同一个网站目录

实现方法:

假设你要实现一个一个WordPress程序管理 www.cmhello.com 和 www.yiqixue.net 两个网站

1.打开根目录的 wp-config.php 文件,找到下图所示的数据库信息

注:上图信息不包括 数据库表头,如果你使用的同一个数据库不同表头,还要删除原来的表头信息。

2.使用下面的代码替换上面的信息:
[php]
if($_SERVER["HTTP_HOST"]=="www.cmhello.com" || $_SERVER["HTTP_HOST"]=="cmhello.com"){

define('DB_NAME', 'cmhello'); //数据库名
define('DB_USER', 'cmhello'); //数据库用户名
define('DB_PASSWORD', 'cmhello.com'); //数据库密码
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'cm_'; //数据库表头

}else if($_SERVER["HTTP_HOST"]=="www.yiqixue.net" || $_SERVER["HTTP_HOST"]=="yiqixue.net"){

define('DB_NAME', 'yiqixue');
define('DB_USER', 'yiqixue');
define('DB_PASSWORD', 'yiqixue.net');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'yqx_';

} [/php]
代码参考自:面向对象(OOP)的使用WordPress系统 一拖N的用法

类似方法

WordPress 3.0以上的版本可以开启多站点功能(查看详情) ,但是相比较而言,倡萌觉得还是本文这个方法好,

至少操作简单,而且支持绑定顶级域名或者二级域名,呵呵。

我碰到的问题

第二个网站打开链接调整到第一个页面

解决方法,web-config.php末尾处增加判断;如果不行,分办修改网站的url,在“设置-常规”中修改。
[php]
if($_SERVER["HTTP_HOST"]=="aaa.com" || $_SERVER["HTTP_HOST"]=="www.aaa.com"){
define('WP_HOME', 'http://www.aaa.com'); //定义网站首页地址
define('WP_SITEURL', 'http://aaa.cc'); //定义WordPress程序所在路径
}else if($_SERVER["HTTP_HOST"]=="bbb.com" || $_SERVER["HTTP_HOST"]=="www.bbb.com"){
define('WP_HOME', 'http://bbb.com'); //定义网站首页地址
define('WP_SITEURL', 'http://bbb.com'); //定义WordPress程序所在路径
}
[/php]
作者:Cary Liu
出处:http://caryliu.cnblogs.com/
*****************************

面向对象(OOP)的使用Wordpress系统 一拖N的用法

今天和一位网友交流cacheAsFile的使用,从中得知他的网站空间为了实现三个各不相同的网站,已放置三个Wordpress系统来实现。

操作实现是在网站的根目录下放置一个Wordpress系统,再建立子目录来放置其他的Wordpress系统。可真难为了这位朋友。

这个其实是很简单而且很实在的方法,但是维护成本确是很高的,而且目录结构也不怎么不雅观。

这种模式看来有点像传统的面向过程编程,复用性太低,那么面向对象编程(OOP)怎么来处理好这个需求呢?

一般情况可以这样理解,Wordpress.org提供的Wordpress系统就像是一个Class,放置在网站上被访问时会根据不同的配置(数据库中保存的设置)生成出一个Wordpress运行实例,各不同的配置(设定的主题,插件)实例化出各不相同的基于Wordpress系统的网站。

反过来说,各不相同的Wordpress网站的原因在于不相同的配置。

如果在同一个服务器上可以根据不同的域名访问来指定不同的配置的话,这样即可实现不同的网站。

很高兴,php能做到这很基本一点判断。答案是肯定的。

很巧,在我的本地机器上,配置有自己的2个站,一个就是cbmland.com,另外一个是iFlex.com.cn,现在都是基于Wordpress系统的,在我的wp-config.php里面有我加了这样一段:
[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");
[/php]
很明显,这个配置文件会根据不同的$_SERVER["HTTP_HOST"]来给出不同的数据库表的配置,一个数据表的前缀是 cbm_ 而另外一个是ifx,就算在同一个数据库里面也不会冲突。各自有了独立的数据库配置,在同一个优化好的Wordpress系统下能互不干扰的运行起来。再加上不同的主题风格、和插件,各自选择性的使用。

怎么样?这样就可以基于一份Wordpress系统拷贝,理论上可以无限的运行多个不同风格的Wordpress实例了。

小提示:虚拟主机需要先绑定域名才能实现。
(原文作者,没有查到)

【重新发布】wordpress一主机多站点配置笔记:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!