我有这个用户已经..在3个主要表格中使用,即jos_user,以及joomla的其他2个acro_和acro_map ...当我使用组件中的联系人按钮时,我收到此错误... < / p>
以下是错误:
JUser::_load: Unable to load user with id: 160529
Error loading Modules:MySQL server has gone away SQL=SELECT m.*, am.params as adv_params FROM jos_modules as m LEFT JOIN jos_advancedmodules as am ON am.moduleid = m.id WHERE m.published = 1 AND m.access <= 1 AND m.client_id = 0 ORDER BY m.ordering, m.id
请不要担心其他错误(因为我试图找到该frm托管服务提供商的解决方案)但是目前我非常无法在使用“联系我们”按钮时无法在此joomla组件中加载用户< / p>
组件的“视图”代码::
defined('_JEXEC') or die('Restricted access');
$to = "";
$subject = "";
$message = "";
$Itemid = JRequest::getInt('Itemid');
$to = $this->msgSendInfo[0];
$subject = $this->msgSendInfo[1];
$message = $this->msgSendInfo[2];
$document =& JFactory::getDocument();
$document->addScriptDeclaration($this->script);
$document->addScriptDeclaration($this->users);
?>
<!-- Title -->
<div class="fsl_h3title"><b><?php echo JText::_('JBJOBS_NEWMESSAGE'); ?></b></div>
<!--<div runat="server" ID="divContent" class="border" contenteditable="true">
<?php echo $message; ?>
</div>-->
<!-- Begin Form for message -->
<form action="index.php" method="post" name="adminForm" id="adminForm" >
<div class="col100">
<table class="admintable jbj_tblborder" width="100%">
<tr>
<td width="100" align="right" class="key">
<label for="to">
<?php echo JText::_( 'JBJOBS_TO' ); ?>:
</label>
</td>
<td>
<input class="text_area" type="text" name="to" id="to" size="32" maxlength="100" value="<?php echo $to; ?>" onkeyup="return getUser()" readonly />
<!--<select id="toList" style="width: 200px; float: left; margin-left: 8px; vertical-align: middle;" onchange="return setUser()" size="2">
<option><?php echo JText::_( 'JBJOBS_NOSUGGESTIONS' ); ?></option>
</select>-->
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
<label for="subject">
<?php echo JText::_( 'JBJOBS_SUBJECT' ); ?>:
</label>
</td>
<td>
<input class="text_area" type="text" name="subject" id="subject" size="48" maxlength="100" value="<?php echo $subject; ?>" />
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
<label for="message">
<?php echo JText::_( 'JBJOBS_MESSAGE' ); ?>:
</label>
</td>
<td>
<?php
$editor =& JFactory::getEditor();
echo $editor->display('message', $message, '500', '300', '60', '10', true);
?>
</td>
<!-- Do NOT remove these two input boxes -->
<input type='hidden' id='temp' />
<input type='hidden' id='temp2' />
</tr>
<tr>
<td width="100" align="right" class="key">
<label for="submit">
</label>
</td>
<td>
<input class="button" type="submit" name="submit" id="submit" size="32" maxlength="100" value="<?php echo JText::_( 'JBJOBS_SEND' ); ?>" />
</td>
</tr>
</table>
</div>
<div class="clr"></div> <!-- Clears the float -->
<!-- Do not edit after this point, it does not change the visual style -->
<input type="hidden" name="option" value="com_jbjobs" />
<input type="hidden" name="task" value="savemessage" />
<input type="hidden" name="controller" value="jbmessaging" />
<input type="hidden" name="Itemid" id="Itemid" value="<?php echo $Itemid; ?>" />
<?php
jimport('joomla.utilities.date');
$now = new JDate();
$date = $now->toMySQL();
$user =& JFactory::getUser();
?>
<input type="hidden" name="date" value="<?php echo $date; ?>" />
<input type="hidden" name="idFrom" value="<?php echo $user->id; ?>" />
<input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />
</form>
<script type='text/javascript'>
<!--
getUser();
//-->
</script>
编辑:我的主人提供的一份说明(对过去6个月的艰苦工作的最后打击)
感谢您的联系。似乎是一个巨大的joomla用户表的问题:
# 1267920 users in jos users"
ls -laSh /var/lib/mysql/_final1
total 868M
-rw-rw---- 1 mysql mysql 452M May 2 04:51 jos_jbjobs_jobseeker.MYD
-rw-rw---- 1 mysql mysql 155M May 2 16:47 jos_users.MYD
-rw-rw---- 1 mysql mysql 120M May 2 16:47 jos_users.MYI
-rw-rw---- 1 mysql mysql 45M May 2 04:51 jos_core_acl_aro.MYD
-rw-rw---- 1 mysql mysql 36M May 2 08:30 jos_core_acl_aro.MYI
-rw-rw---- 1 mysql mysql 25M May 2 04:51 jos_core_acl_groups_aro_map.MYD
-rw-rw---- 1 mysql mysql 13M May 2 08:30 jos_jbjobs_jobseeker.MYI
joomla每64M内存限制本身就是限制
点击以下表单时
:组件?联系人?新联系人
由于用户数量巨大:
链接用户。此联系人链接的用户名(如果适用)。
抛出64M限制的以下错误
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 76 bytes) in /home/ink/public_html/libraries/joomla/database/database/mysql.php on line 462
在这种情况下,实际的内存消耗远远超过1G。所以它不像服务器问题更像是一个joomla问题本身,显然joomla不是为这么多用户设计的。如果您有任何其他问题或疑虑,请告诉我们。
所以我猜joomla或许无法处理100万或500万用户?
答案 0 :(得分:1)
错误消息表明MySQL没有从您的查询返回
Error loading Modules:MySQL server has gone away
您的用户ID表示有大量用户 - 您的服务器是否可以胜任该作业?
<强> [编辑] 强> 您刚刚添加的错误是PHP错误,它表示您已经耗尽了PHP 允许使用的内存,而不是Joomla !.顺便说一下Joomla的版本!你正在用吗?有了这么多用户,我倾向于使用MySQLi,它应该更快,更高效。查看错误消息中的指示行,您似乎在1.5.x
检查Joomla中的PHP设置!转到Help->System Info->PHP Information
然后在memory_limit
上查找以查找您的服务器PHP配置是什么。继续出现错误消息,它是64 Mbs。你的主人应该知道这一点......
[编辑2]
顺便说一下,在Joomla没有!代码库是执行ini_set('memory_limit', '64M')
还是类似的,除了几个调用memory_limit
使用ini_get('memory_limit')
检查我在Joomla核心中找不到任何设置内存限制的内容。< / p>