XOOPS與模組之升級

51 bcwang535 網友
15年6月16日 16:07
轉送到...
睡蓮 寫道:

那會改很多...

有錯一定得改,不然誤導人就糟了。(^^)
誰會吃飽沒事幹有正常又對應的不用而去挑不正常又不對應的 phpMyAdmin版本來用呢?

呃……小弟預計即使在順利升級後,原 2.0.13.2 版本也會留一份當歷史紀錄。所以不管用「低版本 phpMyAdmin 瀏覽」或「加變數強制轉換」來看舊資料,對我來說都算是個折衷的方法。(^^)
所以後面關於 Scenario A 和 Scenario C 的編碼解決方式是沒有必要,省掉可以了。

有理,我盡量刪除不相干的對照組,只留與順利轉換相關的方法,希望能精簡些。
至於 Scenario B,升級後用新版 phpmyadmin 可以了 ,不需要再去管舊版的 phpmyadmin,新版 phpmyadmin有亂碼會在您按「亂碼還原-上」修正好且倒回到資料庫去後回復正常,就這樣簡單而巳。若倒回去後 phpmyadmin 仍不能顯示正常中文,那表示您按「亂碼還原-上」沒有做對。

我發現對我來說,缺少升級過程中「編碼與連線校對」相關的調校資訊,是編碼問題無法解決的主因,如果「按原設定,不做任何變更」,則 XOOPS 仍將以 latin1 編碼送回 MySQL ,在此前提下,即便我按您上述步驟轉換資料為 utf8 ,仍無法於較高版本的 phpmyadmin 中正常顯示。到此步驟,如果不重新升級且選擇正確的設定,就只能用「強制轉換」的方式再多繞一圈送資料回資料庫。

這是我一直鬼打牆的主因,也因為反覆的做測試,發現到了這些小步驟的重要性,才希望以圖示說明清楚每一種流程下,各角色的相對關係與能力限制。
加入指令,對低於 XOOPS 2.3 版本的是可以的,XOOPS 2.3 以上仍用指令的,已經在說明資料庫本身有問題要解決了,否則何需要強制?

如上述,若升級過程中「編碼與連線校對」選擇「維持原設定,不做變動」(事實上,多數人不敢亂做變動……),後面便是不可逆的狀況,當然正規作法應為重新進行一次升級並選正確編碼選項,然而我覺得對於某些害怕與資料庫搏鬥的朋友們,這總是一個暫時的權宜之法。當然,若要避免問題一直延伸,還是要在熟悉後回頭處理。

我將文章做了精簡,並將其中誤植處一一修正,希望能讓有需要的朋友們對其相互關係有明確的理解。

XOOPS - latin1 編碼轉 utf8 編碼問題研究與解決方法
提示您一下,從舊版 phpmyadmin 中匯出的 .sql 檔,裡面是沒有 COLLATE 的,COLLATE 要在新版 phpmyadmin 才會有。

了解,我查了,確實沒有,不過目前編碼問題算是解決了,由現在的 phpMyAdmin 再輸出,應該就都正確了。
要用更新模組的升級方式,不能直接用新版模組重建頁面,否則會當作第二個 TinyD 模組而不會有舊版的評論在內。

了解,在目前編碼都正確的情況下,我再來嘗試升級看看,並將再為各位更新結果。

再次謝謝站長大人的指導~
52 睡蓮 網主
15年6月17日 0:02
轉送到...
bcwang535 寫道:
呃……小弟預計即使在順利升級後,原 2.0.13.2 版本也會留一份當歷史紀錄。所以不管用「低版本 phpMyAdmin 瀏覽」或「加變數強制轉換」來看舊資料,對我來說都算是個折衷的方法。(^^)

原 2.0.13.2 版本留在 DreamHost 上(MySQL 5.1.56 & PHP 5.4)?這頂多只能從低版本 phpMyAdmin 上瀏覽舊資料,而原網站是無法在 PHP 5.4 高版本下完全正常執行的,DreamHost 日後還會繼續更新伺服器環境版本,與其留在 DreamHost 上,還不如在本地端留一份比較穩定。
bcwang535 寫道:
我發現對我來說,缺少升級過程中「編碼與連線校對」相關的調校資訊,是編碼問題無法解決的主因,如果「按原設定,不做任何變更」,則 XOOPS 仍將以 latin1 編碼送回 MySQL ,在此前提下,即便我按您上述步驟轉換資料為 utf8 ,仍無法於較高版本的 phpmyadmin 中正常顯示。

既然 phpmyadmin上的資料庫編碼設定與校對預設為 latin1,那麼在匯出的 .sql 檔中就不會是單純的 utf8 了。請看看有沒有如「亂碼還原-」之圖一 「charset 和 collate 是 latin1 」下那三條有紅色下劃線的 latin1_*****_ci ?如果有,按該文步驟來做但 SET NAMES 維持 utf8 不變,CHARSET=latin1 換為 CHARSET=utf8,latin1_*****_ci 換為 utf8_*****_ci,然後返回「亂碼還原-」按圖5開始做餘下的步驟便可以了。
53 bcwang535 網友
15年6月23日 23:02 15年6月23日 23:21
轉送到...
睡蓮 寫道:

原 2.0.13.2 版本留在 DreamHost 上(MySQL 5.1.56 & PHP 5.4)?這頂多只能從低版本 phpMyAdmin 上瀏覽舊資料,而原網站是無法在 PHP 5.4 高版本下完全正常執行的,DreamHost 日後還會繼續更新伺服器環境版本,與其留在 DreamHost 上,還不如在本地端留一份比較穩定。

的確,本地是一定會留的,主機商那就看能撐多久。
既然 phpmyadmin上的資料庫編碼設定與校對預設為 latin1,那麼在匯出的 .sql 檔中就不會是單純的 utf8 了。請看看有沒有如「亂碼還原-」之圖一 「charset 和 collate 是 latin1 」下那三條有紅色下劃線的 latin1_*****_ci ?如果有,按該文步驟來做但 SET NAMES 維持 utf8 不變,CHARSET=latin1 換為 CHARSET=utf8,latin1_*****_ci 換為 utf8_*****_ci,然後返回「亂碼還原-」按圖5開始做餘下的步驟便可以了。

我發現我的檔案沒有這些字串,僅有 NOT NULL 如附圖,不知是否是此原因所致。 隱藏內容
54 bcwang535 網友
15年6月23日 23:21
轉送到...
不好意思近日工作忙,現在為站長及各位網友報告最新模組升級消息。我於主機商空間嘗試升級 CBB 至 4.33RC7 ,第一次升級完後,如當初於本地端測一樣出現空白畫面,後來移除退回 CBB 1.15 後,發現前次升級未先安裝投票模組,故此次先進行投票模組安裝後,再進行 CBB 4.33RC7 的升級,便一路順暢的完成升級,且能看到文章內容了。(當然還是有預先調校 newbb\sql 中的相關文件之 ENGINE=MyISAM 為 TYPE=MyISAM )由此可證 CBB 的升級必須一定要安裝好投票模組才能進行,否則就會出現空白畫面。

緊接著進行 TinyD 的升級,在解決網站語系的問題後(前後台、資料庫均為 utf8 ),將「 tinyd0 」裡所有的檔案一一複製覆蓋至安裝的「 tinydx 」資夾中,模組管理頁面按下升級,前後台便均能正常顯示了。由此可證站長當初建議的,先將網站編碼問題解決,確實是升級 TinyD 的重要步驟。

目前碰上的小問題,是測試隨 TinyD 一同附上的「 SPAW 」編輯器。我按照網路上的相關指引,將所有檔案複製至網站根目錄( 附圖1 ),隨後於 TinyD 後台的編輯器嘗試切換為 SPAW 模式( 附圖2 ),但隨即出現空白畫面與錯訊息( 附圖3 ),不知站長可有此問題之處裡經驗?

感激不盡~ 隱藏內容
55 bcwang535 網友
15年6月24日 14:08
轉送到...
bcwang535 寫道:

目前碰上的小問題,是測試隨 TinyD 一同附上的「 SPAW 」編輯器。我按照網路上的相關指引,將所有檔案複製至網站根目錄( 附圖1 )


又查了些資料,發現可能複製與貼錯了位置,改將整個 common 資料夾貼到網站根目錄,再於後台點擊 TinyD 的「加入內容/SPAW」,隨即可出現表單,但無任何可控制的 Icon 。(如附圖)

目前持續找資料嘗試中~ 隱藏內容
56 睡蓮 網主
15年6月24日 15:06
轉送到...
bcwang535 寫道:
我發現我的檔案沒有這些字串,僅有 NOT NULL 如附圖,不知是否是此原因所致。

此檔案是從舊版 phpmyadmin 下匯出來的還是從新版下匯出的?

bcwang535 寫道:
我於主機商空間嘗試升級 CBB 至 4.33RC7 ,第一次升級完後,如當初於本地端測一樣出現空白畫面,後來移除退回 CBB 1.15 後,發現前次升級未先安裝投票模組,故此次先進行投票模組安裝後,再進行 CBB 4.33RC7 的升級.........由此可證 CBB 的升級必須一定要安裝好投票模組才能進行,否則就會出現空白畫面。

除非 CBB 在升級之前已經安裝了票選模組,否則空白問題應該跟安裝模組的先後次序無關。不安裝票選模組也不會影響 CBB 的正常使用。


bcwang535 寫道:
又查了些資料,發現可能複製與貼錯了位置,改將整個 common 資料夾貼到網站根目錄,再於後台點擊 TinyD 的「加入內容/SPAW」,隨即可出現表單,但無任何可控制的 Icon 。(如附圖)

先到後台系統的維護下清空快取目錄再看看。

另外,本站剛更新了 TinyD 模組,其內加入了 utf8 語言檔。
57 bcwang535 網友
15年6月25日 16:05
轉送到...
睡蓮 寫道:
bcwang535 寫道:
我發現我的檔案沒有這些字串,僅有 NOT NULL 如附圖,不知是否是此原因所致。

此檔案是從舊版 phpmyadmin 下匯出來的還是從新版下匯出的?

是由舊版的 phpmyadmin 匯出的。
bcwang535 寫道:
我於主機商空間嘗試升級 CBB 至 4.33RC7 ,第一次升級完後,如當初於本地端測一樣出現空白畫面,後來移除退回 CBB 1.15 後,發現前次升級未先安裝投票模組,故此次先進行投票模組安裝後,再進行 CBB 4.33RC7 的升級.........由此可證 CBB 的升級必須一定要安裝好投票模組才能進行,否則就會出現空白畫面。

除非 CBB 在升級之前已經安裝了票選模組,否則空白問題應該跟安裝模組的先後次序無關。不安裝票選模組也不會影響 CBB 的正常使用。

我也有點懷疑,待有時間另做一組測試後,再向各位報告。
bcwang535 寫道:
又查了些資料,發現可能複製與貼錯了位置,改將整個 common 資料夾貼到網站根目錄,再於後台點擊 TinyD 的「加入內容/SPAW」,隨即可出現表單,但無任何可控制的 Icon 。(如附圖)

先到後台系統的維護下清空快取目錄再看看。

另外,本站剛更新了 TinyD 模組,其內加入了 utf8 語言檔。


謝謝站長,我又下載並安裝了一次,但一樣在後台的 TinyD 的「加入內容/SPAW」中,依舊看不到任何功能圖示。

想請問,這個所見即所得編輯程式的安裝,是否與 TinyD 模組程式無關聯,為獨立應用。例如: CBB 討論區的發文、回文一樣可使用?(目前沒有)

又,安裝是否只要將 common 資料夾直接複製到網站根目錄即可?是否需要做任何其他的設定呢?

謝謝~
58 睡蓮 網主
15年6月26日 1:11
轉送到...
bcwang535 寫道:
是由舊版的 phpmyadmin 匯出的。

是否由始至終都是用舊版 phpmyadmin 匯出檔案後按亂碼還原文章進行還原步驟?

按文章還原的是要用已升至 xoops 2.57 後從新版 phpmyadmin 匯出來的檔案,不是用舊版的。

bcwang535 寫道:
謝謝站長,我又下載並安裝了一次,但一樣在後台的 TinyD 的「加入內容/SPAW」中,依舊看不到任何功能圖示。

又,安裝是否只要將 common 資料夾直接複製到網站根目錄即可?是否需要做任何其他的設定呢?

我剛在 XOOPS 2.57 上測試了是可以看到的:
下載 TinyD 解壓出來名為 tinyd-2.3資料夾後,tinyd-2.3 裡面有兩個資料夾,其中一個名為 common 資料夾,將之剪下,貼到 /XOOPS2.57/這裡,便可以用了,不需做任何其它設定。

如仍看不到,查看TinyD資料夾 > admin > index.php > 453 行是否:
		include XOOPS_ROOT_PATH.'/common/spaw/spaw_control.class.php' ;


bcwang535 寫道:
想請問,這個所見即所得編輯程式的安裝,是否與 TinyD 模組程式無關聯,為獨立應用。例如: CBB 討論區的發文、回文一樣可使用?(目前沒有)

老舊版本 XOOPS 2.0.x 沒有內建各種不同所見即所得編輯器,那時的 TinyD 或其它會用到編輯器的模組多會隨附編輯器在內,自行將之放到指定的資料夾下。但自 XOOPS 2.3 版起經已集成了各種不同所見即所得編輯器在內,所以 spaw 編輯器不用也無妨,還有別的編輯器可選用。

如果有其它模組也用 spaw 且也是指定同一路徑的資料夾,一樣可以使用。 CBB 已支援 XOOPS 內建的編輯器,而 TinyD 若要使用 XOOPS 內建的,則可透過後台系統的基本設定選擇何種編輯器作為預設之用。