EC-CUBEは日本発のオープンソースECサイト構築ソフトウェアです。

他にもいくつか日本語対応となっている有名OSSがありますが、
日本の事情にあっていない、
開発方法が統一されていないためカスタマイズが極端にしづらい
などなど、はっきり言って、EC-CUBE以外のソフトウェアは、
そこそこの知識がない限り使わないほうがいいものがほとんどです。

EC-CUBEはまだまだバグが多くて困ってしまう点も少なくないですが、
それでも日本の通販事情に合っていますし、
開発が一企業のもとで統合されて進められているので、
非常に使いやすいです。

有償ソフトウェアは別として、
OSSでのECサイト構築の最適解は、
現在のところEC-CUBEといって過言ではないと思います。



ということで、クララオンラインのサーバーへEC-CUBEをインストールしたメモです。

クララオンラインはEC-CUBEのオフィシャルホスティングパートナーですが、
なぜかインストールドキュメントが用意されてません(T_T)

すでにCPIのサーバーへEC-CUBEをインストールした経験がありますが、
それよりは平易でした。

ただし、平易なのは、
・サーバー管理画面に「Plesk」を選択
・OSにRed Hat Enterprise Linux 5を選択

している条件のサーバーのみで、
これ以外の条件では、かなり面倒な作業が待っています。
正直上記以外のサーバーでは、
よっぽど知識がない限り他社サービスを利用するか、
新しいサーバーへ乗り換えることをオススメします。

このページではこの条件で説明します。
またEC-CUBEのバージョンは、2.1.2aを想定した内容です。


■準備編

ECサイトを始めるのならば、当然SSL証明書を取得しておきましょう。
それで、クララオンラインのサーバーのデフォルトでは、
通常通信領域とSSL通信領域が分けられています。
ちょっと面倒なので、一緒にしてしまいましょう。
Pleskにログインし、EC-CUBEをインストールするバーチャルドメインを選択し、
「ホスティング」の「設定」をクリックします。
その画面の中に
「SSL 認証を受けないコンテンツと同じディレクトリに、SSL 認証を受けるコンテンツを設置する」
というチェック項目がありますので、チェックを入れて、「OK」を押します。

その後、そのドメイン用のデータベースを作成します。
MySQLを利用しましょう。


■アップロード
EC-CUBEをダウンロードしたアーカイブを解凍しできたファイルにまず編集を加えます。

・エラー出力するように変更。
クララオンラインサーバーの一部は、デフォルトでPHPのエラーを出力しないようになっています。
なにかと不便ですので、出力するようにします。
「html/.htaccess」を開き最後の行に「php_flag display_errors 1」と入力し、改行を入れて保存します。

・dataディレクトリの位置変更。
クララオンラインサーバーでは、WEB経由で不可視の場所へFTPクライアントを使って、
フォルダを作成したり、アップロードしたりすることができません。
(正しくはできないわけじゃないけど面倒)
ということで、この設定をすることでインストールがラクになるようにします。
「html/define.php」を開き、「define("HTML2DATA_DIR", "/../data/");」を「define("HTML2DATA_DIR", "/data/");」へ変更します。

・dataディレクトリをWEB経由でアクセス不可にする。
上記の設定でインストールはラクになりましたが、
そのままインストールすると危険ですので、
.htaccessファイルでdataディレクトリ配下のファイル・ディレクトリに、
WEB経由でのアクセスを禁止する処置を行います。
テキストエディタを開き、(Windows標準のメモ帳はやめたほうが良い)
「order deny,allow
deny from all

と入力し(最後は改行で終わってください。)dataディレクトリへ「.htaccess」の名前で保存してください。

通常、Windowsは拡張子のみのファイル名では保存できませんが、
terapadなら可能です。
「名前をつけて保存」し
「ファイル名」に「.htaccess」、
「ファイルの種類」は「すべてのファイル」を選択して、
保存すればOKです。

ここまでで、アップロードの前準備は終了。
ではアップロードします。

FTPクライアントで、EC-CUBEを設置したいドメインへ接続します。
「/httpdocs/」の中へ「html」の中身をすべてアップロードします。
次に、「httpdocs/」の中へ「data」というディレクトリを作成し、
その中へ「data」ディレクトリの中身をすべてアップロードします。

他の説明書では、ここでパーミッション設定をしろと書いてある場合が多いですが、
クララオンラインのサーバーはパーミッション設定が結構厳密で、
設定する箇所が多く、説明書どおりのパーミッション設定のみでは設定が足らないので、
インストール作業の時に出たエラーメッセージに従って、設定したほうが良いです。


■インストーラー起動。
WEBブラウザから「install/index.php」へアクセスします。
基本的にインストーラーに従って進むだけですが、
前述の通り、あのファイルのパーミッションをどうこうしろとあれこれ言われます。
これがどうにも面倒な作業なのですが、必要な作業なので粛々とやってくださいね。
わたしは40分もかかってしまいました(-_-;

パーミッション設定し一通りインストーラーの作業が終了したら、
ここで念のため、データベースへの接続を「UTF-8」で行うように設定しておきます。
ローカルの「data/class/SC_DbConn.php」をテキストエディタで開き、
「$this->conn = $objDbConn;」と書かれた次の行へ、「$this->conn->query(‘SET NAMES utf8’);」を追記して保存。
サーバーの当該ファイルへ上書きします。

その後、再度WEBブラウザから「install/index.php」へアクセスして、
一通りインストーラーを走らせて下さい。
今度はパーミッション設定は不要です。
最後まで、インストーラーを走らせたらサーバーの「install/index.php」を削除します。

以上で一応のインストール作業は終わりです。


■管理画面
管理画面にログインして各箇所確認していると
「??????」と文字化けを起こしている箇所がある場合があります。

よく原因が分からないのですがこういった場合があります。
データベースを確認しても間違いなくUTF-8でデータ保存がされているにも関わらずです。

そういった場合は、管理画面の「システム設定」→「マスタデータ管理」を開いて、
たとえば、「mtb_status」を選択して、
項目編集せずにそのまま「この内容で保存します」をクリックすると直ります。
面倒ですが、すべてのマスタデータに対してこの作業を行っておいたほうが良いと思います。

ちなみにデータベース確認してUTF-8で保存されていない場合は、
明らかにインストール作業に誤りがあります。

もう一度インストールしなおしましょう。


はい。ここまでで、とりあえず、EC-CUBEが普通に使えるようになります。
これだけで多分2時間くらいは使うと思います。

テンプレートスキンが充実していないEC-CUBEなので、
デザイン作業などはさらに大変な作業でしょう。
Smartyの扱いに慣れていないWEBデザイナーなどはなおさらです。

これを機にPHPのほぼ標準と言っていい、テンプレートエンジンであるSmartyを覚えましょう。


ってことで、以上。簡単に説明しました。
インストーラーはありますが、結構大変な作業だと思います。

EC-CUBEに限らずですが、
インストーラーが整備されたCMSなどのOSSのインストール作業が
「簡単」だと言う人が一部いらっしゃいますが、
大きな間違いです。

特にPHP+MySQLでできたOSS(たとえばEC-CUBEやwordpressなど)は
サーバー条件によりかなり挙動に差があります。
場合によっては、どうにもならないようなセキュリティホールを作ることにもなりかねません。

ぶっちゃけた話、このページの記事も安全なのか自信ありません。
(まだ運用開始もテスト運用もしていないため)
このページの内容を利用する場合は、
必ずテストされた上でのご利用をオススメします。

何万円もしはらうことはなりますが、
自信がないのであれば、お使いのサーバーホスティングサービスにご相談いただいて、
有償のインストールサービスを利用することを強くオススメします。