Joomlaインストールを別のサーバーに移行しようとすると問題が発生します。まず最初に、すべてのファイルを古いサーバーから新しいサーバーにコピーし、Joomlaデータベースを別のサーバーに移行したとしましょう。
MySQLサーバーの変更を反映するように、configuration.phpを更新しました。
サイトをロードすると、明らかに正常に機能します。DBに接続し、すべての操作を許可します。ただし、Joomla管理パネルにアクセスしようとすると、ログインに成功した後、空の画面が表示されます。バックエンドに入る方法はありません。
エラー報告を有効にするために、configuration.phpファイルを構成しました。
public $error_reporting = 'maximum';
public $debug = 1;
また、administrator/index.phpファイルに次の行を導入しました。
error_reporting(E_ALL);
これにもかかわらず、Apache2ログ(/var/log/Apache2/error.log)やJoomlaログ(/var/www/logs/error.php)にはエラーは表示されません。
データベースでいくつかの拡張機能を手動で無効にしてみましたが、実際には拡張機能「Jomsocial Update」を無効にするとバックエンドに入ることができるという事実が思い付きましたが、Jomsocial管理サイトにはアクセスできません(空白のページが再び表示されます)。
私にとって奇妙なのは、ログでエラーがまったく発生しないという事実です。
古いサーバーと新しいサーバーの両方で同じApacheバージョン(2.2.22)が使用されています。ただし、古いサーバーはPHP v5.4.6ですが、新しいサーバーはPHP v5.3.10です。私はPHP非公式リポジトリのv5.4.28ですが、失敗しました。
何が起こっているのか知っていますか?あなたのサポートに感謝します。
私はこれに終日取り組んだ後、ようやく解決策を思いつきました。 php5-curlがインストールされていないだけです。それが聞こえるのと同じくらい単純で愚かです。
そのため、最も可能性が高いのは、Jomsocial/Jomsocial Updateプラグインが管理サイトを表示するためにcurlを必要としたことです。管理者が管理者パネルにアクセスするたびにJomsocial Updateが実行されたと思います。これを無効にすると、死の空白の画面が表示されなくなりました(Jomsocial管理サイトにはアクセスできませんでした)。
それでも、解決策を思い付く方法について混乱しています。これは他のシナリオで私に起こりましたが、curl_init()が定義されていないことをログに出力すると、非常に明確になるため、通常は解決策を見つけます。ログにまったく何も記録されなかったので、これはどのように混乱したのでしょうか?
まあ、実際にはかなり台無しにされました。これらの言葉を書いている間、私は何が起こっているのかという感じがしました。はい、curl_init()呼び出しの前に '@'演算子があり、E_ALLロギングが定義されている場合でもエラーを抑制します。これが一般的なコーディングスタイルであるかどうかはわかりませんが、デバッグに関しては、すべてを地獄に変えるだけです。
とにかく、それは同じ問題を抱えている可能性のある人のための答えです。
よろしく!
アンソニー、私は私のメンバーのためのコミュニティコンポーネントとしてJomSocialを持っているこのウェブサイトを実行します。案の定、私はここにいます。私のものは非常にユニークなので、インターネット全体を閲覧していて、自分の死の画面が表示されている理由がわかりませんでした。どのようにして問題に陥ったのかをお話します。