ホームページ制作 オフィスオバタ

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で発生するエラーといえます。

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

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

モバイルバージョンを終了