EC-CUBE
CORESERVERで、EC-CUBEの決済モジュールのインストールをしてみる。失敗。さてどうするか。
強引とも言える力業の方法でCORESERVERにインストールした「EC-CUBE」なのですけど、やっばり不具合がでましたヨ。
ECサイトを運営するにあたって肝になる部分と言えば、料金決済ですよね。「EC-CUBE」の場合は、決済サービスを行っている会社用の「決済モジュール」というのを組み込んで、クレジットカード決済や、コンビニ決済等の使うようになっているんです。その「決済モジュール」のインストールは、「EC-CUBE」のインストール時に行うのではなく、後からオンラインでインストールする仕組みになっているんですヨ。ここに落とし穴がありました。CORESERVERの場合、他とは違う設定がサーバに施されているらしく、該当するディレクトリにデータが書き込まれず、インストールできないとエラーログが帰ってくるのですヨ。
予期していなかったので、困りましたね。「EC-CUBEの開発コミュニティ」に質問したりして、分かったのは、PHPのセーフモードがONになっていて、それが「決済モジュール」のインストールを妨げているということでした。
以下、覚え書きも兼ねて、手順を書いときますね。
まずは注意書き。今回カスタマイズを施した環境は、EC-CUBE 2.3.4・CERVSERVER・MySQL 5.1.22-rc・PHP 5.2.5です。今後の開発で、使えなくなる場合もあります。
それでもってCORESERVER側で、解決方法は無いかとヘルプを調べていたら、ありましたヨ。「PHPをCGIとして動かす方法について」というページに書いてあるには、PHPファイルをCGIとして実行すれば、ユーザー権限で実行され、セーフモードがOFFになるため、様々な制限を受けなくできるようなのです。「EC-CUBE」はPHPで作られているシステムですので、このサーバの設定に影響を受けているようのです。
動作には、パーミッションの変更も必要ないのでお手軽です。ただし、動作が遅くなったり、負荷が掛かったり、特有の機能で、汎用性が無かったりするのですが、「決済モジュール」をインストールする為には仕方ありません。
作業は簡単で、下記の一文を「.htaccess」に追加して書き込むか、新しくファイルを作ってアップロードするだけです。先頭行に「#!/usr/local/bin/php」は入れなくて良いそうです。
- AddHandler application/x-httpd-phpcgi .htm
アップロードする場所は、FTPソフトで遡れる一番上の階層です。
- virtual/ユーザー名/.htaccess
この方法は、色々と細かい設定があるみたいですので、自分みたいに大雑把にやれない方は、「PHPをCGIとして動かす方法について」を、読んで挑戦してみて下さい。
これで、「決済モジュール」がインストールできるようになります。
しかし、この方法は落とし穴があるようで、決済モジュールをインストールした後、CGI版でセーフモードがOFFになっていると、別のエラーを誘発しましたヨ。この状態で商品データを編集したら、その商品のデータがきれいさっぱりデータベースから消えてしまいました。理想的には、サーバでの「EC-CUBE」の動作設定は、PHP5モジュール版のセーフモードOFFという事なので、CGI版で動かし続けるのは問題があるようです。
というわけで、「決済モジュール」インストールが終わったら、速やかに「.htaccess」をサーバから削除するか、上記の一文を削除する方が良さそうです。