WordPress可以设置多站点功能,我想为每个子站单独设置独立的域名,所以今天决定晚上的任务是设置Apache虚拟主机。在网上搜索了一下,发现超简单的,直接在httpd.conf文件的末尾加上:

NameVirtualHost *:80
<VirtualHost 127.0.0.1>
	ServerAdmin kbzyzwxq@hotmail.com
	DocumentRoot "D:\website\wordpress"
	ServerName wordpress.com.cn
	<Directory D:\website\wordpress>
		AllowOverride All
		Options All
	</Directory>
</VirtualHost>
<VirtualHost 127.0.0.2>
	ServerAdmin kbzyzwxq@hotmail.com
	DocumentRoot "D:\website\drupal"
	ServerName drupal.com.cn
	<Directory D:\website\drupal>
		AllowOverride All
		Options All
	</Directory>
</VirtualHost>

就设置好了一个虚拟主机,我还需要把wordpress.com.cn的ip解析到本地主机127.0.0.1,在c盘搜索hosts,打开在末尾加上:

127.0.0.1 wordpress.com.cn
127.0.0.2 drupal.com.cn

在命令提示符里ping wordpress.com.cn,发现并没有解析到本地,真奇怪,我记得以前设置都是即时生效的,检查hosts文件发现该文件位于 C:\Windows\winsxs\amd64_microsoft-windows-w..nfrastructure-other_31bf3856ad364e35_6.1.7600.16385_none_6079f415110c0210,这不是C:\Windows\System32\drivers\etc下的hosts,没想到遇到李鬼了。

修改了正确的hosts文件(win7下需要为该文件增加everyone用户赋予写权限),终于可以正确解析wordpress.com.cn到本地了。在浏览器里输入wordpress.com.cn,跳转到localhost/wordpress了,对了,需要将数据库、配置文件以及.htaccess文件中的localhost和localhost/wordpress改为wordpress.com.cn:

1、数据库,这里可以在phpmyadmin里使用几个sql语句来解决
UPDATE `cdb_name` SET `field_name` = replace (`field_name`,'localhost/wordpress','wordpress.com.cn')

先搜索localhost/wordpress,将搜索到的包含该字符的表名和字段名替换到上面的sql语句中,然后在SQL中运行即可,记得要先将localhost/wordpress替换完再替换localhost。

2、配置文件

打开wp-config.php,将'DOMAIN_CURRENT_SITE'常量改为'wordpress.com.cn',将'PATH_CURRENT_SITE'改为'/';

3、.htaccess文件

将 RewriteBase /wordpress/ 改为 RewriteBase /

至此就成功将 localhost/wordpress 迁移到 wordpress.com.cn 了,接下来就要安装一个多站点插件来为子站绑定独立域名了。

插件地址:http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/

安装成功后,首先全网络激活插件Network Activate,然后把插件目录下的 sunrise.php 文件移动到 wp-content/ 目录下,再次编辑 wp-config.php 文件,增加代码:

define( 'SUNRISE', 'on' );

刷新一下管理后台,在Settings中新增了2个项目,

Network Manage(管理网络) - Settings(设置) - Domain Mapping中设置服务器IP和CNAME;在Network Manage(管理网络) - Settings(设置) - Domains中可以添加新的域名,Site ID就是需要绑定域名站点在数据库中的ID值,在All Sites(所有站点)中可以看到。

同样的,你也可以进入子站点的控制面板中,在Tools(工具) - Domain Mapping 里面设置需要绑定的域名。

喜欢这篇文章吗,不妨分享给朋友们吧!