概要
長く厳しい戦いもようやくひと段落…。昨年11月から手がけていた本店*1 のリニュアル、プレオープンまでこぎつけることができました。
まだクレジット決済モジュールが動かないとか、これ重過ぎるんじゃね?とか問題はないわけではありませんが、とりあえず幾多の困難を乗り越えてここまでたどり着いたという安堵感と充実感にホッと胸をなでおろしております。はい。
事前確認
まず、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の設置
まず、さくらサーバについて簡単なご説明を。
さくらサーバのユーザディレクトリ
さくらサーバでは次のようなユーザディレクトリを割り当てられます*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で操作できますので簡単ですね♪
この画面からダンプしたデータを参照してインポートしてやればOKです。
で、データベースの設定で重要なものがもう一つあります。
恐らく何もしない場合、データベースにアクセスできない旨のエラーが出てしまうと思うのですが、これはMySQLのVer4.1以降パスワードをハッシュで持つように変更されたためで、色々試してみましたがハッシュ方式のままではEC-CUBEからデータベースにアクセスすることができませんでした*6 。
くわしくはここ
phpMyAdminを見るとパスワードを旧方式(4.0互換)で保存するオプションがあったのでそれを利用することで接続できるようになりました。
これでEC-CUBEからデータベースに接続できるようになり、ローカルで構築した商品やページなどにアクセスできるようになると思います。もしこの時点で初期のEC-CUBEのデザインで表示される場合は、管理画面(root/admin/)のデザイン管理->テンプレート設定より自分で作成したテンプレートを選択してください。どうも環境を変えるとテンプレートがリセットされるんだよなぁ?。
あとがき
この記事は先週末の作業を思い出しながら書いているのでもしかしたら作業手順が抜けていて破綻している箇所があるかもしれないので、もしすべて同様の条件でこの記事に書かれた内容のことをしても動かないということがありましたら、→のチャットからお問い合わせください。
チャットに書き込みが無くてさびしいんですよね?。チャット便利なのになぁ。僕の都合さえつけばリアルタイムに問い合わせできるんですよ?たいしたこと答えられないけど。
できればその場限りの「教えて?」→「はい、これ?」ってなやりとりよりも、お互いにとってもっと身になるコミュニケーションがこのブログでとれたらいいなぁって思ってます。
- 僕が勤めている会社のメインECサイト。旧サイトはショップ○○(伏字)というcgiのなんだか素人がゴリゴリ書きましたみたいなショッピングカートで、セキュリティが…orzでした。怖くて声に出して言えません。 [↩]
- 事前に調べた感じだとまずいままでのさくらだと動かないという話です [↩]
- 僕サーバとか良くわからんので単語の使い方間違っていると思いますがご容赦くださいm_ _m [↩]
- ドキュメントルートじゃありませんよ。wwwの中ではなく外。/wwwと同じ位置に/dataフォルダを作るイメージで。 [↩]
- /dataや/htmlと同じ階層にindex.phpファイルがあるけど/htmlの中身と同じものみたいだし、コレいらないよね。無くても動いてるし。 [↩]
- 何か方法はあるのかも知れませんが… [↩]
コメント
ブログを拝見いたしました。
内容と重なる部分はありませんが、ご存知でしたらお教えくだされば助かります。
現在使用しているECCUBEですが、商品管理→商品マスタ→検索が異常に時間がかかっております。遅い時は、商品をカゴに入れてからもサーバーエラーとなります。
サーバーはさくらで、mysqlのバージョンは5.1です。