参考URL: http://sourceforge.net/apps/mediawiki/xoopscube/index.php?title=Upgrade22;ja
注) XOOPS Cube LegacyをXCLと表記します。
XCL2.2で動く x-update という至極便利なモジュールを使いたいので、XCL2.1で構成されたサイトをXCL2.2にアップグレードした。せっかくなのでその方法をシェアします。
#1. サイトのバックアップ!
まずは現状のサイトのバックアップをしよう!
私はいまのところ数サイトをアップグレードしてどれも成功しているけど、もし間違ってしまった場合は戻せなくなってあたふたするのは嫌だから、必ずバックアップを行なってからアップグレードを行うのがベターだ。
####1. サイトをいったん閉鎖する
管理画面 > 互換モジュール > 全般設定 > サイトを閉鎖する > はい
こうすることでサイトがメンテナンスモードになるので、ユーザによる投稿ができなくなり、データ更新が停止できる。
ただし、閲覧のみのサイトであればメンテナンスモードへ移行しなくても良い場合もある。
####2. ファイルのバックアップ
とにかくXCLが動いているディレクトリごとファイルをバックアップしておく。tar.gzやZIPに固めるでもいいし、ディレクトリまるごとコピーを取っておくのでも良し、サーバからPCに転送しておくでもOK。
バックアップするべきディレクトリは下記の2つ。
htdocs
├ html
└ xoops_trust_path
※ 人によってはディレクトリ名がhtmlじゃなくてhtdocsだったりwwwだったりpublic_htmlだったりすると思うので、適宜読み替えてください。
#2. ファイルの準備
https://github.com/xoopsx/legacy から最新のコードをダウンロードし解凍する。
コマンドが使える場合は下記のコマンドでも良い。
git clone git@github.com:XoopsX/legacy.git
もしくは
git clone https://github.com/XoopsX/legacy.git
ダウンロードが終わると、下記の構成になっていると思います。
htdocs
├ html
├ xoops_trust_path
└ legacy
├ html
└ xoops_trust_path
ダウンロードしたファイルから以下のディレクトリとファイルを削除します。
rm -fr legacy/html/install
rm -f legacy/html/mainfile.php
rm -fr legacy/html/favicon.ico
rm -fr legacy/html/install legacy/html/mainfile.php legacy/html/favicon.ico
※ ダウンロードした内容をそのままアップロードしないように!!
ダウンロードしたファイル全部で上書きしてしまうと既存の設定が消えてサイトが機能しなくなってしまいますので、 html, xoops_trust_path は基本的にサーバにアップロードしますが、必ず上記のファイルを削除してから上書きしてください。
cp -r legacy/html/* html/
cp -r legacy/xoops_trust_path/* xoops_trust_path/
###英語以外の言語(日本語とか)を使う場合
- 英語以外の言語を使う場合は、
extras/extra_languages
から必要な言語ファイルを移動します。
- 例えば、日本語UTF8 環境で XOOPS Cube Legacy をお使いの場合、
extras/extra_languages/ja_utf8/
以下のlanguage
,modules
ディレクトリをXOOPS_ROOT_PATH
以下に上書きでコピーしてください。
(もう一つinstall
ディレクトリもありますが、アップグレードでは使いません)。
cp -r legacy/extras/extra_languages/ja_utf8/language/* html/language/
cp -r legacy/extras/extra_languages/ja_utf8/modules/* html/modules/
- 準備したファイルをすべてサーバにアップロードします。
xoops_trust_path
が無いXOOPSを使っている人については、次のステップ XOOPS_TRUST_PATH も参照してください。 -
xoops_trust_path/cache
のパーミッションを '777' に変更します。
mkdir xoops_trust_path/cache
chmod 777 xoops_trust_path/cache
##2-1. Altsysの対応(ホダ塾ディストリビューションを使っている場合)
この1行を
$this->_loadLanguage('legacy', 'setting');
html/preload/SetupAltsysLangMgr.class.php
の function loadGlobalMessageCatalog()
に以下のように追加してください。
function loadGlobalMessageCatalog()
{
/* if (!$this->_loadFile(XOOPS_ROOT_PATH . "/modules/legacy/language/" . $this->mLanguageName . "/global.php")) {
$this->_loadFile(XOOPS_ROOT_PATH . "/modules/legacy/language/english/global.php");
} */
$this->_loadLanguage( 'legacy' , 'global' ) ;
$this->_loadLanguage( 'legacy' , 'setting' ) ; /*** <= ここに追加するんだ!***/
//
// Now, if XOOPS_USE_MULTIBYTES isn't defined, set zero to it.
//
if (!defined("XOOPS_USE_MULTIBYTES")) {
define("XOOPS_USE_MULTIBYTES", 0);
}
}
#3. XOOPS_TRUST_PATH の作成
ホダ塾ディストリビューションを利用している場合は既に XOOPS_TRUST_PATH に対応している のでこの作業は必要ありませんが、そうでない場合は XOOPS_TRUST_PATH を用意する必要があります。
- XCL2.2より,
xoops_trust_path
が追加になります。 このディレクトリは、html/
の外に設置してください。html
以下に配置すると、セキュリティに問題が発生します。
-
html/settings/site_custom.ini.php
が存在する場合、/xoops_trust_path/settings/site_custom.ini
に移動します。 -
html/class/smarty/plugins
に追加されたプラグインをxoops_trust_path/libs/smarty/plugins
にコピーします(上書きコピーにならない要注意)。 - 定数 XOOPS_TRUST_PATH を
mainfile.php
に追加してください。
define('XOOPS_TRUST_PATH', 'YOUR_PATH/xoops_trust_path');
実際はこんな感じ
・・・
if ( !defined("XOOPS_MAINFILE_INCLUDED") ) {
define("XOOPS_MAINFILE_INCLUDED",1);
define('XOOPS_ROOT_PATH', 'YOUR_PATH/html');
define('XOOPS_TRUST_PATH', 'YOUR_PATH/xoops_trust_path'); /*** <= ここに追加するんだ!***/
define('XOOPS_URL', 'http://YOUR_DOMAIN/html');
・・・
#4.ディレクトリパーミッションの変更
chmod 777 xoops_trust_path/templates_c/
chmod 777 xoops_trust_path/uploads
#5. ブラウザからアップグレード処理
-
upgrade22.class.php
をextras/extra_preload
からhtml/preload
にアップロードします。
cp legacy/extras/extra_preload/upgrade22.class.php html/preload/
- あなたのサイトにアクセスします。
profile
モジュールのインストール画面が表示されますので、インストールして下さい。 -
html/preload/upgrade22.class.php
を削除します。 - 管理画面のモジュール管理で、すべてのモジュールをアップデートします。
#6. 不要になったディレクトリの削除
無事にサイトの動作が確認できたら、以下のディレクトリ/ファイルを削除します。
無事にサイトの動作が確認できたらというのは、トップページ及び他のページにいくつかクリックしてみて遷移してみる、管理画面に入って、いくつかクリックしてみて正常に動いているかを確認する、というくらいで良いでしょう。
rm -fr html/cache
rm -fr html/class/smarty/*.{lib,php,tpl} (index.htmlを除く)
rm -fr html/class/smarty/core
rm -fr html/class/smarty/plugins/*.php (index.htmlを除く)
rm -fr html/settings
rm -fr html/templates_c
#7. 管理画面からモジュールのアップデート
XOOPS Cube 2.2 のモジュールで上書きされているので、管理画面から必要なモジュールに対してモジュールアップデートを行う必要があります。
管理画面 »» 互換モジュール »» モジュールの管理
から行なって下さい。
アップデートが必要なモジュールには"NEW"アイコンが表示されています。
#8. サイトを再開する
管理画面 > レガシーシステム > 全般設定 > サイトを閉鎖する のチェックを外してサイトを開始します。
#※ うまくいかない場合には
extras/utility_tools/legacy22_check.php
を XOOPS_ROOT_PATH
(mainfile.phpと同じディレクトリ)に置いて、ブラウザでこのファイルにアクセスしてください。ヒントが表示されるかもしれません。