我的网站使用nginx作为反向代理,apache作为后端使用mod_php。有时nginx在特定URL上返回502错误(如http://example.com/ipb.html?automodule=elfchat),因为apache关闭连接。在好的情况下 - 脚本应该将我重定向到另一个页面。这是崩溃连接的文件:
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新手。
答案 0 :(得分:0)
我忘了说 - 我将升级 php版本从5.2升级到5.3,并且由于php设置是安全的,因此一些代码会中断。关于解决方案
这是令人难以置信的 - 有人写这些代码eval(base64_decode("aWYoJG5hbWUgPT0gIkVsZmV0IikkaHRtbG5hbWUgPSAiPGJpZz5FbGZldDwvYmlnPiI7"));
做这件事if($name == "Elfet")$htmlname = "<big>Elfet</big>";
我用纯代码替换eval,一切正常!