0

私はすでにこのユーザーを持っています..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 万人のユーザーを処理できないと思いますか?

4

1 に答える 1

1

エラー メッセージは、MySQL がクエリから返されていないことを意味します

Error loading Modules:MySQL server has gone away
  • これは、クエリ実行のタイムアウトである可能性があります
  • PHP の時間が不足しています
  • またはメモリが不足しています。

あなたのユーザー ID は多数のユーザーを示しています。あなたのサーバーは問題なく機能していますか?

[編集] 追加したエラーは PHP エラーです。Joomla! ではなく、PHP が使用できるメモリを使い果たしたことを示しています。ちなみにJoomlaのバージョンは何ですか!使っていますか?このように多くのユーザーがいる場合、私は MySQLi を使用する傾向があります。これは、わずかに高速で効率的なはずです。エラー メッセージの指定された行を見ると、1.5.x のように見えます

Joomla! で PHP の設定を確認するには に移動しHelp->System Info->PHP Information、検索を実行しmemory_limitて、サーバーの PHP 構成を確認します。64 Mbs というエラー メッセージが表示されます。ちなみに、あなたのホストはこれを知っているはずです...

[編集 2] ところで、Joomla のどこにもありません! コードベースはini_set('memory_limit', '64M')、Joomlaコアでメモリ制限を設定するものを見つけることができませんでしたmemory_limitini_get('memory_limit')

于 2012-05-02T01:09:50.153 に答える