EC-CUBE 2.13で500エラー、インストール画面が真っ白

EC-CUBE

先日、さくらのレンタルサーバー(スタンダードプラン)に旧バージョンのEC-CUBE(2.13.5)をインストールしようとしたところ、手こずったので、その対処法をメモしておきます。

パーミッション設定のミスで起きる500エラー

EC-CUBEをインストールする際、500エラーが出る主な原因は「パーミッションの間違い」。

さくらのコントロールパネルより、左サイドバーメニューの[アクセスログの設定]-[エラーログの表示]と進むと、エラーの詳細を見ることができます。

アクセスログの設定 – さくらコントロールパネル

エラー内容

suexec policy violation: see suexec log for more details
Premature end of script headers: index.php

最初は『index.php』だけのパーミッションを変更してみたが、500エラーは消えず。

そこで、index.phpが絡むディレクトリごと(install/index.phpとhtml/index.php)パーミッションを755に変更することで、インストール画面が表示されるようになった。

ところが、インストールは無事に完了したものの、管理画面で他のページに移動しようとすると、500エラーが表示されてしまう。

結局、全てのディレクトリとPHPファイルのパーミッションを『755』に変更したことで、正常にEC-CUBEが動くようになった。

今回、SSHでインストールを行ったが、その後、パーミッションを再設定し直す必要があった。

すべてのディレクトリ → 755
すべてのPHPファイル → 755

FTTTPで一つずつ設定していくのは大変なので、SSHで一括変換しました。

SSH(Poderosa) について – さくらのサポート情報

UNIXコマンド

拡張子が「.php」のファイルだけ、パーミッションを『755』に変更

find /home/〇〇〇/www/ -name \*.php -exec chmod 755 {} \;

ディレクトリすべてのパーミッションを『755』に変更

find /home/〇〇〇/www -type d -exec chmod 755 {} +

EC-CUBEインストール画面が真っ白の場合

http://xxx.com/installにアクセスすると、本来、EC-CUBEのインストール画面が表示されるはずですが、「画面が真っ白で何も表示されない」という場合、『define.php』の設定で『dataディレクトリの相対パスが間違えてる』可能性があります。

【define.php】

/** HTMLディレクトリからのDATAディレクトリの相対パス */
define('HTML2DATA_DIR', '../data/');

まずは、エラー内容を表示させる設定を行います。

さくらのコントロールパネルより、左サイドバーメニューの[PHP設定の編集]に進みます。

PHP設定ファイルの編集 – さくらコントロールパネル

php.ini設定ファイル編集に以下のコードを書き込みます。

display_errors = On

設定を保存して、再度、『http://xxx.com/install』にアクセスすると、エラー内容が表示されるはずです。

以下のようなエラーなら、原因は『dataディレクトリの相対パスの間違い』でしょう。

Warning: require_once(/home/〇〇〇/www/./data/require_base.php) [function.require-once]: failed to open stream: No such file or directory in /home/〇〇〇/www/install/index.php on line 35

Fatal error: require_once() [function.require]: Failed opening required '/home/〇〇〇/www/./data/require_base.php' (include_path=':.:/usr/local/php/5.2/lib/php') in /home/〇〇〇/www/install/index.php on line 35

この相対パスは各々の構成によって違います。

僕の場合は、以下のようにwwwディレクトリにhtmlディレクトリの中身を移している為、『../data/』としていますが、『./data/』や『data/』の人もいます。

〇〇〇  – www
– data

PHPのバージョンが原因の場合もある

EC-CUBEとPHPのバージョンの相性が悪いこともあるようで…

さくらのレンタルサーバーなら、意図的にPHPのバージョンを下げることができます。

さくらのコントロールパネルより、左サイドバーメニューの[PHPのバージョン選択]で設定できます。

PHP設定ファイルの編集 – さくらコントロールパネル

僕は、「PHP 5.2」に設定しています。

この記事のURLをコピー

関連情報

メールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。