このサイトはレンタルサーバー無限(MUGEN)にWordPressをインストールして公開している。レンタルサーバーの魅力はいろんなサイトを作れて、自由度も結構高いことで、そもそもレンタルサーバーに移行しようとした理由の一番大きいのが昨年亡くなった友人が運営していたECサイトを移転&リニューアルしたいと思ったからだ。
自分自身の勉強も兼ねている面はあるが、仕事の片手間でECサイトを運営するのはなかなか難しくその為にはメンテナンス性とサイト管理を楽にするしか無かった。今、サイト運営を実質的に行っている友人の父親はお世辞にもITスキルが高いとは言えないので(そもそも高齢なので)、かなりの部分はお手伝いするしかない。かといって、一からECサイトを作るとなるとかなりの時間がかかってしまうのでなんとか楽できる方法はないものかと探していて発見したのが、EC-CUBEというフレームワークだった。ここの運営もある程度慣れてきたので、先週末EC-CUBEのインストールを行おうとしたわけだが、これがもう大苦戦であった、、、。その顛末をまとめておく。
少々長いがお許し願いたい。
本ページはアフィリエイトプログラムによる収益を得ています。
そもそもEC-CUBEというのは何かと言えば、ECサイトを構築するために必要な要素(ショッピングカート機能、商品管理機能、顧客管理機能など)を標準機能として持ち合わせたWEBアプリケーションだ。なので、これをサーバーにインストールして必要な情報を登録すればECサイトが出来上がってしまうというもの。
インストールにはまず公式サイトから最新バージョンのEC-EUBEモジュールをダウンロードする(2011年7月地点の最新バージョンは2.11.1)。
マニュアルに従えば、パーミッション(ディレクトリやファイルのアクセス権限)の絡みがあるため、Tarコマンドによる展開が推奨されている。なので、ドキュメントルート(無限ではpublic_html配下)に圧縮ファイルをFTPでアップロードし、SSHでログインし、
$ tar xpvfz ./eccube-2.11.1.tar.gz
と実行して展開するわけだが、これが罠だった、、、。
この後、展開したファイルのHTMLフォルダにアクセスするとインストール画面が表示され、インストールが出来るはずなんだがアクセスしたら「500 Internal Server Error」が表示される。そもそもPHPが実行できて無いんじゃね?と思ったが、そうでもない。どうやら原因はTarファイルを展開するとパーミッション777が設定されるディレクトリが多いようで、その状態だとレンタルサーバー無限ではうまく動かないらしいのだ。
で、結局どうしたかというとZIPファイルをローカルにダウンロードし展開、そのファイルをFTPでアップロードした。パーミッションは777じゃなくなるので、これでうまくいくわけだ。この時注意点としては、EC-CUBEの本体は、
dataフォルダ:EC-CUBEのプログラム本体が格納される
HTMLフォルダ:外部からアクセスされるファイルが格納される
となっているので、ドキュメントルート(public_html)配下にそのままアップロードすると、Dataフォルダも公開されてしまうためセキュリティ上よろしくない。なので、以下のような構成でアップロードした。
home
└─【無限のアカウント名】
|─data
└─public_html
└─HTML
これでDataフォルダは外部には公開されないディレクトリに格納されることになる。ただ、この時HTMLフォルダにある「define.php」でDataフォルダの位置を定義しているため、これを以下のように変更しておく必要がある。
<変更前>
<?php /** HTMLディレクトリからのDATAディレクトリの相対パス */ define("HTML2DATA_DIR", "../data/");
<変更後>
<?php /** HTMLディレクトリからのDATAディレクトリの相対パス */ define("HTML2DATA_DIR", "../../data/");
後は無限の管理画面よりMySQLのデータベースおよびユーザーの新規作成を行う。
こんな感じの画面から行う。
ここまで来れば、もうできたも当然。EC-CUBEをインストールしたHTMLディレクトリにWEBブラウザからアクセスすると以下のような画面が表示される。
この画面を見るのにどれだけ時間がかかったことか、、、
あとは、画面のウィザードに従っていけばいい。
パーミッションが若干変わってしまっているが、問題なかった。
ECサイトの情報を入力する。これは後でも変更できるっぽい。
データベースの設定は、無限の管理画面で作成したDB名・ユーザ名・パスワードを入力する。DBサーバーは「localhost」、ポートは未入力でOK。
これでEC-CUBEのDBが一気に作成されて、インストール完了。
後は管理画面から色々カスタマイズすればいいらしい。この後の動作はまだ未検証だが一応ひと通り動いているっぽいので、問題なくインストールできた模様だ。
これだけの事をするのに数時間かかってしまった。いやはや長かった、、、