【EC-CUBE4】インストール後に「システムエラーが発生しました。」が出たときにやったこと。
目次
インストール成功したのにいきなりシステムエラー
以下のように、ルートディレクトリに「ec-cube」というフォルダを作成し、そこにEC-CUBEをアップロードしました。ちなみにレンタルサーバーは Mixhost です。
https://example.com/ec-cube/
ここにアクセスして「ようこそ」の画面に従い、EC-CUBE 4.1.1 のインストールを行いました。「インストールが完了しました!」と表示されたので、インストール成功したと思ったのですが、「管理画面を表示」をクリックすると「システムエラーが発生しました。」と表示され、管理画面とショップページのどちらもエラー表示となりました。
原因と対処
結論から言うと、キャッシュを削除して、EC-CUBEの再インストールで解決できました。
レンタルサーバーが Mixhost だからダメなのか?!と思いましたが勘違いでした。
キャッシュが残っているのが原因?
以下のページにあった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.3 、8.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のディレクトリにアクセスすると、「ようこそ」の画面が表示されたので、もう一度インストール作業を行ってみました。
データベースはウィザード上に表示される初期化の画面で初期化するようにしました。
すると、初回インストール時には出なかったプラグインの有効・無効スイッチが表示されました。
そのまま画面に従って作業を続けて行くと、無事にログイン画面が表示され、管理画面に入ることができました。
また、ショップページも表示されるようになりました。
レンタルサーバーが Mixhost でもEC-CUBE4が動きました。
まとめ
初回のインストールに失敗したら、以下を試すと解決できるかもしれません。
- キャッシュフォルダ内の削除
- EC-CUBEを再インストール