我已经有这个用户了。在 3 张主桌(即 jos_user 张桌子和其他 2 张acro_和acro_map中活着并踢腿......在 Joomla 中,当我使用组件中的联系人按钮时,我会收到此错误......
下面是错误:
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 组件中加载用户一无所知
组件的"视图"代码 ::
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 万用户?
错误消息暗示MySQL尚未从您的查询返回
Error loading Modules:MySQL server has gone away
- 这可能是查询执行超时
- PHP 的时间不多了
- 或者内存不足。
您的用户 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')
或类似操作,实际上除了使用ini_get('memory_limit')
进行几次调用以检查memory_limit
之外,我在 Joomla 核心设置内存限制中找不到任何内容。