まえがき
どうもです。最近、EC-cubeの仕事が増えてきました。大体はカスタマイズありきなので、勉強が必要になりますね。そこでテスト環境を作って勉強しようと考えました。一般的なレンタルサーバーはEC-cube対応していると思いますが、CORESERVERにインストールしようとした際に色々とエラーが出ましたので、その解決方法をまとめました。
EC-cubeのインストール
EC-cubeのインストール方法については、様々なサイトやブログで取り上げられており、「EC-cube インストール」でググればほとんどが解決すると思います。
一般的なEC-cubeのインストール方法
まず、通常のインストール方法については、下記のような先人達のサイトを参考にしましょう。
http://blgtown.com/main/2013/01/ec-cube-2122.html
インストール時の注意
こちらのサイトがインストール時に注意すべき点を上げています。
http://nob-log.info/2013/05/25/wrong-installation-eccube-is-dangerous/
これはようするに「data」フォルダにWebからアクセスできる状態だと、ガンガン情報が漏れちゃうということです。対策としてdataフォルダをWebからアクセスできない場所に置くか、.htaccessをdataフォルダに入れてくださいとあります。実はこれですね、EC-cube ver2.13から対策済みです。最初からdataフォルダに.htaccessが入ってます。なので、もしver2.12以前のEC-cubeをインストールする時は、上記サイトを参考にしながら気を付けましょう。
CORESERVERへのインストール
今回はCORESERVERへのインストールとなります。いつも通りインストールを進めだけではエラーが発生しますので、こちらの解決方法をまとめました。
Smarty/templates_c/以下のフォルダが作成されない
インストール画面に進むと下記のようなエラーメッセージが出ます。
Warning: mkdir() [function.mkdir]: Unable to access /virtual/user_name/data/Smarty/templates_c/default/
in/virtual/user_name/data/class/SC_Initial.php on line 177
上記のようなエラーが4つ出ると思います。Smarty/templates_c/以下のフォルダ、default、mobile、admin、user_dataが存在しない為に出るエラーです。これは自分でフォルダを作成してしまえば解決できます。
パーミッションが変更できない
下記のようなエラーが出る場合、パーミッションが変更できない場合の対策です。
data/cache/mtb_constants.php(644) ユーザ書込み権限(666, 606等)を付与して下さい。
ファイルの所有者が「apache」になっているのが原因ですので、「CORESERVERの管理画面>ツール>ファイル所有者の修正」をクリックして所有者がapacheから自分のIDに変更することで解決します。
セーフモードが有効になっている
大量のパーミッション変更をした後、下記のようなメッセージが出ます。
>> ×:PHPのセーフモードが有効になっています。
トップディレクトリの.htaccessに下記を追記することで解決します。
AddHandler application/x-httpd-phpcgi .php
magic_quotes_gpcが有効になっている
最後に、下記のようなメッセージが出ます。
PHPの設定ディレクティブ「magic_quotes_gpc」が有効になっています。
magic_quotes が on の場合、'(シングルクオート)、" (ダブルクオート)、\(バックスラッシュ) 、NULL には全て自動的に バックスラッシュでエスケープ処理が行われます。このまま進めるとえらいことになります。コアサーバーではCGIモードのPHPでは、magic_quotes_gpcがonになってしまうので、.htaccessに「php_flag magic_quotes_gpc off」と追記しても反映されません。php.iniでコントロールする必要があります。
php.iniの中身
magic_quotes_gpc = off
php.iniを入れるフォルダ
/admin/basis/
/admin/contents/
/admin/design/
/admin/products/
/install/
※admin以下の全フォルダに入れる必要があるかも。。。
おまけ:fireFTPでアップロードしたファイルの一括パーミッション変更
EC-cubeをSSHを使わずFTPでアップロードしてインストールしようとすると大量のパーミッション変更を要求されます。FFFTPを使用すると拡張子別にパーミッションを指定してアップロードすることができるのですが、Mac利用者だったりすると使用できない方法です。僕はfireFTPを使用していますので、パーミッション変更が簡単になる方法を書きますね。
再帰プロパティを使用する
まずはEC-cubeのファイルをアップロードします。アップロードが終わったら、パーミッション変更が大量に必要なファイルが格納されているフォルダの上で右クリックします。ここで再帰プロパティを選びます。
そして、「全てのフォルダを含む」にチェックを入れて0777で実行。「全てのファイルを含む」にチェックを入れて0666で実行。これだけです。
まとめ
個人的にはおまけのほうが知った時感動しました。かなり時間が短縮できるはずです。これでガンガンいじり倒そうと思います。