一次DVBBS從ASP到PHP的轉換實例
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
由于服務器從Windows轉為了Linux,我不得不考慮將一個ASP的DVBBS轉到Linux平臺上。 首先想到的是Linux能否支持ASP?經過網上的查詢,發現有個叫iASP的模塊,可以插入Apache,讓其支持ASP腳本。欣喜之下,趕忙找來iASP安裝,不料卻沒能成功,一是用這個模塊的少,其更新也慢,剛剛開始支持Apache2,還要重新編譯PHP,反正我是沒搞成功;二來這畢竟是個折中的辦法,就算成功了,估計也有很多后患,加上用的人少,遇到問題就只能靠自己了,沒有什么支持。 接下來只有考慮轉為PHP版本的DVBBS了。經過幾天的艱苦奮斗,終算新的論壇運行起來了,不過DVBBS.PHP還是個新發布的軟件,不像其ASP兄弟那樣久經考驗,不論是轉換程序還是論壇程序,存在的問題不少,費了我不少精神。弄完之后,長出一口氣,想著將遇到的點點滴滴記錄下來,供今后需要轉換的兄弟們參考。 先介紹一下我的工作環境。我家里有兩臺電腦,一臺Windows XP SP2,另一臺是裝的Debian Linux。我決定先在我的Linux試驗一下新論壇,然后在導入網上的真實服務器。這里需要提醒要轉換的朋友們,目前轉換程序只能在Windows平臺上使用,因為老的ASP BBS是建立在Access和MS SQL數據庫上的,MS SQL我不太清楚,因為我的老論壇數據庫是用的Access。而轉換程序訪問Access數據庫用的是ADO,這個我還真不知道Linux下怎么支持,所以那些想在Linux下運行轉換程序的朋友們,我勸你們還是不要再等了。 理一下轉換工作的思路。要轉換的數據主要有兩部分:一是數據庫,二是附件。那么我就先在自家的Linux上安裝apache+php+mysql這個黃金組合,并安裝好DVBBS.PHP。然后在我的Windows機器上安裝IIS+PHP,將轉換程序和老的Access數據庫放到Windows的PHP平臺下運行,但其中的mysql數據庫卻指向Linux機器上的mysql。轉換好后,我先在我的Linux上的DVBBS檢查轉換結果,如果沒有問題的話,將mysql的數據庫導出為一個sql文件,傳到真實服務器上,導入即可。剩下的工作就是把海量的圖片文件慢慢地往上放了。 理清了思路,我們來關注一下轉換過程中的細節。 首先安裝好apache+php+mysql,這個沒什么好說的,網上資料一堆一堆。 * 登錄mysql,為其創建兩個用戶,一個是dvbbs,限制從localhost訪問;再建一個遠程訪問的用戶例如windows,這個是為了轉換程序能從遠端導入數據。具體的命令如下: * 在Windows上安裝IIS+PHP,這個網上也有不少資料介紹,不過我還是碰到了問題。我裝的PHP是4.x版本的,具體安裝過程簡單描述一下:將PHP拷貝到C:PHP;將dlls目錄和isapi目錄下的dll文件拷貝到C:PHP目錄下;修改C:PHPphp.ini-dist為php.ini,并且編輯里面的extension_dir設置;將C:PHP添加到系統PATH,重啟計算機讓其生效;修改IIS的擴展配置,加入.php的擴展。最后有一點很重要,需要修改站點的文件安全性,要么集成Windows用戶認證,要么將網頁目錄修改為允許IIS自建的用戶訪問。我就是在這最后一點搞了好久。 * 現在環境準備好了,將轉換程序放入IIS的目錄,再將Access數據庫文件放入相應位置,運行。可是這里卻發現了不少問題,這轉換程序寫得也太不仔細了,里面很多表名的大小寫沒有注意。Access里的數據庫表名一般首字大寫,可php版的mysql數據庫表名全都是小寫,沒有辦法,只能手工將其一一改正。 * 接著進行轉換,還是有問題,經過仔細調試,又發現轉換程序的一個問題,在用戶轉換一欄,以前Access的username字段是允許相同的,而mysql的表的這個字段卻要求是唯一的。我的老數據庫由于運行了很長時間,里面出現了很多同名的項。沒有辦法,只能打開轉換程序輸出的出錯文件(在轉換php文件的目錄,以數字取名的),里面記錄了所有重復的用戶名,打開Access,一個一個將其糾正。 * 接下來又遇到問題,查看出錯文件,寫的是duplicate key,可是用戶名明明不一樣啊,猜想是字符集的問題,經過半天搜索,解決的辦法是,將Linux上的mysql用gbk碼啟動,命令行如下: * 接下來以為正確了,可是轉換后,帖子卻不正常了,又搗鼓了半天,先把Access數據庫修復了一下(在Access的菜單里),結果瞎貓碰見死耗子,好了! * 可是這樣還不好,轉換后的數據庫雖然正確了,可原來的密碼卻怎么也不能登錄了,查了網上資料,知道mysql 4.1的改動還有一個是密碼算法的改動,無奈只得重新啟動mysql: * 接下來開始導出數據庫再導入,本以為是很簡單的任務,可問題還是出在了字符集上,經過摸索,導出的命令為: * 數據庫導入真實服務器后,進入真實服務器的管理頁面,刷新服務器緩存,數據終于正常了。剩下的工作就是轉移海量的圖片和附件了。由于DVBBS.PHP和ASP兩個版本的目錄結果很不一樣,這就只有去看那些帖子里圖片的連接,巧妙運用Linux里的ln命令創建符號連接來解決這個問題了。 大致過程和碰到的問題先寫到這,關于新的PHP版本DVBBS,發現還是有不少問題,比如首頁調用很多內容就無法顯示(比如帖子調用里的replyuser和replytime等)。這個只有等待動網的朋友們來改了。 該文章在 2012/4/25 0:32:46 編輯過 |
關鍵字查詢
相關文章
正在查詢... |