【EC-CUBE4】インストール後に「システムエラーが発生しました。」が出たときにやったこと。

目次

インストール成功したのにいきなりシステムエラー

以下のように、ルートディレクトリに「ec-cube」というフォルダを作成し、そこにEC-CUBEをアップロードしました。ちなみにレンタルサーバーは Mixhost a8です。

https://example.com/ec-cube/

ここにアクセスして「ようこそ」の画面に従い、EC-CUBE 4.1.1 のインストールを行いました。「インストールが完了しました!」と表示されたので、インストール成功したと思ったのですが、「管理画面を表示」をクリックすると「システムエラーが発生しました。」と表示され、管理画面とショップページのどちらもエラー表示となりました。

EC-CUBE システムエラーが発生しました。

原因と対処

結論から言うと、キャッシュを削除して、EC-CUBEの再インストールで解決できました。

レンタルサーバーが Mixhost a8だからダメなのか?!と思いましたが勘違いでした。

キャッシュが残っているのが原因?

以下のページにあったcacheフォルダを空にする方法を試してみました。

https://example.com/ec-cube/var/cache

これはダメでした。

パーミッションは?

以下のページを参考に確認しましたが、755とか644で書き込み権限もあり問題ありませんでした。

そもそもデータベースに接続できている?

以下のPHPのソースでMySQLに接続できるか接続テストしてみましたが、正常に接続できることが確認できました。EC-CUBEのインストール時にDBに接続できないとインストールもできないので当たり前ですが、念のため調べてみました。

// defineの値は環境によって変えてください。
define( 'HOSTNAME', 'localhost' );
define( 'DATABASE', '' );
define( 'USERNAME', '' );
define( 'PASSWORD', '' );

try {
/// DB接続を試みる
  $db = new PDO( 'mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD );
  $msg = "MySQL への接続確認が取れました。";
} catch ( PDOException $e ) {
  $isConnect = false;
  $msg = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")";
}
?>
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>>MySQL接続確認</title>
  </head>
  <body>
    <h1>MySQL接続確認</h1>
    <p><?php echo $msg; ?></p>
  </body>
</html>

 

システム要件が合っているか確認

<?php echo phpinfo(); ?>で確認できるWEBサーバのバージョンとEC-CUBEのシステム要件を照らして合わせてみました。

  • EC-CUBEのバージョン:4.1.1
  • PHPバージョン:7.4.27

各バージョンやライブラリも問題ありませんでした。

PHPのバージョンを変更してみる

WEBサーバのPHPのバージョンを 7.4 から変更してみました。 7.2 ではバージョンが低いというエラーが出ました。7.38.0 に変更してみましたが、相変わらず「システムエラーが発生しました。」と表示されました。

ちなみにEC-CUBE4.1系ではPHP8対応は実施しないとのこと。

ログを確認してみる

ログは以下の階層にありますが、見てもまったくわかりませんでした。

https://example.com/ec-cube/var/log

以下のようなSymfonyに関するエラーログがたくさんありましたが、これは最終的には関係ありませんでした。

[Symfony\Component\ErrorHandler\ErrorHandler:handleError:532]

 

DEBUGモードを試す

以下のページを参考に、.envファイルを編集してデバッグモードを試しましたが500エラーとなりました。

EC-CUBEを再インストールしてみる

.envファイルを削除して、以下のEC-CUBEのディレクトリにアクセスすると、「ようこそ」の画面が表示されたので、もう一度インストール作業を行ってみました。

データベースはウィザード上に表示される初期化の画面で初期化するようにしました。

EC-CUBE データベースの初期化

すると、初回インストール時には出なかったプラグインの有効・無効スイッチが表示されました。

EC-CUBE インストールが完了しました!

そのまま画面に従って作業を続けて行くと、無事にログイン画面が表示され、管理画面に入ることができました。

EC-CUBEログイン画面

また、ショップページも表示されるようになりました。

EC-CUBEショップページ

レンタルサーバーが Mixhost a8でもEC-CUBE4が動きました。

まとめ

初回のインストールに失敗したら、以下を試すと解決できるかもしれません。

  • キャッシュフォルダ内の削除
  • EC-CUBEを再インストール

前へ

【EC-CUBE4】インストールはサブディレクトリ、公開はルートディレクトリにしたいとき

次へ

【EC-CUBE4】商品画像の最大サイズを制限して自動的にリサイズしてアップロードしたいとき。