2011年4月8日星期五

Z-Blog在Apache的PHP下使用

  Z-Blog程序是基于IIS+ASP环境开发的,理论上并不能在Apache+PHP+MySQL环境下运行,不过有时可能因为某种情况,需要将Z-Blog暂时迁移到Apache平台,本文将讲述一下迁移的具体形式。

  迁移的思路是,将Z-Blog全部静态化,动态化的部分,使用PHP代码回调ASP服务器上的地址,数据库依旧放在ASP的服务器上,使用双域名形式,通过FTP工具将ASP服务器上的HTML文件复制到PHP的服务器上。

  Z-Blog系统需要使用“静态首页生成插件”,这样首页和文章页都实现了静态HTML文件,分类页和标签页原本是动态的,修改起来比较麻烦,需要修改Z-Blog源代码。

  修改方法是,先建立一个cat目录,将根目录下的catalog.asp文件复制过来,修改为default.asp,将里面的include路径修改一下。

  接着,修改FUNCTION目录下的c_system_base.asp,c_system_event.asp,c_system_lib.asp文件,搜索替换掉“catalog.asp”为“cat/”,这样目录页和分类页就会调用cat目录而不是asp文件。

  之后,将所有的HTML都FTP到Apache主机上,对于cat目录,则建立一个index.php文件,文件内容如下:

<?php

$qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";

$url = "http://www.williamlong.info/cat/?".$qstring;

$file=file_get_contents($url);

echo $file;

?>

  这样,目录页和分类页的调用都会自动抓取原先ASP服务器上的文件。

  最后,在Apache服务器上编辑.htaccess文件,内容如下:

RewriteEngine On
RewriteBase /
RewriteRule ^upload/(.*)$ http://www.williamlong.info/upload/$1 [R=301,L]
RewriteRule ^download/(.*)$ http://www.williamlong.info/download/$1 [R=301,L]
RewriteRule ^function/(.*)$ http://www.williamlong.info/function/$1 [R=301,L,QSA]

  经过这样一番处理,在Apache环境下也可以浏览Z-Blog生成的博客了。

Z-Blog在Apache的PHP下使用

  不过目前还存在一些问题,主要包括,留言评论功能无法使用(单独使用另外一个插件可以勉强支持评论),侧栏动态加载的内容无法显示,文章量浏览无法计数,评分插件失效,更新较为麻烦。

  目前更新博客的方法是,修改hosts文件,将Z-Blog的域名再次指向原先ASP服务器,添加文章后,再FTP到Apache服务器上,原先我曾经考虑在两台服务器上同时安装Dropbox的方法实现同步,但后来发现,一些国外的虚拟主机已经开始禁止在主机上运行Dropbox了,其系统会自动检测Dropbox进程,并发邮件警告用户,称运行这个程序违反其政策,要求停止这个进程,因此只能考虑使用自动FTP的方法实现同步。