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檔。
之後,將所有的HTMLFTP到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產生的部落格了。
不過目前還存在一些問題,主要包括,留言評論功能無法使用(單獨使用另外一個插件可以勉強支持評論),側欄動態加載的內容無法顯示,文章量瀏覽無法計數,評分插件失效,更新較為麻煩。
目前更新部落格的方法是,修改hosts文件,將Z-Blog的網域再次指向原先ASP伺服器,添加文章後,再FTP到Apache伺服器上,原先我曾經考慮在兩台伺服器上同時安裝Dropbox的方法實現同步,但後來發現,一些國外的虛擬主機已經開始禁止在主機上運行Dropbox了,其係統會自動檢測Dropbox進程,並發郵件警告用戶,稱運行這個程序違反其政策,要求停止這個進程,因此只能考慮使用自動FTP的方法實現同步。