首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Joomla2.5会话表损坏?

为什么Joomla2.5会话表损坏?
EN

Stack Overflow用户
提问于 2013-09-20 06:07:49
回答 3查看 2.5K关注 0票数 1

我正在运行一个网站使用Joomla!2.5.9为期7个月。这周以前一切都很顺利。在周一和今天(星期五),由于****_session表已经崩溃,网站无法运行。我没有机会看看日志上有什么问题。

不管怎么说,我星期一把桌子修好了,直到今天,一切都很正常。今天,它又犯了同样的错误。然后我又修好了。我不想这张桌子坏了,也不想再修理它。

我想知道Joomla是否有漏洞!或者服务器端还有别的东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-20 11:47:44

我已经做了一页,当崩溃时手动修理桌子。

代码语言:javascript
复制
<?php
    //file = repair/index.php

    include '../configuration.php'; //has JConfig class

    $cfg = new JConfig();

    $mysqli = new mysqli($cfg->host, $cfg->user, $cfg->password, $cfg->db);

    if($mysqli->query('REPAIR TABLE prefix_session'))
        echo 'Hey!';
    else
        echo 'An error occured call zkanoca';
?>

当我打电话给http://example.com/repair时,就没问题了。

票数 3
EN

Stack Overflow用户

发布于 2013-09-20 07:33:18

由于某些原因,有时我会遇到这个错误,所以我用cron作业实现了自动修复:

代码语言:javascript
复制
<?php

$sites = array('http://www.yoursite.com', 'http://www.yourothersite.com');
foreach($sites as $site) {
  $content = file_get_contents($site);
  if (strpos($content, 'error') !== false) {
    mail('myself@myself.com', 'Error found: '.$site,
         $site.' reported an error:<br/><br/>'.$content,
         'From: Myself <myself@myself.com>');
  }
  if (strpos($content, 'jtablesession::Store Failed') !== false) {
    // run repair table
    $con = mysql_connect('localhost', 'user', 'pass');
    mysql_select_db('yoursite_db_name', $con);
    // you might want to add an if here, if you have many sites to check
    mysql_query('REPAIR TABLE `yourprefix_session`', $con);
    mysql_close($con);
    mail('myself@myself.com', 'Repaired #__session', 'From: Myself <myself@myself.com>');
  }
}

?>

请记住,我只对Joomla1.5站点使用这个。如果所搜索的错误与2.5或3.0不同,则可能需要更改它们。

票数 3
EN

Stack Overflow用户

发布于 2014-12-30 09:08:06

我还丢失了MySQL中一个损坏的“会话”表的站点。我发现的解决方案对于一个非常简单和可预测的问题来说太复杂了,如下文所述:

https://www.akeebabackup.com/documentation/admin-tools/database-tools.html

简单地说,会话表需要定期清理。一旦它崩溃,就不能再使用PHPmyAdmin访问它(因为表崩溃了,它就不能被访问)。由于该表已损坏,并且由于无法访问该站点,因此您也无法访问管理工具。

因此,通过cpanel,使用PHPmyAdmin,在数据库部分,在站点的DB的SQL选项卡中,我输入了:

代码语言:javascript
复制
REPAIR TABLE [prefix]_session

然后单击Go

问题解决了。现场再次出现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18909940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档