狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

一次DVBBS從ASP到PHP的轉換實例

admin
2012年4月25日 0:32 本文熱度 3901

由于服務器從Windows轉為了Linux,我不得不考慮將一個ASPDVBBS轉到Linux平臺上。

首先想到的是Linux能否支持ASP?經過網上的查詢,發現有個叫iASP的模塊,可以插入Apache,讓其支持ASP腳本。欣喜之下,趕忙找來iASP安裝,不料卻沒能成功,一是用這個模塊的少,其更新也慢,剛剛開始支持Apache2,還要重新編譯PHP,反正我是沒搞成功;二來這畢竟是個折中的辦法,就算成功了,估計也有很多后患,加上用的人少,遇到問題就只能靠自己了,沒有什么支持。


接下來只有考慮轉為PHP版本的DVBBS了。經過幾天的艱苦奮斗,終算新的論壇運行起來了,不過DVBBS.PHP還是個新發布的軟件,不像其ASP兄弟那樣久經考驗,不論是轉換程序還是論壇程序,存在的問題不少,費了我不少精神。弄完之后,長出一口氣,想著將遇到的點點滴滴記錄下來,供今后需要轉換的兄弟們參考。


先介紹一下我的工作環境。我家里有兩臺電腦,一臺Windows XP SP2,另一臺是裝的Debian Linux。我決定先在我的Linux試驗一下新論壇,然后在導入網上的真實服務器。這里需要提醒要轉換的朋友們,目前轉換程序只能在Windows平臺上使用,因為老的ASP BBS是建立在AccessMS SQL數據庫上的,MS SQL我不太清楚,因為我的老論壇數據庫是用的Access。而轉換程序訪問Access數據庫用的是ADO,這個我還真不知道Linux下怎么支持,所以那些想在Linux下運行轉換程序的朋友們,我勸你們還是不要再等了。


理一下轉換工作的思路。要轉換的數據主要有兩部分:一是數據庫,二是附件。那么我就先在自家的Linux上安裝apache+php+mysql這個黃金組合,并安裝好DVBBS.PHP。然后在我的Windows機器上安裝IIS+PHP,將轉換程序和老的Access數據庫放到WindowsPHP平臺下運行,但其中的mysql數據庫卻指向Linux機器上的mysql。轉換好后,我先在我的Linux上的DVBBS檢查轉換結果,如果沒有問題的話,將mysql的數據庫導出為一個sql文件,傳到真實服務器上,導入即可。剩下的工作就是把海量的圖片文件慢慢地往上放了。


理清了思路,我們來關注一下轉換過程中的細節。


首先安裝好apache+php+mysql,這個沒什么好說的,網上資料一堆一堆。


*   登錄mysql,為其創建兩個用戶,一個是dvbbs,限制從localhost訪問;再建一個遠程訪問的用戶例如windows,這個是為了轉換程序能從遠端導入數據。具體的命令如下:
grant all on *.* to windows@% identified by “windows”;


*   在Windows上安裝IIS+PHP,這個網上也有不少資料介紹,不過我還是碰到了問題。我裝的PHP4.x版本的,具體安裝過程簡單描述一下:將PHP拷貝到C:PHP;將dlls目錄和isapi目錄下的dll文件拷貝到C:PHP目錄下;修改C:PHPphp.ini-distphp.ini,并且編輯里面的extension_dir設置;將C:PHP添加到系統PATH,重啟計算機讓其生效;修改IIS的擴展配置,加入.php的擴展。最后有一點很重要,需要修改站點的文件安全性,要么集成Windows用戶認證,要么將網頁目錄修改為允許IIS自建的用戶訪問。我就是在這最后一點搞了好久。


*   現在環境準備好了,將轉換程序放入IIS的目錄,再將Access數據庫文件放入相應位置,運行。可是這里卻發現了不少問題,這轉換程序寫得也太不仔細了,里面很多表名的大小寫沒有注意。Access里的數據庫表名一般首字大寫,可php版的mysql數據庫表名全都是小寫,沒有辦法,只能手工將其一一改正。


*   接著進行轉換,還是有問題,經過仔細調試,又發現轉換程序的一個問題,在用戶轉換一欄,以前Accessusername字段是允許相同的,而mysql的表的這個字段卻要求是唯一的。我的老數據庫由于運行了很長時間,里面出現了很多同名的項。沒有辦法,只能打開轉換程序輸出的出錯文件(在轉換php文件的目錄,以數字取名的),里面記錄了所有重復的用戶名,打開Access,一個一個將其糾正。


*   接下來又遇到問題,查看出錯文件,寫的是duplicate key,可是用戶名明明不一樣啊,猜想是字符集的問題,經過半天搜索,解決的辦法是,將Linux上的mysqlgbk碼啟動,命令行如下:
mysqld_safe --user=mysql --default-character-set=gbk &
關于如何用gbk字符集啟動mysql,網上有很多說明,也可以在my.ini中設置,如果你用的是mysql 4.1版本以上,就不得不先為字符集問題傷傷腦筋。


*   接下來以為正確了,可是轉換后,帖子卻不正常了,又搗鼓了半天,先把Access數據庫修復了一下(在Access的菜單里),結果瞎貓碰見死耗子,好了!


*   可是這樣還不好,轉換后的數據庫雖然正確了,可原來的密碼卻怎么也不能登錄了,查了網上資料,知道mysql 4.1的改動還有一個是密碼算法的改動,無奈只得重新啟動mysql
mysqld_safe --user=mysql --default-character-set=gbk --old-passwords &
采用老密碼算法啟動mysql,再次轉換,這回終于成功了。別忘了進入管理頁面去刷新緩存,否則帖子的名字就都變成了“”。


*   接下來開始導出數據庫再導入,本以為是很簡單的任務,可問題還是出在了字符集上,經過摸索,導出的命令為:
mysqldump --default-character-set=gbk –p dvbbs > dvbbs_gbk.sql
導入的命令為:
mysql --default-character-set=gbk –p dvbbs < dvbbs_gbk.sql


*   數據庫導入真實服務器后,進入真實服務器的管理頁面,刷新服務器緩存,數據終于正常了。剩下的工作就是轉移海量的圖片和附件了。由于DVBBS.PHPASP兩個版本的目錄結果很不一樣,這就只有去看那些帖子里圖片的連接,巧妙運用Linux里的ln命令創建符號連接來解決這個問題了。


大致過程和碰到的問題先寫到這,關于新的PHP版本DVBBS,發現還是有不少問題,比如首頁調用很多內容就無法顯示(比如帖子調用里的replyuserreplytime等)。這個只有等待動網的朋友們來改了。


該文章在 2012/4/25 0:32:46 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved