一位朋友在他的网站上建立了一个排名系统,我正试图通过wordpress和godaddy主持我的网站。它为他更新但是当我将它加载到我的网站时,它可以工作6个小时,但是一旦重新加载应该发生,它就会出错,我会收到500超时错误。
他的页面位于:http://www.jeremynoeljohnson.com/yakezieclub
我的页面目前位于http://sweatingthebigstuff.com/yakezieclub,但是当你重新加载= 1时,它会出错。
知道为什么会这样吗?我可能需要更改的任何设置?
我可以给你所有代码,但哪一部分? index.php文件?我不确定哪一部分搞砸了。我确实上传了与他相同的代码。
这是重装部分:
$cachefile = "rankings.html";
$daycachefile = "rankings_history.xml";
$cachetime = (60 * 60) * 6; // every 6 hours, the cache refreshes
$daycachetime = (60 * 60) * 24; // every 24 hours, the history will be written to - or whenever the page is requested after 24 hours has passed
$writenewdata = false;
if (!empty($_GET['reload']))
{
if ($_GET['reload']== 1)
{
$cachetime = 1;
}
}
if (!empty($_GET['reloadhistory']))
{
if ($_GET['reloadhistory'] == 1)
{
$daycachetime = 1;
$cachetime = 1;
}
}
if (file_exists($daycachefile) && (time() - $daycachetime < filemtime($daycachefile)))
{
// Do nothing
}
else
{
$writenewdata = true;
$cachetime = 1;
}
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile)))
{
include($cachefile);
echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->";
exit;
}
ob_start(); // start the output buffer
&GT;
答案 0 :(得分:0)
包含缓存文件后,您启动输出缓冲的任何特殊原因?如果缓存文件只是原始html,则必须先将其转储到输出流中,然后在开始缓冲之前进行缓存日期注释。
是否有可能脚本(或其他脚本)中的某些内容在输出文件上打了一个锁,这样重新加载检查部分会在等待锁清除时挂起?
答案 1 :(得分:0)
看起来真的很慢,这让我觉得你正在做一些非常密集的事情或者有很高延迟的事情。如果您的Web服务器达到其内部超时值,那么您将收到500错误。优化代码以提高速度或增加服务器超时以解决此问题。
如果您发布服务器平台,我可以告诉您如何增加超时时间。
希望这有帮助。
答案 2 :(得分:0)
两个线索:
首先,检查文件系统在创建新文件时是否返回实际日期/时间。在某些系统上,文件修改时间本地化为时区,而其他系统则不是(GMT代替)。
其次,请小心使用filemtime。 PHP使用缓存系统来避免访问hdd资源,这很好,但我从来没有发现如何在内部管理这个缓存并且是生命周期。我建议您每次运行更新脚本时调用clearstatcache