【備忘録】XOOPSの引っ越し覚え書き | まいぺんら~い♪ な日々

【備忘録】XOOPSの引っ越し覚え書き

ここ数日で、XOOPSの引っ越しを何回やったことか……。
連続してこれだけやっとけば、わたしももうXOOPS引っ越しのプロを名乗ってもよいのかもしれない。
(いや、仕事の一環だから、そりゃプロってことにはなるだろうけどさ……)

通常のWEBサイト移転と違って、XOOPSなどのCMSは、データベースとの連動のこともあり、なにかと面倒。
あれこれ調べたところ、結局は移転先サーバで新たにXOOPSをインストールするところから始めて、その上で、移転するデータをかぶせる形にするのがベスト、というかそれ以外の方法は無いようで……。

XOOPSの要である「mainfile.php」というファイルの中身をちょいちょいと書き換えるだけで済むかな~と期待してみたけれど、そうもゆかず……ううっぷす!!
なまくらせず、着実に一歩一歩やってゆくのがよい、ということなのでしょね……。

しかし、運営してから何年もたつようなサイトは、それだけデータが肥大しているし、あれこれと増改築などもしていて、奇妙奇天烈な様相を呈しているもの。
しかも、それを最初に構築したのはわたしではなく、前任者。
つまり、細部までの把握は無理で、下手すると移転の際にどこか漏れが生じるかもしれないのだ。

前置きが長くなったが、ということで、ここ数日であみだした、自己流XOOPSの移転方法。

●前準備(XOOPSのデータを移動させよう)

(旧サーバも新サーバも、SSH接続できるという前提)

・旧サーバ

 SSHで、XOOPSで構築したサイトをまるごと圧縮
 とりあえず、XOOPSがあるディレクトリまでゆく。

 tar cvf 圧縮後のファイル名.tar 圧縮したいディレクトリ名

 と打ち込んで、XOOPSを圧縮
 また、ついでに(というか必須)xoops_trust_pathも同様に圧縮

 圧縮したファイルを、どこか、URL接続できる場所に置く。
 たとえば、移転するサイトの中とか。

・新サーバ

 SSHで接続し、とりあえずサイトを置きたいディレクトリへ移動。
 旧サーバから、圧縮したファイルを引っ張ってくる。

 wget http://圧縮ファイルを置いてあるURL.com/圧縮ファイル名.tar

 すると、あっと言う間に新サーバへ圧縮ファイルがこんにちはー☆
 それを解凍する。(XOOPSサイトとxoops_trust_path、両方とも)

 tar xvf 圧縮ファイル名

 XOOPSと、xoops_trust_pathを、しかるべき場所に置く。


●前準備2(データベースを移そう)

 長いあいだ運営してきたCMSは、それだけデータベースも膨大な量になっている。
 全部一度にバックアップするなど不可能。
 phoMyAdminでも、2MBまでしか駄目だったり。
 その辺の解決方法は「【備忘録】phpMyAdminの設置:webarenaの設定方法」を参照。

 とにかく、インポートの最大サイズを増やした場合でも、50MB以下を目安に、小分けにデータベースをローカルにバックアップ。
 今回の場合は、数百メガもあるデータベースを6つに分けてエクスポートした。

 当然のことながら、新サーバでも、データベース名は旧サーバと同じにしておいた方がよい。
 データベース名とか、テーブル接頭とか。


●新サーバでのXOOPSインストール

 新サーバに設置したXOOPSサイトのディレクトリの中で、以下のファイルを、まっさらなXOOPSのものに置き換える。(当然、XOOPSのバージョンに気をつけよう)

・mainfile.php
・modulesの中身(念のため)
・includeの中身(functions.phpのみ差し替え)
・settingの中身


以上のディレクトリの内容は、とりあえず保険としてローカル等にとっておく。

modulesのディレクトリは、FTP上にて名前を仮に変更した上で、まっさらなXOOPSの「modules」を入れるのが吉かも。
(もしかして、modulesディレクトリはそのままでもいいかも、という気もしないでもないけど……念のために)

インストール開始!

まいぺんら~い♪ な日々-xoopsインストール画面

もし途中でインストールが止まって、真っ白な画面になってしまったら、多分それは「setting」ディレクトリの内容が原因かも。まっさらなXOOPSのものに差し替えよう。

インストールが終了したら、modulesの中身を、元のmodeles(引っ越ししたいサイトの)に置き換え。

 さらに、phpMyAdminにてデータベースの内容をいじる。

●データベースの中身を、すげ替える

 新サーバのphpMyAdminでログイン。
 XOOPSのインストール作業によって生じたデータベースの中身を全部削除。
 そして、移設したいサイトのデータベースをインポートする。
 50MB以下ずつ、小分けに。

●仕上げ

 いざ、ブラウザをリロード。
 すると、Altsysを動かすためにデータベースのパスワードを聞いてくるので、入力し「NEXT」ボタンをクリック。
 画面に、mainfile.phpに「XOOPS_TRUST_PATH」のパスを付け足すよう指示が出てくるので、その通りにする。
 mainfile.phpをFTPから一度ローカルにダウンロードし、内容をテキストエディタでいじり、またアップロード。

 またブラウザをリロード。
 またデータベースのパスワードを入力し「NEXT」ボタンをクリック。
「おっけーよん♪」
 みたいなメッセージが英語で出てくるので、ブラウザのURLの欄をいじって、ホームページへ戻る。

 残り、移設したいsettingディレクトリの中身を、FTPにてせっせとサーバに入れる。
(不安があるなら、まずインストール後のsettingディレクトリの中身をローカルとかにバックアップしてから、移設サイトで使用してた内容をアップロード)

 これでおっけー!

 慣れれば、どんな肥大したXOOPSサイトも、1時間以内で移設できるようになる。

●おまけ

 バーチャルドメインとか使ってる場合、引っ越し作業の総仕上げの段階でDNSを書き換えたら、あちこちがリンクエラーを起こすかもしれない。
(てか、わたしの場合、そうなる)
 サーバを引っ越しする場合、大抵はそうなるのではないか、と思う(多分)。

 なので、mainfile.phpの内容を書き換えるべし。

 define('XOOPS_URL', 'インストールした時のサイトURL');

 この部分を、独自ドメインのURLにあらかじめ書き換えておくのが吉。
 そうすると、DNS書き換えの前はリンクエラーを起こしてる状態になるが、DNSを設定した後は、まっとうに表示されることになる。

 もし、上記の作業をしても「あわわわわ……!」なことになったら、すみやかに管理メニューの「システム設定」で「全般設定」を開き、
「サイトを閉鎖する」で「はい」にあわせて、管理者以外はサイトが見えない状態にした上で、対策をこうじるべし。

これで、めでたしめでたし♪

もっとスマートな方法があるかもしれないけど、文系女には、まあこれが精一杯ということで……。