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

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

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

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

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

原因と対処

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

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

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

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

Link

プラグインのトラブル対処法 - < For Ec-Cube 4 Developers />

https://doc4.ec-cube.net/plugin_error#%E5%A3%8A%E3%82%8C%E3%81%9F%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%8C%E6%AE%8B%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F

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

これはダメでした。

パーミッションは?

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

Link

プラグインのトラブル対処法 - < For Ec-Cube 4 Developers />

https://doc4.ec-cube.net/plugin_error#%E5%A3%8A%E3%82%8C%E3%81%9F%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%8C%E6%AE%8B%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F

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

以下の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のシステム要件を照らして合わせてみました。

Link

システム要件 - < For Ec-Cube 4 Developers />

https://doc4.ec-cube.net/quickstart/requirement

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

Link

https://mixhost.jp/functions/server-spec

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

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

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

Link

Ec-Cube 4.1.0 Roadmap · Issue #4603 · Ec-Cube/Ec-Cube · Github

https://github.com/EC-CUBE/ec-cube/issues/4603

ログを確認してみる

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

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

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

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

 

DEBUGモードを試す

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

Link

Ec-Cube4カスタマイズ - [4系]デバッグモードを有効化する方法 .envファイル

https://umebius.com/eccube/eccube4-enter-into-debug-mode/

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

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

Link

Just A Moment...

https://www.ec-cube.net/installation/

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

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

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

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

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

まとめ

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

PAGETOP