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