サイトを運営していると新しいエクステンションをテストしたり、表示を確かめることってありますよね。Joomla!の場合オンライン上で記事を書き、また編集できちゃうので以前のローカルでテストしてということをされていない方もおられるのではないでしょうか。
サイトのローカルコピーを先日再作成したときの手順を書いてみます。
必要なもの
- FileZilla FTP Client
これは、いつも使っているFTPクライアントでOKです。なぜFileZillaかは、以前の記事 に書いたように多重接続ができるからです。また、サーバー側でバーチャルシェル機能(サーバー側で圧縮展開できる)などがある場合は、また別です。 - phpMyAdmin
データベースをバックアップできればなんでも良い。 - テキストエディタ
- ローカルWebサーバ環境
XAMPPなどで環境を作成してください。
ファイルのコピー
まずは、サーバー上のファイルをすべてローカルWebサーバー上のXAMPPならhtdocs以下の任意のフォルダにコピーします。
XAMPPをインストールしたフォルダ D:\xampp
サーバー上のファイルを入れるフォルダ D:\xampp\htdocs\example
この中にすべてのファイルを入れる。(htdocs直下を使っても良いが、XAMPPのファイルと重複したりするので注意。)
configuration.phpを編集
- $mosConfig_absolute_path = 'D:/xampp/htdocs/example';
\マークがスラッシュになっていることに注意してください。 - $mosConfig_cachepath = 'D:/xampp/htdocs/example/cache';
\マークがスラッシュになっていることに注意してください。 - $mosConfig_db = 'あなたのこれから作るローカルデータベース名';
- $mosConfig_user = 'あなたのローカルDBユーザ名';
- $mosConfig_password = 'あなたのローカルDBパスワード';
データベースをコピー
サーバーによって異なりますがデータベースを表示している場合は、テーブルすべてを選択。データベース名を選択できる場合は、該当のデータベース名を選択します。(イメージ参照)
そして以下にチェックをいれます。
(これは、チェックしなくても問題ないですが、失敗したときや個別にテーブルをインポートするときなどに便利です。)
- DROP TABLE / DROP VIEWを追加
- IF NOT EXISTS を追加
最後にファイルに保存するにチェックを入れそのまま実行するボタンを押し、ローカルPCのどこかにファイルを保存します。
localhost.sql (ファイル名は、環境により異なりデータベース名だったりします。)
これで、ローカルPCにデータベースのデータがコピーできました。
XAMPPのphpMyAdminを開く
- http://localhost/phpmyadmin
サーバー上と同じデータベース名(異なっても構いません。上の「これから作るローカルデータベース名」のこと)でデータベースを作成する。
このとき、照合順序に注意してください。
※そして必ずチェックしてください。上記で作成したローカルPCにコピーしたsqlファイルを開き、下記のような部分が無いかチェックしてください。
(ファイルのはじめに一カ所しかありません。)
-
DROP DATABASE `あなたのデータベース名`;
「あなたのデータベース名」というデータベースがあれば削除します。 -
CREATE DATABASE `あなたのデータベース名`;
「あなたのデータベース名」というデータベースを作成します。 -
USE あなたのデータベース名;
「あなたのデータベース名」というデータベースを使用するよう指示します。
DROP DATABASEの行とCREATE DATABASEの行は、削除してください。そしてUSE~の行があれば上で作成したデータベース名を書けば良いのですが、今回は削除しましょう。
※sqlファイルを開くとき文字コードに注意してください。Joomla!の場合大抵UTF-8です。保存するとき異なる文字コードで保存してしまうと壊れます。
作成した空のデータベースをphpMyAdminで表示します。
空なのでテーブルがありませんと表示されています。
しばらく待ってインポート完了。
http://localhost/exampleを開く
※MySQLのサーバーとローカルでのバージョン違いなどでエラーが出る場合があります。その時は、そのエラーを見て該当する部分を修正しないといけないこともありますのでご注意ください。





































