关于本BLOG的镜像方案,记录。

双站点镜像入门

| 不指定 March 13, 2007 @ 05:16, Robin Hoo
关于镜像的问题似乎很多人感兴趣。我这里就详细说明一下双站点镜像的做法。
首先,我所说的双站点解决方法的一些基本要求。
1、是针对mysql服务器无法支持非localhost访问的
2、镜像站点间的互访应该是没有问题的。
3、镜像的站点最好是同一种类型的服务器,最好是*nix的
4、修改文件一定要用支持utf代码页的编辑软件。
5、修改文件,或上传文件前要做好备份。
下面我就介绍创建镜像的步骤
1、创建好主站,如果已经有主站就忽略这一步
2、备份主站内容,并关闭访问。
3、创建一个空白镜像站,并关闭访问,倒入主站备份数据。
4、将主站的data/config.php拷贝到本地,加入$config['mirror']=镜像站点的URL,上传
5、将镜像站的data/config.php拷贝到本地,加入$config['mirror']=主站点URL,上传
6、将你所安装版本的global.php备份一下,然后打开找到函数function writetofile,将镜像站点解决方案中的相应代码替换掉整个函数。
7、同样对inc/db.php做处理。
8、上传修改后的gloabl.php和db.php到主站和镜像站的相应位置。
9、创建文件mirror.php,相应的代码参考镜像站点解决方案中的mirror.php部分。
10、上传mirror.php分别到主站和镜像站的blog根目录
11、打开主站点和镜像站点的访问
12、自己发一个留言试试看。不出意外,你的镜像站点也会有同样的留言。
13、如果你要打破镜像,比如打破镜像站点同主站的镜像,只要把主站的MIRROR.PHP删除或更名,这样主站的修改同步到镜像站点,但是镜像站点的修改不同不到主站。再将镜像站的MIRROR.PHP更名,这样双向同步全被打破。
注意:
1、我这里说的镜像站点的URL/主站点的URL都是指的blog安装路径的URL,比如你的blog打开URL为http://myblog.com/blog那么、URL就是http://myblog.com/blog。
2、另外镜像解决方案的代码,参考我blog上的,因为那个是定期更新的,和发布在本论坛的已经有改进了。具体地址是:http://us.mydigitallife.org.uk/post/61.htm
3、如果失败,恢复办法很简单,用标准安装的GLOBAL.PHP和DB.PHP覆盖修改文件即可,同时删除MIRROR.PHP

在实现了blog镜像后,还有个问题就是如何让机器自动检测最好的镜像并连接,有点像sourceforge.net自动选择下载站点。即原理是在各个站点上存放一个图片文件,网页载入时触发图像下载事件,并设置好相应onload事件为相应站点地址跳转。当然图像文件越大,检测到的速度越准确,但是等待时间也越长。自己看吧。下面我的代码,把它加入到head段,再设置<body onload="CheckMirror();">,其中的strMirrorURL要更改为你自己相应的地址。我的应用实例在:http://www.mydigitallife.org.uk


BO-BLOG较为完整版镜像HACK

| 不指定 February 18, 2007 @ 11:47, Robin Hoo
自己的双站点镜像解决方案,和大家分享一下。跟之前发布在Bo-Blog 安装使用里的有改进。Hack的原理是,修改DB.php中的db_query()函数,检测那些修改数据库内容的sql语句,将该sql保存在temp文件下,并调用镜像站点的相应同步函数,将该sql语句在镜像站点的mysql中运行,然后再在本地数据库中运行。关于文件同步方面,只是局限于bo-blog相关的文件,如data/plugin/temp下的文件,我们也可以称其为bo-blog系统文件。原理是修改global.php中的writetofile()函数,工作机制类似于数据库同步,将要写的文件内容,先写入temp下的某个文件中,并调用镜像站点同步函数,将文件内容写入相应的文件中,然后在写入本地文件。打破同步的方法也很简单,只要将同步函数的文件名改掉就可以了,比如将mirror.php改成mirror.php.bak,相应的同步链就会被打破。同步函数文件mirror.php存放的位置应为blog的安装目录。$config['mirror']的值是镜像站点blog的安装目录。
改进历程:
1、增加系统文件同步
2、在传递同步函数时增加安全性,并加入$config['mirror']的系统参数
3、增加失败重试,防止频繁出现同步出错信息。[最新改进]
下面是hack部分代码。建议不是很熟悉php的,或没有UE或其他专业文本修改工具的人不要尝试!
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]