前面一直在用在wp-config.php中代码选择数据库配置实现一套wordpress程序建立多个站点,但是在本地没有做成域名选择;在hosts中配置域名和localhost一样都指向本地之后,用那些域名可以访问,但是 $hostname = $_SERVER[‘HTTP_HOST’];switch ($hostname) {}无法实现选择 后来尝试了wordpress的multisite功能,但是感受了一段时间之后,还是觉得返璞归真用标准的wordpress比较好 今天又搜索了一下“本地 绑定域名”等关键词,后来找到了解决办法,也就是本地启用虚拟主机了 本来想本地对应为my.xyz9981.localhost这样的形式,后来想着干脆来个彻底的,和远程域名直接对应一致,这样当更新到远程时不用再像以前一样一个个地址替换,而本地可以像实际远程一样访问 其时也搜索了不少文章,尝试了不少,后来终于搞定了,总结如下: (有任何配置变动都要重新启动Apache才行)
1.修改 C:\WINDOWS\system32\drivers\etc\hosts,让域名指向本地服务器
127.0.0.1 xyz9981.info 127.0.0.1 my.xyz9981.info 127.0.0.1 e.laowangcn.com 127.0.0.1 obz.xyz9981.info 127.0.0.1 ostore.xyz9981.info 127.0.0.1 ostudio.xyz9981.info 127.0.0.1 oweb.xyz9981.info 127.0.0.1 omade.xyz9981.info
2.建立虚拟主机,让指向服务器之后具体指向某个目录
具体是:
- 直接在httpd.conf中添加虚机配置或者打开 Include conf/extra/httpd-vhosts.conf 然后在httpd-vhosts.conf中再配置
- 虚机具体配置是:
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot “E:\AlvinPortable\web_release_platform\www\htdocs” ServerName localhost #这个是需要的,不然会按下面的 <VirtualHost *:80> DocumentRoot “E:\AlvinPortable\web_release_platform\www\htdocs\wp” ServerName xyz9981.info ServerAlias my.xyz9981.info e.laowangcn.com obz.xyz9981.info ostore.xyz9981.info ostudio.xyz9981.info oweb.xyz9981.info omade.xyz9981.info # 多个则中间加空格
3.指向wordpress程序后wp-config.php中进行数据库判断和选择
define(LOCAL,0); //php中的宏定义形式 define(REMOTE,1); //传到远程后改变此总开关即可 $remote_or_local= LOCAL; //REMOTE; $hostname = $_SERVER[‘HTTP_HOST’]; switch ($hostname) { case “my.xyz9981.com”: case “my.xyz9981.info”: if($remote_or_local==REMOTE) { 略 } else { $db = “wp_inative”; $table_prefix = ‘wp_‘; define(‘DB_NAME’, $db); define(‘DB_USER’, ‘root’); define(‘DB_PASSWORD’, ‘123456’); define(‘DB_HOST’, ‘localhost’); } break; …
后记:如果要再访问远程
hosts中再注销掉,重新启动一下Apache即可;应该也不会弄混淆本地和远程的:本地访问速度是快的,况且远程同步内容是滞后的 如果机子上有虚拟机,在虚拟机中访问远程也很好 也可采用代理访问远程网站简单检查一下远程的有没有成功更新 ==== 其他相关: 此外,VirtualHost标签内还能用如下形式?