joomlaバックアップ&再構築 | tsukapiko-blog

joomlaバックアップ&再構築

http://tsukapiko.minibird.jp/
このサイトが大きく改編されてから
バックアップが取れてなかったので
そろそろローカルで再構築しておこうと思っていた
やさきに…
今回、ハッカーにサイト攻撃され
バックアップに踏み切るきっかけができた(笑)

●単純には、以前書いた通りデータベースのマスターを
元のサーバー管理画面から抜き出して、
joomlaのファイルはFTP経由で移動させるだけ
念のためにちゃんとバックアップされているか確認のため
PCのXMAPPコントローラーで一度稼働させ
プレビューさせて本サーバーに上げて行く。

《joomla!のMEMO》
joomaのインストール(基本)     
joomlaのデータベース移動     
MAPPとXMAPP (ローカル)     
サイトがハッキングに(対応と処置)     

■記載漏れ及び高度な注意点

◎本来joomlaCMSも各ページのリンクは
相対パスで自動リンクしていくもんだが
一部記事やテンプレート、カスタムモジュール内など、
jQuery等、絶対パスで書かないと機能しなかったりする。
当然、ローカルで展開したりサーバーが変わると
リンク切れを起こすので入れ変える際、注意が必要。

◎joomla!テンプレートのフォルダ名をオリジナルから
任意に変更したらデーターを移行した時に
管理画面で上手く認識しない様だ。
この事でデフォルテのテンプレートのhtmlとcssが
蹴られてスタイルやメニューがバラバラになる。

◎以前にも書いたが、XMAPPをMacのローカルで動かした時に
MySQLのみグリーン点灯するがアパッチが稼働しない場合は
Mac→web共有を切る
tsukapiko-blog
●2MB以上のデーターベースを移動する方法

データベースは大抵容量制限がかかっていて、
2M以上インポート出来ない。
その際、BigDumpダンプ(http://www.ozerov.de/bigdump/)
を使うBigDumpは、PHPベースのMySQLインポートツール
1つのSQLファイルサイズがかなり大きくても大丈夫なようだが
(今回は30MB)エクスポートするSQLファイルは
いろいろな制約がある。

《1》 BigDumpのダウンロード

tsukapiko-blog

BigDumpのページの右にある
「BigDump ver. 0.34b (beta) 」をクリック。

《2》 BigDumpの設定

ダウンロードしたアーカイブを展開し中にある
bigdump.phpをドリームウエーバー等のエディタで開き、
データベースに接続するための以下の情報を編集します。
// Database configuration
ーーーーーーーーーーーーーーーーーーーーーーーーーー
$db_server = 'localhost';
$db_name = '';
$db_username = '';
$db_password = '';
ーーーーーーーーーーーーーーーーーーーーーーーーーー
それぞれの設定内容は次のとおり
• $db_server:データベースサーバ
• $db_name:データベース名
• $db_username:データベースユーザ名
• $db_password:データベースパスワード
また、文字エンコーディングの設定もある。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
// Connection charset should be the same as the dump file charset (utf8, latin1, cp1251, koi8r etc.)
// See http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html for the full list
// Change this if you have problems with non-latin letters
$db_connection_charset = '';
ーーーーーーーーーーーーーーーーーーーーーーーーーー
UTF-8を設定する場合は次の文字を挿入。
$db_connection_charset = 'utf8';

$db_connection_charsetの設定はインポート実行で
データが文字化けした場合のみこの設定を行う、
データベースを一旦削除・再作成して再実行するといい。
特に書き込まなくてもたいてい問題はないようだが、
取りあえずUTF-8は設定しておいていいだろう。

《3》 bigdump.phpの起動

bigdumpフォルダ(名称任意)内にbigdump.phpと
アップロードさせたいdbをディレクトリに入れたら
ブラウザからbigdump.phpにアクセス、
データベースの設定が正しければ次のような画面が表示。

tsukapiko-blog

データベースの設定が正しくない場合は次のような表示になる。

tsukapiko-blog

《4》 SQLファイルのアップロード

もし、SQLファイルのサイズがそれほど大きくなければ、
bigdump.phpを使ったアップロードも可能らしい。
アップロードするには、4項で表示されている
bigdump.phpのフォームからSQLファイルを選択し、
「Upload」をクリック。
こ れでbigdump.phpと同じディレクトリにSQLファイルを
アップロードします(この操作ではインポートは実行されない)。

tsukapiko-blog

アップロード可能なファイルサイズは、
サーバによって上限が異なるらしい。
FTPによるアップロード、またはbigdump.phpを
使ったアップロード、いずれの場合も、
アップロードしたファイルは次のように表示される。

tsukapiko-blog

ここでは1ファイルのみですが、
複数のSQLファイルをアップロードすればすべて表示される。

《5》 インポート実行

表示されたSQLファイルの一覧にある
「Start Import」をクリックすれば、インポートを開始。

tsukapiko-blog

次のように表示されればインポート完了。
実行ラインやクエリー数、バイト数などが表示される。

tsukapiko-blog

インポート完了後、画面下にある「Start from the beginning」を
クリックして最初の画面に戻る。
このとき、絶対にブラウザの「戻る」で戻らない事
(インポートが再実行される)。

tsukapiko-blog

一覧の右側にある「Delete file」をクリックすれば、
サーバ上のSQLファイルを削除し、再実行を防ぐ
(削除されないケースもあるらしい)。

tsukapiko-blog

※データーベース名が重複しても、
エラーが出るので注意が必要。

さらに注意すべき問題として、joomlaを新規インストールすると、
データベースを読み込まず、既存のデータベースを一旦消去して、
新たにインストールするとデータベースを認識する。

《6》 インポート時のエラーについて
「Start Import」を実行したあと、
以下のエラーが発生する可能性がある。

tsukapiko-blog

このエラーの原因は、1回にINSERTするときの行数が
300行以上ある場合。ファイルサイズの小さいSQLファイルでも、
1つのINSERT文に300行以上の内容が含まれていると、
このエラーが発生する可能性がる。
このエラーを回避するには、phpMyAdminからエクスポートするときに、
「作成するクエリの最大長」の値を変更します。minibirdは、
デフォルトで50000になっているので、この値を300などに変更して
エクスポートこれで1回のINSERT文が300行以内になる。

tsukapiko-blog

この値について、例えば10などを設定しても、
1つのINSERT文に1レコードの情報が入らなくなるということはない。
尚、マスターのデータベースを消去する前に値を変えて
出力をしないとインポート出来ず取り返しがつかない事に…

小粋空間MyAdmin大きいファイルをインポート
MyAdminからSQLファイルをインポートできなかった


●バックアップにJoomlaPackを使う。

joomla管理画面のインストールからzipファイルを読み込んで
コンポーネントからコンパネを出したら、
何も考えずバックアップを押すだけ。

tsukapiko-blog

本来は、出力先や圧縮方法などの細かい設定が
あるみたいだけど、そのままで大丈夫だった。

tsukapiko-blog

そしてそのデータを圧縮状態でエクスポートしたら完了。
dbデータもすべて格納されているみたい。

tsukapiko-blog

ただそのままhtdocs=ディレクトリ内にフォルダの中身を
移動してもサイトが復元されないー
おそらくファイル自体は正確にバックアップされてるのだろうけど
なんかのファイル情報が欠損もしくは違っているのだろう…

やはり、ftpから手作業コピーの方が、その都度確認ができるから
この機能は気休め及び応急処置程度で考えていた方がいいだろう。

joomlaの道しるべJoomlaPack - サイトを丸ごとバックアップ
Joomla CMSの使い方で困ったら Goyat

↑マイHPWebデザインコーナー