CUMONOSショッピングカートを使用させていただいています。
ビデオツアーのように設定して、カートはできましたが、
「Paypalでチェックアウト」のボタンを押すと
Internal Server Errorと表示されます。URLはhttp://xxx/cgi/order/start.cgi となったままです。
APIの設定はできていると思うのですが、原因分かりますでしょうか?
サーバーはロリポップです。
よろしくお願いします。
ご質問ありがとうございます。
ロリポップのサーバ環境について改めて調査したところ、PayPal との暗号通信に必要な Crypt::SSLeay モジュールがインストールされていないことがわかりました。
たいへん残念ですが、ロリポップでは PayPal による決済をご利用いただけません。
FAQ の動作確認サーバ情報についても、ロリポップおよびチカッパでは PayPal 決済がご利用いただけない旨、追記いたしました。
同じような価格帯のレンタルサーバでは、「さくらのレンタルサーバ」がおすすめです。年額1500円のライトプランでも CMONOS.JP の全機能が動作します。
ムームードメイン側で DNS サーバを「さくらのレンタルサーバ」のものに指定すれば、ムームードメインと「さくらのレンタルサーバ」を組み合わせることも可能です。
この度は、FAQ の動作確認サーバの記載に誤りがあり、たいへん申し訳ありませんでしたm(_ _)m。
Crypt::SSLeayですが、本日ロリポップに確認した所、perlのモジュールとして設置しております、とのことでした。
また、サイト上のセットアップアシスタントの「サイト情報一覧」でも、Crypt::SSLeay 利用可能 となっています。
ご指摘ありがとうございます。
以前調べたときには Crypt::SSLeay がロリポップにはインストールされていなかったため、そのままになっているものと思い込んでおりましたが、現在はインストールされているようです。失礼いたしました。
今回、ロリポップサーバをお借りし CMONOS.JP をインストールして、動作を確認してみました。
その結果、FK さんご指摘のサーバーエラーについても、SSLeay とは無関係のエラーとわかりました。調査不足で誤った結論をご報告しましたことをお詫び申し上げます。
ロリポップでは、文字コード変換モジュール Jcode.pm の一部関数がみつからないためサーバエラーとなるようです。
Jcode.pm は Perl 標準の Encode のラッパとして動作しますが、文字コード判定が Encode より正確なため、CMONOS.JP では文字コード変換のために利用しています。
通常 CMONOS.JP のインストーラーはインストール先に Jcode.pm をみつけると、CMONOS.JP 付属の Jcode.pm を削除してしまいます。
これを削除せずに残しておくと、上記エラーが発生しないことがわかりました。
つまり、ロリポップでも「~/cgi-data/lib」に CMONOS.JP フルセット版に付属する「home/cgi-data/lib/Jcode.pm」ファイルと「home/cgi-data/lib/Jcode」フォルダをアップロードすると、問題なく動作します。
ロリポップでは Jcode.pm のバージョンが古すぎるか、一部機能が省略されているのかもしれません。
また今回、ロリポップで新規インストールすると、一部で文字化けが発生しやすくなっていることも把握しました。こちらの不具合も、Jcode.pm と Jcode フォルダを追加することで解消されます。
念のため、文字コード変換を見直し、不必要な文字コード判定をなくすなどしました。この修正は今週中にリリースされる最新版から反映されます。
なお、現在配布中の簡単インストーラーは、Jcode.pm の特定の関数がみつからない場合、CMONOS.JP 付属 Jcode.pm を削除しないものにアップデートされています。
たいへん重要なご指摘ありがとうございます。
今後ともどうぞよろしくお願い申し上げます。