单空间同数据库安装多套wordpress

单空间同数据库安装多套wordpress


声明:方法不是原创,网上有很多同一个空间开两个wordpress的配置,我根据它们的方法也的配置成功,并整合了4个wordpress公用一个空间,共一个数据库。

这样很适合虚拟主机,可以绑定多个域名的空间,非常省钱,我的安装方法,如果你原来已经有一个wordpress已经运行,那么你要先把wp-config.php改名或者删除,我选择改名为wp-config.php.bak然后再把另外一个几个域名绑定到这个空间,打开你的域名进行安装,在设置表的时候使用另外一个表头,安装成功后再删除或者改名wp-config.php,直到你要的域名全部安装一次,因为这样是为你安装不同数据库的表,这样才能独立数据。

然后开始修改你的wp-config.php文件,

方法一次:同网站程序,同数据库,再运行完安装后修改文件wp-config.php,把$table_prefix  = ‘wp_’;替换为


if($_SERVER["HTTP_HOST"]=="caohuan.com" || $_SERVER["HTTP_HOST"]=="caohuan.com"){$table_prefix = 'wp1_';}else if($_SERVER["HTTP_HOST"]=="www.gxsan.com" || $_SERVER["HTTP_HOST"]=="gxsan.com"){$table_prefix = 'wp2_';}else if($_SERVER["HTTP_HOST"]=="www.nntd.com" || $_SERVER["HTTP_HOST"]=="nntd.com"){$table_prefix = 'wp3_';} if($_SERVER["HTTP_HOST"]=="www.cnyjk.com" || $_SERVER["HTTP_HOST"]=="cnyjk.com"){$table_prefix = 'wp4_';}

这个配置适合全部使用中文的版的wordpress,如果我要这些站点里使用英文界面的呢?如下:

注释掉$table_prefix  = ‘wp_’;和define(‘WPLANG’, ‘zh_CN’);在两个参数前面加/**就注释了

然后在相同的位置加上


if($_SERVER["HTTP_HOST"]=="caohuan.com" || $_SERVER["HTTP_HOST"]=="caohuan.com"){$table_prefix = 'wp1_';define('WPLANG', 'zh_CN'); //因为本人使用的英文版所以加上ch_CN来显示中文}else if($_SERVER["HTTP_HOST"]=="www.fenxigu.com" || $_SERVER["HTTP_HOST"]=="fenxigu.com"){$table_prefix = 'wp2_';define('WPLANG', ''); //这里留空就是默认你使用的版本的语言}else if($_SERVER["HTTP_HOST"]=="www.caopanshu.com" || $_SERVER["HTTP_HOST"]=="caopanshu.com"){$table_prefix = 'wp3_';define('WPLANG', 'zh_CN');} if($_SERVER["HTTP_HOST"]=="www.qihuoo.com" || $_SERVER["HTTP_HOST"]=="qihuoo.com"){$table_prefix = 'wp4_';define('WPLANG', 'zh_CN');}

方法二:如果你想同个站点,但数据库使用不同的库,这个需求是因为一些站点的数据库比较大,同一个目录装数据备份工作麻烦,那么下面的方法适合你:


define('DB_NAME', 'caohuan.com');

define('DB_USER', 'caohuan.com');

define('DB_PASSWORD', 'caohuan.com');

define('DB_HOST', 'localhost');

define('DB_CHARSET', 'utf8');

define('DB_COLLATE', '');

$table_prefix  = 'wp_';

define ('WPLANG', 'zh_CN');

全部在前面加//**屏蔽掉
然后在你屏蔽的这些数据前面加上下面的代码,参考

if($_SERVER["HTTP_HOST"]=="caohuan.com" || $_SERVER["HTTP_HOST"]=="caohuan.com"){
define('DB_NAME', 'caohuan.com');
define('DB_USER', 'caohuan.com');
define('DB_PASSWORD', 'caohuan.com');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'wp1_';
define ('WPLANG', 'zh_CN');

}else if($_SERVER["HTTP_HOST"]=="www.fenxigu.com" || $_SERVER["HTTP_HOST"]=="fenxigu.com"){
define('DB_NAME', 'caohuan.com');
define('DB_USER', 'caohuan.com');
define('DB_PASSWORD', 'caohuan.com');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'wp2_';
define ('WPLANG', 'zh_CN');

}else if($_SERVER["HTTP_HOST"]=="www.caopanshu.com" || $_SERVER["HTTP_HOST"]=="caopanshu.com"){
define('DB_NAME', 'caohuan.com');
define('DB_USER', 'caohuan.com');
define('DB_PASSWORD', 'caohuan.com');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'wp3_';
define ('WPLANG', 'zh_CN');

} if($_SERVER["HTTP_HOST"]=="www.gebiy.com" || $_SERVER["HTTP_HOST"]=="gebiy.com"){
define('DB_NAME', 'caohuan.com');
define('DB_USER', 'caohuan.com');
define('DB_PASSWORD', 'caohuan.com');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'wp4_';
define ('WPLANG', 'zh_CN');

}

方法三:在wordpress3.0以上的版本官方启用了多站点的方式:你可以直接在wp-config.php 文件,找到以下代码:

define ('wplang', 'zh_cn');

在其之后添加以下代码:

define('wp_allow_multisite', true);

登录后台,提示你禁用全部的插件,照做,然后你可以看到右上角顶部你的用户名多了“管理”的功能,点进去,可以看到里面的功能咯,

设置前请先在wp-content 目录下创建 blogs.dir 目录,属性为 777 模式。这个目录用于存储子站点上传的媒体文件

然后系统会让你修改wp-config.php,和你的.htaccess按照提示设置就Ok了,这个方法适合子目录存放不同的wordpress和二级域名多个站点。

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'cnyjk.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

为了保证站点安全,需要接着添加以下代码尾随其后:



define( 'auth_salt', '...' );
define( 'secure_auth_salt', '...' );
define( 'logged_in_salt', '...' );
define( 'nonce_salt', '...' );

完事啦?还没有

这个时候你原来的有数据的那个网站需要重新设定一下固定链接,其它的网站就像新安装的,你想怎么设就怎么设了,这样的效果总结一下。

共用模版,公用插件,但你删除模版和插件时也是全部都删除的哟。

完了?

还没有,注意sitemap,因为这个插件是生成一个地图文件,所以每个站点生成的文件相同那么它们就会给覆盖的,还有wordpress本来就很吃内存,同时在后台更新的时候,你的空间商关闭你的站点,就全部死翘翘了,请注意哟。省钱也是有风险的。

更正:

安装了cache类的插件出现了访问同一个网站的问题,现在测试每个网站使用不同的cache插件。

添加伪静态规则

Apache 规则
子域名模式下的规则代码:


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

子目录模式下的规则代码:


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Nginx 规则


#ignored: “-” thing used or unknown variable in regex/rew
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
set $rule_2 1;
}
if (-d $request_filename){
set $rule_2 1;
}
if ($rule_2 = "1"){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;

建议安装插件辅助
WordPress MU Domain Mapping
Domain Theme

淘宝购物经验分享
上一篇 2011-04-05
相关推荐