シェアする

  • このエントリーをはてなブックマークに追加

[EC-CUBE]さくらサーバにEC-CUBEをインストール

概要

長く厳しい戦いもようやくひと段落…。昨年11月から手がけていた本店*[1] のリニュアル、プレオープンまでこぎつけることができました。

まだクレジット決済モジュールが動かないとか、これ重過ぎるんじゃね?とか問題はないわけではありませんが、とりあえず幾多の困難を乗り越えてここまでたどり着いたという安堵感と充実感にホッと胸をなでおろしております。はい。

と、前置きはこのぐらいにして、さくらインターネットのビジネスプロにEC-CUBEを設置する方法をメモしたいと思います。

事前確認

まず、EC-CUBEをインストールするための条件を満たしているか確認する必要があります。
と、いうのもさくらのデータベースはMySQLで、Postgreに対応していませんし、今年の2月以前から利用している場合、MySQLのバージョンが4.0系の可能性があるからです。EC-CUBEの動作条件ではMySQLの場合Ver4.1以降となっていますので、この場合条件を満たせず動かない*[2] 可能性が高いのでご注意ください。
ちなみに、うちが使っているサーバは2月末のメンテでデータベースを4.0系と5.0系が選択できるようになり、そのタイミングに合わせた形で今回のリニュアルを行いました。

EC-CUBEの動作条件

WEBサーバ …Apacheを推奨
PHP     …4.1.x以上(GD2、FREETYPE2ライブラリを有効にしておくことを推奨します)※注1
データベース …’PostgresSQL7.4.x以上、MySQL4.1、MySQL5.0以上’

また、データベースのバージョンを選択できるようにはなりますが、すでにデータベースを使用している場合既存のデータベース(テーブル)をすべて削除する必要がありますのでご注意ください。

データベースの管理画面

データベースの管理画面


※データベースをすべて削除するとデータベースのバージョン選択肢が現れます。

EC-CUBEの設置

僕の場合はすでにローカル環境で構築済みのEC-CUBEを設置したので、新規インストールするより少々やっかいなのかな。ここでは、すでに構築済みのEC-CUBEをさくらインターネットのビジネスプロインストーラを使わずに設置する方法を説明します。

まず、さくらサーバについて簡単なご説明を。

さくらサーバのユーザディレクトリ

さくらサーバでは次のようなユーザディレクトリを割り当てられます*[3]

ホームディレクトリ
/home/%ドメイン名%/

ドキュメントルート
/home/%ドメイン名%/www/

FTPで接続するとデフォルトでホームディレクトリが開き、その中のwww/に入れたファイルがサイトとして表示されるようになります。と、ここまでの説明は必要ありませんね。

さくらサーバでEC-CUBEを設置する際の注意

EC-CUBEのマニュアルサイトのEC-CUBEマニュアルサイト – EC-CUBE(2.x系)/1_インストール/01_サーバ設定方法を見ると、httpd.confによって/html/をドキュメントルートにする方法が載っていますが、さくらサーバではhttpd.confを編集する権限を与えられていないのでこの方法をとることができません。

でもご安心あれ。
ドキュメントルートを変える以外にも、mod_rewriteでアクセス時にURLを書き換えることもできますし、今回僕が取った方法のように/wwwに/htmlの中身をそのまま入れる方法でも設置することが可能です。

僕は、Apacheには詳しくありませんが、mod_rewriteで設定するとリダイレクトの処理が負荷になるんじゃないかという素人考えにより、面倒もなく負荷も無い/wwwに/htmlの中身をそのまま放り込む方法をとりました。

ファイルをアップロードする

まずEC-CUBEの/dataフォルダをホームディレクトリ*[4] にアップロードします。

次に、ドキュメントルートの/wwwの中にEC-CUBEの/htmlフォルダをアップロードします。

アップロードはこれで完了*[5]

/data/install.phpを編集する

設定項目(確認しないで書いているので間違ってるかも)

ECCUBE_INSTALL
EC-CUBEがインストール済みかどうかを判定するフラグかな。僕のように構築済みのEC-CUBEを設置するなら”ON”になっているはず。”OFF”だと多分インストーラが走るんだろうな。
HTML_PATH
/htmlディレクトリのフルパス。さくらなら/home/%ドメイン%/www/
SITE_URL
サイトのURL
SSL_URL
SSLが効くページのURL。通常https://で始まるURLになるんじゃないかな。
URL_DIR
実はよくわからないんですが、ローカル環境の設定を見るとドキュメントルートからのパスになるんじゃないかと。多分。だからさくらの場合(前述の条件の場合)”/”でいいのかな。
DOMAIN_NAME
わからないから空欄にしてある。何か影響があるのかなぁ?
DB_TYPE
“mysql”か”postgresql”かな。僕はmysqlなのでpostgreは知りません。調べてません。

あとは、DBの設定項目で
DB_USERにユーザ名。
DB_PASSWORDにパスワード。
DB_SERVERにさくらサーバのデータベース管理画面に表示されているDBホスト名。
DB_NAMEにさくらサーバならドメイン名。
DB_PORTにMySQLなら”3306″。
DATA_PATHには/home/%ドメイン名%/data/。
モバイルはいじらなくていいかな。多分。
と、こんな感じに設定していただけばOKです。

データベースの準備

EC-CUBEはデータの大半をデータベースに持っていますのでアップロードしただけではサッパリ動きません。次はデータベースを準備しましょう。

今回はローカル環境で構築したEC-CUBEの設置ですのですでにDBに格納すべきデータがあります。というかカスタマイズも乗っているので、ローカル環境そのままのテーブル構成、データじゃないとうまくありませんので、それをさくらサーバのDBに移行する手順を説明します。ここら辺は詳細にやるとかなり長くなるので説明が足りない部分は各自Google先生などに頼って補完しながら読んでいただけると之幸い。

まずはローカルのDBをダンプしましょう。
コマンドは

DUMP DATABASE %データベース名% TO %ダンプ先%

わからない場合は、phpMyAdminとかVectorでツール探してきてエクスポートとかダンプとかしてみてください。ググってください。

で、次にさくらサーバのデータベースにダンプしたデータをロードします。
さくらサーバのデータベースはphpMyAdminで操作できますので簡単ですね♪

phpMyAdminのインポート画面

phpMyAdminのインポート画面

この画面からダンプしたデータを参照してインポートしてやればOKです。

で、データベースの設定で重要なものがもう一つあります。
恐らく何もしない場合、データベースにアクセスできない旨のエラーが出てしまうと思うのですが、これはMySQLのVer4.1以降パスワードをハッシュで持つように変更されたためで、色々試してみましたがハッシュ方式のままではEC-CUBEからデータベースにアクセスすることができませんでした*[6]

くわしくはここ

phpMyAdminを見るとパスワードを旧方式(4.0互換)で保存するオプションがあったのでそれを利用することで接続できるようになりました。

パスワードの変更 その1

パスワードの設定 その1

パスワードの設定 その2

パスワードの設定 その2

これでEC-CUBEからデータベースに接続できるようになり、ローカルで構築した商品やページなどにアクセスできるようになると思います。もしこの時点で初期のEC-CUBEのデザインで表示される場合は、管理画面(root/admin/)のデザイン管理->テンプレート設定より自分で作成したテンプレートを選択してください。どうも環境を変えるとテンプレートがリセットされるんだよなぁ?。

あとがき

この記事は先週末の作業を思い出しながら書いているのでもしかしたら作業手順が抜けていて破綻している箇所があるかもしれないので、もしすべて同様の条件でこの記事に書かれた内容のことをしても動かないということがありましたら、→のチャットからお問い合わせください。
チャットに書き込みが無くてさびしいんですよね?。チャット便利なのになぁ。僕の都合さえつけばリアルタイムに問い合わせできるんですよ?たいしたこと答えられないけど。
できればその場限りの「教えて?」→「はい、これ?」ってなやりとりよりも、お互いにとってもっと身になるコミュニケーションがこのブログでとれたらいいなぁって思ってます。

  1. 僕が勤めている会社のメインECサイト。旧サイトはショップ○○(伏字)というcgiのなんだか素人がゴリゴリ書きましたみたいなショッピングカートで、セキュリティが…orzでした。怖くて声に出して言えません。 []
  2. 事前に調べた感じだとまずいままでのさくらだと動かないという話です []
  3. 僕サーバとか良くわからんので単語の使い方間違っていると思いますがご容赦くださいm_ _m []
  4. ドキュメントルートじゃありませんよ。wwwの中ではなく外。/wwwと同じ位置に/dataフォルダを作るイメージで。 []
  5. /dataや/htmlと同じ階層にindex.phpファイルがあるけど/htmlの中身と同じものみたいだし、コレいらないよね。無くても動いてるし。 []
  6. 何か方法はあるのかも知れませんが… []

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. 後藤 より:

    ブログを拝見いたしました。
    内容と重なる部分はありませんが、ご存知でしたらお教えくだされば助かります。
    現在使用しているECCUBEですが、商品管理→商品マスタ→検索が異常に時間がかかっております。遅い時は、商品をカゴに入れてからもサーバーエラーとなります。
    サーバーはさくらで、mysqlのバージョンは5.1です。