Naga Blog

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 .php

アップロードする場所は、FTPソフトで遡れる一番上の階層です。

  • virtual/ユーザー名/.htaccess

この方法は、色々と細かい設定があるみたいですので、自分みたいに大雑把にやれない方は、「PHPをCGIとして動かす方法について」を、読んで挑戦してみて下さい。

これで、「決済モジュール」がインストールできるようになります。

しかし、この方法は落とし穴があるようで、決済モジュールをインストールした後、CGI版でセーフモードがOFFになっていると、別のエラーを誘発しましたヨ。この状態で商品データを編集したら、その商品のデータがきれいさっぱりデータベースから消えてしまいました。理想的には、サーバでの「EC-CUBE」の動作設定は、PHP5モジュール版のセーフモードOFFという事なので、CGI版で動かし続けるのは問題があるようです。

というわけで、「決済モジュール」インストールが終わったら、速やかに「.htaccess」をサーバから削除するか、上記の一文を削除する方が良さそうです。

About this entry

このページは、naganagaが2009年3月21日 00:58に書いたブログ記事です。

ひとつ前のブログ記事は「EC-CUBEで発送済みのステータスから入金待ちのステータスに変更しても発送日が消えない方法。」です。

次のブログ記事は「我が「Stream Web Design」(SOHOですけど)の仕事場を紹介しちゃいます。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。