首先绑定两个域名(以下称 A域名 和 B域名)到空间目录上。
接着把typecho上传到空间里,打开 A域名 时,typecho就会自动检测并开始安装,安装是请修改数据库表前缀为 A_ ,安装过程非常顺利。
安装完后,把程序自动生成的文件config.inc.php下载下来备份,并删除服务器上的config.inc.php。
然后,用 B域名 打开网站,此时,typecho会再度自动检测并开始安装,此时请修改数据库表前缀为 B_ ,安装过程也一样非常的顺利。
再次把config.inc.php这个文件下载下来,对比前后两个文件,我们可以发现它们之间的区别就在于最后的数据库及表前缀的区别。
这两个文件是非常的相似,那么我们就可以模仿wordpress,让它也能一个程序建多个站点了。
if($_SERVER["HTTP_HOST"]=="A域名.com" || $_SERVER["HTTP_HOST"]=="www.A域名.com"){
$db = new Typecho_Db('Mysql', 'A_');
}
else if($_SERVER["HTTP_HOST"]=="B域名.com" || $_SERVER["HTTP_HOST"]=="www.B域名.com"){
$db = new Typecho_Db('Mysql', 'B_');
}
$db->addServer(array (
'host' => 'localhost',
'user' => '数据库用户名',
'password' => '数据库密码',
'charset' => 'utf8',
'port' => '3306',
'database' => '数据库名',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
这样一来,虽然是同一个程序,但当用 A域名 打开时,它调用的是前缀为A_的数据,当用 B域名 打开时,它调用的是前缀为B_的数据
本文转自吕滔博客https://lvtao.net/dev/668.html,在typecho1.1 (17.10.30)版本上测试该方法有效。
最新评论