問與答
Joomla教學文件
作者:白建鵬 2008-02-26
在 Joomla! 1.5.1 發佈之後,基本上可以說 1.5 系列走上正軌了。這就引得不少之前用 Joomla! 1.0.x 已經建了網站的站長想要升級到 Joomla! 1.5.x 平臺。Joomla! 開發團隊已經公佈了 Joomla! 1.0.x to 1.5.x 升級/遷移指南,本文只是對官方文章的一個翻譯。
遷移過程基本上是依靠工具來自動完成的,大體分為兩個階段:
第一個階段就是導出 Joomla! 1.0.x 的內容成為一個元件,第二個階段就是製作針對 Joomla! 1.5.x 的安裝器並導入。之所以要採用自動方式,是因為 Joomla! 1.5 系列的資料與 1.0 系列有很大的不相容性。雖然還有一種方法能夠通過資料庫的備份、導入來完成遷移,但這樣容易造成資料丟失,所以不推薦。
注意事項:本文介紹的方法旨在最大可能使這個遷移過程變得容易。不過,仍然建議用戶在實施之前先在測試網站練習一次,成功之後再應用到正式網站。在整個遷移工程沒有成功之前,不要急於毀壞舊的 Joomla! 1.0.x 網站。一定要充分驗證遷移操作確實成功,才可以放棄舊網站。
第一步:下載 Migrator 組件並安裝到 Joomla! 1.0.x 網站
你可以在 Pasamio 的項目網站 找到最新版本的 Migrator 組件,在我撰寫本文時,該組件的最新版本是 Migrator RC7 。請下載該組件並安裝到你想要遷移的那個 Joomla! 1.0.x 網站上。這個安裝過程與其他標準元件完全一樣。安裝之後,在網站後臺的“元件”功能表上就能看到 Migrator 這個名稱。
第二步:安裝第三方擴展遷移插件 Migrator
這個元件主要是遷移 Joomla! 1.0.x 核心所管理的內容的。前面已經提到,如果某些安裝在 joomla! 1.0.x 的第三方擴展在 Joomla! 1.5 平臺沒有對應的版本,那麼就無法遷移。對於有對應版本的第三方擴展,則可以通過安裝針對該擴展套件的 Migrator 插件來遷移這些資料。
這樣的插件分為兩種類型:
一種是 [[SQL]] 型插件,是一個 SQL 文字檔案;另一種是 [[ETL]] 插件,是 [[php]] 格式的檔,告訴 Migrator 元件如何去處理存儲在資料表或者配置檔中的資料。
安裝插件的方式是:
點擊 Migrator 元件中“Add 3rd Party Migrators”這個鏈結,然後通過“流覽”按鈕找到你想要安裝的插件,點擊“Upload Plugin”按鈕安裝它。SQL 插件檔將被自動插入到輸出的結果中,ETL 插件則被自動執行。你可以點擊 Migrator 元件中的“List Plugins”鏈結來查看已經安裝的 ETL 插件。
第三步:創建用來遷移的 SQL 檔
當完成所有針對第三方擴展的遷移插件之後,就可以點擊“Create Migration SQL file”,然後點擊頁面底部的“Start Migration >>”來開始創建過程。Migrator 元件在設計時就考慮到要避免超時故障,因此你可以看到頁面自動刷新並且顯示狀態資訊。最後,會顯示一個通知消息說“Migration Complete!”,同時 SQL 檔已經可以下載了。你點擊“Download”鏈結即可下載輸出的 SQL 檔。這個 SQL 檔與 [[phpMyAdmin]] 導出的資料庫 SQL 檔可大不一樣,因為在輸出時已經作了針對 Joomla! 1.5 的轉換,調整了大量的資料表字段以便與 Joomla! 1.5 相容,例如重寫了 mosimage 標記。
第四步:安裝到 Joomla! 1.5
你必須全新 安裝 Joomla! 1.5.x, 並且不要安裝在舊的 Joomla! 1.0.x 所在目錄。最好是安裝在另一個單獨創建的目錄中。鑒於很多人都是在原來的空間中升級,資料庫也是在原來 Joomla! 1.0.x 所在的資料庫中(國內大多數空間商只提供一個資料庫),那麼注意安裝 Joomla! 1.5 時資料表的首碼也要使用不同於 Joomla! 1.0.x 的。對於原來就將 Joomla! 1.0.x 安裝在網站根目錄下,而現在又需要將 joomla! 1.5 同樣安裝在根目錄下的用戶,建議可以在完成第三步之後,將舊 Joomla! 1.0.x 網站的檔系統和資料庫完整備份下來(這次要用到 phpMyAdmin 了),然後徹底刪除,就可以開始全新 安裝 Joomla! 1.5.x 了。在安裝進行到最後一步時,提示你輸入網站名稱,同時頁面下部有“導入遷移腳本”的選項。這個導入過程就要用到在前面創建的 SQL 檔,我想你已經下載到本地硬碟了。現在需要將這個 SQL 檔上傳到正在安裝的 Joomla! 1.5 網站上去。
上傳方法有兩種:
• HTTP 上傳
• FTP/[[SCP]]
上傳 HTTP 上傳適用於 SQL 檔不大(例如原來的 Joomla! 1.0.x 網站內容不多),不會超出伺服器端的 php 上傳限制。如果 SQL 檔太大,一般來說伺服器端會禁止通過 HTTP 上傳,就適合用第二種方法。如果用 HTTP 上傳,就在提示“載入SQL移植檔”的介面上通過“流覽”按鈕選擇檔並上傳。
如果用第二種方法,必須將該 SQL 檔上傳到 /installation/sql/migration 目錄中,並且改名為“migrate.sql”。
無論你選擇哪一種方法上傳,如果遷移失敗,再次嘗試時就必須重新上傳原來的 SQL 檔,因為在遷移操作時該檔已經被改變了。 Migrator 元件生成的 SQL 檔其資料表首碼都是“jos_”,因此你必須在這一步操作介面上的“原網站的資料表首碼”這一欄填寫這個首碼。接下來注意選擇正確的檔編碼(中文 Joomla! 1.0.x 網站一般都是 utf-8 編碼)。然後還要鉤選“此腳本是Joomla! 1.0 移植腳本(SQL移植檔)”這一項,否則會出錯。確認所有資料都正確提供後,點擊“上傳並執行”來完成遷移操作。如果遷移成功,接下來填寫網站名稱(原來的網站名稱無法遷移),並結束 Joomla! 1.5 安裝過程。注意: 在最後填寫完網站名稱之後,還要求你填寫管理員密碼。你填寫的新密碼實際上不會生效,因為遷移過程已經繼承了原來 Joomla! 1.0.x 網站的管理員帳號。
因此,在完成遷移之後,只有使用舊的 Joomla! 1.0.x 管理員用戶名和密碼才能登錄新的 Joomla! 1.5 後臺。這個帳號你應該不會忘記吧?
免責聲明:
為了撰寫本文,我親手測試了上述方法,發現完全可行。不過,舊網站上那些文章裏面的插圖圖片不會遷移過來。如果舊網站有第三方觸發器而新網站沒有,那麼原 來那些觸發器標記語法就會以源代碼形式展示出來。因此,建議現有的 Joomla! 1.0.x 用戶慎重選擇升級/遷移,不是說把資料庫遷移過來就完成網站升級了。雖然經過測試此法可行,但是鑒於每個用戶所面對的伺服器環境千差萬別,本文作者和譯者均無法保證萬無一失。如果哪位元在應用此法過程中出現錯誤,甚至造成網站癱瘓,本站不承擔任何責任。