我正在运行一个网站使用Joomla!2.5.9为期7个月。这周以前一切都很顺利。在周一和今天(星期五),由于****_session表已经崩溃,网站无法运行。我没有机会看看日志上有什么问题。
不管怎么说,我星期一把桌子修好了,直到今天,一切都很正常。今天,它又犯了同样的错误。然后我又修好了。我不想这张桌子坏了,也不想再修理它。
我想知道Joomla是否有漏洞!或者服务器端还有别的东西。
发布于 2013-09-20 11:47:44
我已经做了一页,当崩溃时手动修理桌子。
<?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时,就没问题了。
发布于 2013-09-20 07:33:18
由于某些原因,有时我会遇到这个错误,所以我用cron作业实现了自动修复:
<?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不同,则可能需要更改它们。
发布于 2014-12-30 09:08:06
我还丢失了MySQL中一个损坏的“会话”表的站点。我发现的解决方案对于一个非常简单和可预测的问题来说太复杂了,如下文所述:
https://www.akeebabackup.com/documentation/admin-tools/database-tools.html
简单地说,会话表需要定期清理。一旦它崩溃,就不能再使用PHPmyAdmin访问它(因为表崩溃了,它就不能被访问)。由于该表已损坏,并且由于无法访问该站点,因此您也无法访问管理工具。
因此,通过cpanel,使用PHPmyAdmin,在数据库部分,在站点的DB的SQL选项卡中,我输入了:
REPAIR TABLE [prefix]_session然后单击Go
问题解决了。现场再次出现。
https://stackoverflow.com/questions/18909940
复制相似问题