0

私は、リバース プロキシとして nginx を使用し、mod_php を使用してバックエンドとして apache を使用する Web サイトを持っています。Apache が接続を閉じるため、nginx が特定の URL ( http://example.com/ipb.html?automodule=elfchatなど) で 502 エラーを返すことがあります。良いシナリオでは、スクリプトは私を別のページにリダイレクトするはずです。接続をクラッシュさせるファイルは次のとおりです。

define('ELFCHAT_VERSION', '4.2.1');
include_once(ELFCHAT_PATH."config.php");
include_once(ELFCHAT_PATH."settings.php");
include_once(ELFCHAT_PATH."error.php");
include_once(ELFCHAT_PATH."kernel/db.php");
include_once(ELFCHAT_PATH."kernel/sessions.php");
include_once(ELFCHAT_PATH."kernel/skinloader.php");
include_once(ELFCHAT_PATH."kernel/kernel.php");

Elfchat::Init($config, unserialize($settings));

Skin::Setskinpath("skin/".Elfchat::Settings("skin")."/");

/**
 * Код для пользовательского смена скина и языка.
 */
Elfchat::Session()->start();

if(isset($_GET['useskin']))
{
    if($_GET['useskin'] == "ichat")$skin = "ichat";
    else $skin = "elfskin";
    $_SESSION['useskin'] = $skin;
}

if(isset($_SESSION['useskin']))
{
    if($_SESSION['useskin'] == "ichat")$skin = "ichat";
    else $skin = "elfskin";
    Skin::Setskinpath("skin/".$skin."/");
}
/**
 * Конец дополнительного кода
 */
@header('Content-Type: text/html; charset=utf-8');

最後の行をコメントアウトすると、すべてが機能し始めますが、エンコーディングが悪いため、コメントを削除した後、エンコーディングが良好であってもすべてが機能します。しばらくすると、事態は悪化しました。助けてください、私はnginxの初心者です。

4

1 に答える 1

0

言い忘れましたが、php のバージョンを 5.2 から 5.3 にアップグレードしました。php の設定が安全であるため、一部のコードが壊れます。解決策について: これは信じられないことです - 誰かがこれらのコードを書いて、eval(base64_decode("aWYoJG5hbWUgPT0gIkVsZmV0IikkaHRtbG5hbWUgPSAiPGJpZz5FbGZldDwvYmlnPiI7")); これを行うif($name == "Elfet")$htmlname = "<big>Elfet</big>";ために eval を純粋なコードに置き換えると、すべてが機能します!

于 2012-09-15T12:28:03.310 に答える