先日、職場で使ってるXoopsを置いているサーバを急に移設されまして、、、案の定、サーバにあるファイルだけが移設されており、データベースはまるっと残されたままになってました。。。
当然、サイトにアクセスしても表示されるわけもなく(お客さん向けに作ったサイトやのにどうすんねん。。。)、問い合わせ必至でしたw
移設することは1ヶ月も前に決まっていたそうなんだけど、管理者チームには一切知らされておらず、DNSの切り替えが行われて突然表示されなくなったことから、移設が行われていたことが露見。なんて、お粗末な職場なんざんしょ。。。
ありえない展開です。データベースを使うCMSであることは誰もが承知しているはずなのに、、、しかもルートに置いてあったセキュリティー用のモジュールもしっかり取り残されてました。
データベースが消されるまで、約1ヶ月あるとのことで、とにかくデータのバックアップ。で、新しいデータベースサーバでsqlのインポートと実行をするが、真っ白けっけ。もう、めまいです。
きちんとデータベースパスも書き換えたのに、管理画面にすら入れない状況となってしまい、とほほです。こうなっては一から構築しなおすのか?とんでもないことです。そんなことはやってられないので、とりあえずは一旦DNSを戻してもらい、もともとの状態に戻してから移設の手順を追って作業することにしました。
↓以下、手順の覚書↓
旧鯖側
1:Xoops管理画面より一般設定において、サイトを閉鎖するにチェックを入れて更新する。
※管理者レベルのみにアクセス権限を与える。
次にモジュール管理にてシステム以外のモジュールを全て非アクティブ化する。
2:データベース鯖に接続してデータベース毎エクスポートして.splにて保存する。
※PHPmyadminを利用している場合はエクスポートボタンで生成保存する。
3:FTP接続にて全てのファイルのバックアップを行う。
※Xoops-trastの設定があるためルートにもファイルがあるので忘れないようにする。
新鯖側
1:新鯖にFTP接続し、先ほどのバックアップファイルをすべてアップロードする。
※ルートにアップロードが必要なファイルある場合は注意が必要。
sakuraの場合はwwwフォルダのいる階層にアップロードする。
2:新しいサーバにデータベースを作成する。
※サーバによってデータベース名が変わることがあるので、注意する。
ローカルでの処理
1:データベースのバックアップファイルを作成した上で
テキストエディタで開いて編集。Xoopsの場合、文字コードeucとなっているためメモ帳不可。
データベース名を新しいものに変更する。
各モジュール内でフルパスの指定をしているものがあるため、
新鯖でのフルパスに全て変更する。(検索置換で一度に行うと作業が楽)
2:FTPでダウンロードしたデータのうちコアファイルのひとつmainfile.phpを編集する。
// XOOPS Physical Path
define('XOOPS_ROOT_PATH', '/home/○○○○○/www/n-s-s/seoup');
// XOOPS Virtual Path (URL)
define('XOOPS_URL', 'http://www.○○○○○.ne.jp/seoup');
define('XOOPS_TRUST_PATH','/home/○○○○○/xoops_trust_path');
// Database Hostname
define('XOOPS_DB_HOST', 'データベース名');
// Database Username
define('XOOPS_DB_USER', '○○○○○');//localhostとなっている場合は編集不要
// Database Password
define('XOOPS_DB_PASS', 'ログインパスワード');
// Database Name
define('XOOPS_DB_NAME', '○○○○○');
※編集完了後、サーバにアップロードして属性書き込み不可に変更⇒444がベスト
新鯖での最終作業
1:新しいデータベース鯖に編集したデータベースを取り込む。
※PHPmyadminの場合はインポート機能を使えば一発で取り込める。
2:管理画面にアクセスしてモジュールを一つずつアクティブにして動作を確認。
≪ all done