WordPress可以设置多站点功能,我想为每个子站单独设置独立的域名,所以今天决定晚上的任务是设置Apache虚拟主机。在网上搜索了一下,发现超简单的,直接在httpd.conf文件的末尾加上:
[syntaxHighLighter brush="shell"]
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>
[/syntaxHighLighter]
就设置好了一个虚拟主机,我还需要把wordpress.com.cn的ip解析到本地主机127.0.0.1,在c盘搜索hosts,打开在末尾加上:
[syntaxHighLighter brush="shell"]
127.0.0.1 wordpress.com.cn 127.0.0.2 drupal.com.cn
[/syntaxHighLighter]
在命令提示符里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 文件,增加代码:
[syntaxHighLighter brush="php"]
define( 'SUNRISE', 'on' );
[/syntaxHighLighter]
刷新一下管理后台,在Settings中新增了2个项目,
在Network Manage(管理网络) - Settings(设置) - Domain Mapping中设置服务器IP和CNAME;在Network Manage(管理网络) - Settings(设置) - Domains中可以添加新的域名,Site ID就是需要绑定域名站点在数据库中的ID值,在All Sites(所有站点)中可以看到。同样的,你也可以进入子站点的控制面板中,在Tools(工具) - Domain Mapping 里面设置需要绑定的域名。