web-dev-qa-db-ja.com

Joomla:ログイン後の空の管理者バックエンド

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ですが、失敗しました。

何が起こっているのか知っていますか?あなたのサポートに感謝します。

1
baldo

私はこれに終日取り組んだ後、ようやく解決策を思いつきました。 php5-curlがインストールされていないだけです。それが聞こえるのと同じくらい単純で愚かです。

そのため、最も可能性が高いのは、Jomsocial/Jomsocial Updateプラグインが管理サイトを表示するためにcurlを必要としたことです。管理者が管理者パネルにアクセスするたびにJomsocial Updateが実行されたと思います。これを無効にすると、死の空白の画面が表示されなくなりました(Jomsocial管理サイトにはアクセスできませんでした)。

それでも、解決策を思い付く方法について混乱しています。これは他のシナリオで私に起こりましたが、curl_init()が定義されていないことをログに出力すると、非常に明確になるため、通常は解決策を見つけます。ログにまったく何も記録されなかったので、これはどのように混乱したのでしょうか?

まあ、実際にはかなり台無しにされました。これらの言葉を書いている間、私は何が起こっているのかという感じがしました。はい、curl_init()呼び出しの前に '@'演算子があり、E_ALLロギングが定義されている場合でもエラーを抑制します。これが一般的なコーディングスタイルであるかどうかはわかりませんが、デバッグに関しては、すべてを地獄に変えるだけです。

とにかく、それは同じ問題を抱えている可能性のある人のための答えです。

よろしく!

3
baldo

アンソニー、私は私のメンバーのためのコミュニティコンポーネントとしてJomSocialを持っているこのウェブサイトを実行します。案の定、私はここにいます。私のものは非常にユニークなので、インターネット全体を閲覧していて、自分の死の画面が表示されている理由がわかりませんでした。どのようにして問題に陥ったのかをお話します。

  1. 私は自分のオンラインWebサイトのバックアップを作成し、ローカルホストに再読み込みして、完全に機能するバックアップがあることを100%確認する習慣があります。ドメインのCpanelでバックアップウィザードを使用してこれを行います。
  2. そのため、バックアップを行い、すべてのファイルがオフラインになると(データベースとパブリックHTMLアーカイブ)、 =アーカイブを抽出し、ローカルホストにWebサイトを貼り付け、データベースを復元して、サイトにアクセスしました。案の定、白いスクリーンに出会ったことはありません。
  3. 話を短くするために、約2時間試行して失敗した後、抽出されたすべてのフォルダを確認しましたが、残念なことに、アーカイブで「Components」フォルダが抽出されなかったため、最初に使用していたWebサイトから手動でコピーしましたオンラインのものをアップロードします。Webサイトをホストしているので、追加のコンポーネントをインストールしていなかったので、必要なすべてのコンポーネントがそのフォルダーに何らかの形で存在していると確信しました{しかし、それが機能するかどうかわからなかった} 、それをローカルホストの残りのWebサイトを含むフォルダーに貼り付け、そこからJoomla Webサイトのバックエンドにログインし、キャッシュをクリアし、期限切れのキャッシュをクリアしました。オンラインです。
  4. 簡単なアドバイスですが、Webサイトを別のホストに移行した後、WSODの原因を確認する前に、手動でクロスチェックしてすべてのファイルとフォルダーが存在することを確認します。私のウェブサイトで間違っています。このアドバイスがオンラインで検索した場所のどこにも現れなかったのには驚いています。
0
Anthony Kerry