エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


ファイル変更だけ!ECCUBEの本番から開発環境をコピーする手順を解説

      2017/03/11

ECCUBEの本番環境をコピーして開発環境を作る

 

開発環境を作る想定イメージ

 
ECCUBEの本番環境(公開環境)のプログラムのメンテナンスをする必要がある場合や、プラグインを試そうとする場合、デザインを修正する場合など、いきなり本番環境で実施するのではなく、事前に確認をするための開発環境(テスト環境)が欲しいと思う場面は多々あると思います。
 
そのような、ECCUBEの本番環境をコピーして、開発環境を作る場合の手順を解説します。
今回は、開発環境を作ることを想定していますが、開発環境を本番環境に移す場合も基本的には同じですので、参考になると思います。
 
 
ちなみに、レンタルサーバなどで、サーバ会社から提供されていたドメインで開発を行っていたものに対して、独自ドメインを当てていよいよ公開します、という場合の対応方法については「ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について」に記事を書いていますので、併せて参考にしてください。
 
 

開発環境を作る手順

 
環境を構築する手順は、以下の順番になります。
 
ECCUBEのデータベースをコピーする
ECCUBEのファイルをコピーする
ECCUBEの設定ファイルを変更する
 
 


 
 

ECCUBEのデータベースをコピーする

 
最初にデータベースのコピーを行います。
 
ECCUBEのデータベースの中にはデフォルトでも 130前後のテーブルがありますが、これをすべて新しい環境にコピーします。
 
phpMyAdminがあれば、データベースごと「エクスポート」でデータベース全体を取り出します。
 
20150612_web_01
 
そして、新しい空のデータベースを作成し、インポートします。
 
 
 

ECCUBEのファイルをコピーする

 
ECCUBEのプログラム、HTMLファイルをコピーします。
 
一般的には、FTPツールを使って、一度パソコンにダウンロードし、開発環境のフォルダにアップし直します。
 
Telnet、SSHでの接続が可能な場合は、コマンドでファイルをコピーしても OKです。
その場合は、下記のように、「-a」オプションでパーミッションなども含めてコピーすると確実でしょう。
「cp -ai html /dev.hoge.com」
 
 
必要なフォルダは、ドキュメントルートに入っているファイル一式、および、「data」フォルダです。
 
「data」フォルダは、ECCUBEの本体となるプログラムが入っているフォルダで、ドキュメントルートの外にある場合が多いですが、ドキュメントルートの中にある場合もあります。
 
 
 

ECCUBEの設定ファイルを変更する

 
 

dataフォルダへのパスを通す

 
まず最初に、ECCUBEのメインのプログラムが入っている「data」フォルダの場所を設定します。
 
 /define.php
の 3行目あたりの

define('HTML2DATA_DIR', '../data/');

のパスを修正します。
 
デフォルトではドキュメントルートの外に「data」がある設定になっていますので、「../data/」の場合が多いのですが、サーバの環境によってはドキュメントルートの中に入れる必要がある場合は「./data/」となります。
 
また、元ある「data」とかぶらないように、dataのフォルダ名を変更する場合などは、変更したフォルダ名を記述すれば OKです。
 
 

config.phpファイルの設定変更

 
dataフォルダへのパスを変更した次は、dataフォルダの中にある config.phpファイルの更新です。
 
更新する対象は下記ファイルです。
 /data/config/config.php
 
まずは、URLの情報設定である 3行目、4行目を変更します。
 

//  define('HTTP_URL', 'http://www.example.com/');
//  define('HTTPS_URL', 'https://www.example.com/');
define('HTTP_URL', 'http://test.example.com/');
define('HTTPS_URL', 'https://test.example.com/');

 
 
続いて、5行目。URLのパスを指定します。
上記のようにサブドメインで環境を構築するときは必要ありませんが、「http://www.example.com/test/」のようにサブフォルダタイプで環境を構築するときは、ドキュメントルートからのパスを指定します。
 

//  define('ROOT_URLPATH', '/');
define('ROOT_URLPATH', '/test/');

 
 
続いて、データベースの接続先の設定です。
7行目~12行目あたりの下記の「DB_******」のあたりを変更します。
接続するデータベースが変わるだけなら「define(‘DB_NAME’, ‘abc_databasename’);」を変更します。
 

define('DB_TYPE', 'mysql');
define('DB_USER', 'abc_user');
define('DB_PASSWORD', 'abc_password');
define('DB_SERVER', 'localhost');
define('DB_NAME', 'abc_databasename');
define('DB_PORT', '');

 
 

ECCUBEはデータベースの修正なし

 
以上の設定変更で、ECCUBEの環境をコピーすることができます。
 
実際の設定内容を見て分かりますが、データベースには一切設定は保存されていません。
各設定ファイルを修正するだけで OKです。
 
WordPressはデータベースに保存されている設定情報を修正する必要があり面倒ですが、環境をコピーするだけなら ECCUBEの方が簡単ということですね。

 - PHP・Smarty・ECCUBE

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う
PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。

PHPで正規表現の検証には preg_match_allが便利

PHPで正規表現の検証には preg_match_allが便利です。その便利さの使い方の解説です。

PHPで特定の日間の日付を for、strtotimeで表示する

ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い
PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。

ECCUBEの新規追加ページがInternal Server Error・Not Foundに

ECCUBEで新規追加したページがInternal Server Errorに!原因はファイルのパーミッションの場合が多くその対処方法とプログラムの修正ポイントを解説。Not Foundも解説。

フォルダを指定してファイルのパーミッションを変更するプログラム

フォームからフォルダ、パーミッションを指定しパーミッションを変更するサンプルプログラムの解説です。

サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない

PHPでショートタグを使うのは危険。サーバ移転やバージョンアップで動かなくなる!ソースが丸見え、設定情報流出のリスクが!php.iniのshort_open_tagの設定を再確認。

PHP画面が真っ白 header(“Location: $url”);

PHPの開発で header(“Location: $url”);を使うと画面が真っ白になる不具合が出る場合もあります。

Smartyの Syntax Errorの原因はスペースかも

Smartyのなかなか原因がつかめない Syntax Errorの原因はスペースかもしれません。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。


Warning: Trying to access array offset on null in /home/ss-giken/s-giken.net/public_html/blog/wp-content/plugins/amazonjs/amazonjs.php on line 637