xamppでのEC-CUBE4でシステムエラーが出た現象に対処

サーバーに独自でカートを設置するならば、EC-CUBEが便利です。
ワードプレスのようにプラグインも充実しており、使い勝手のよいカートです。

XAMPP上で動作するため、テンプレート構築作業をローカル環境でやりやすいのも特徴です。
ところが今回、XAMPP上でのEC-CUBE4が「システムエラー」となり動かなくなりました。

ググっても答えが見いだせず苦労しましたが、いろいろ調査して対処できましたので、忘備録として記録いたします。

現象はこのような感じです。

発生したらあせる感じのシステムエラーが表示されました。
php文法エラー等の要因であれば、画面にエラーコードが表示されます。

しかし「システムエラー」だけでは、何が原因なのかわかりません。
ここで途方にくれました。

原因がわからない場合はEC-CUBEのログを見ます。

ググっても原因がよくわからないので、EC-CUBEのログを見ることにしました。
管理画面からも見れますが、「/var/log/proid/」フォルダにテキスト形式でログが保存されています。

admin-、front-、site-、3種類のログが日付順に並んでいます。
とりあえずひとつづつチェックし、「システムエラー」の文字で検索してみました。

すると、ヒットする部分がありました。
それがこちらです。

エラーの原因は「openssl」が呼び出せないエラー

ログの原因部分に、「Attempted to call function openssl_random_pseudo_byte」と記載されていました。

「Attempted to call function」とは、関数を呼び出そうとしてエラーにになった場合に発生するエラーのことです。
つまり、その関数にエラーがあるか、関数そのものが存在していない場合に発生します。

ここで閃きました。
opensslを有効化する必要があるのだと。

xamppのopensslを有効化する方法

opensslとはSSLのことです。ただ私はxamppはローカル環境でテストするだけなので、特に何も気にせず設定もしていませんでした。

だから、「openssl関連の関数が無い」というエラーがでていました。
EC-CUBE4はどうやらopenssl関連の関数を使っているようです。

opensslの有効化は簡単で、xamppでphp.iniを開き「php_open_ssl.dll」のコメントを外せばOKです。

(1)xamppでphp.iniを開く

Configボタンを押すと、各種設定ファイル一覧が表示されます。
その中からphp.iniを選びクリックします。

(2)php_open_ssl.dllのコメントを外してphp.iniを上書き保存する

open_ssl有効化の手順

  1. php.iniを、「php_openssl.dll」で検索します。
  2. ヒットしたところが、コメント化されているのでコメントを外し上書き保存します。
  3. xamppを再起動します。

無事EC-CUBE4のシステムエラーが発生しなくなりました。

今回の原因はopen_sslが無効状態であったことでした。
通常のレンタルサーバーであれば、open_sslは有効化されているでしょうから、主にxamppで発生するエラーといえます。

エラーは原因がわかれば対処できます。
エラーの原因がわからない場合はログを調べます。
ということを学んだ事例でした。

本記事がお役に立てば幸いです。

今回のレポートは以上です。
読んでいただいてありがとうございました。


ホームページに関するお悩み事やご相談事がございましたら私どもまでご連絡ください。 鋭意ご対応申し上げます。
ホームページのご提案もさせていただいております