Помогите ПОЖАЛУЙСТА ДОРОГИЕ КОЛЛЕГИ!!!
Я ВЧЕРА ХОТЕЛ ДОБАВИТЬ в наш сайт http://www.pressa.tj
большую информацию 1мб - была инфошка в текстовом виде ворд
Она выдала ошибку:
Warning: Got a packet bigger than 'max_allowed_packet' bytes query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:3126378:\"Got a packet bigger than 'max_allowed_packet' bytes\nquery: INSERT INTO node_revisions (nid, uid, title, body, teaser, log, timestamp, format) VALUES (0, 1, ' ЗАКОН РЕСПУБЛИКИ ТАДЖИКИСТАН', '<p class=\\"rtecenter\\"> <b style=\\"mso-bidi-font-weight:normal\\"><span style=\\"font-size:14.0pt;font-family:\\r\\n"Palatino Linotype","serif"\\">ЗАКОН РЕСПУБЛИКИ ТАДЖИКИСТАН</span> in /home/pressatj/domains/pressa.tj/public_html/includes/database.mysqli.inc on line 128
Fatal error: Allowed memory size of 100663296 bytes exhausted (tried to allocate 12404139 bytes) in /home/pressatj/domains/pressa.tj/public_html/includes/database.mysqli.inc on line 303
НО САМОЕ УЖАСНОЕ ТО ЧТО СЕЙЧАС САЙТ ПОЛНОСТЬЮ НЕ ОТОБРАЖАЕТСЯ - ЧТО МНЕ ДЕЛАТЬ РЕБЯТА?
САЙТ является НОВОСТНЫМ проблема в этом!!!
- ПОЖАЛУЙСТА ПОМОГИТЕ МНЕ РЕБЯТА ПРОШУ ВАС!!!
Да, еще добавлю При зарегестрированном входе в сайт, все отображается актуально
СПАСИБО ЗАРАНЕЕ ЗА ВСЕ!!!
С уважением
Набиджон
Комментарии
Как правило, на хосте хранится резерв базы данных, самый простой способ востоновить его!
ДЕЛО НЕ В РЕЗЕРВЕ Я ЖЕ ГОВОРЮ САЙТ ПОКАЗЫВАЕТ СТАБИЛЬНО ОТОБРАЖАЕТСЯ ОТЛИЧНО НО ПРИ ВХОДЕ!!!
А до входа отображается не полностью!!!
Подчеркиваю ошибку еще раз:
Warning: Got a packet bigger than 'max_allowed_packet' bytes query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:3126378:\"Got a packet bigger than 'max_allowed_packet' bytes\nquery: INSERT INTO node_revisions (nid, uid, title, body, teaser, log, timestamp, format) VALUES (0, 1, ' ЗАКОН РЕСПУБЛИКИ ТАДЖИКИСТАН', '<p class=\\"rtecenter\\"> <b style=\\"mso-bidi-font-weight:normal\\"><span style=\\"font-size:14.0pt;font-family:\\r\\n"Palatino Linotype","serif"\\">ЗАКОН РЕСПУБЛИКИ ТАДЖИКИСТАН</span> in /home/pressatj/domains/pressa.tj/public_html/includes/database.mysqli.inc on line 128
Fatal error: Allowed memory size of 100663296 bytes exhausted (tried to allocate 12404139 bytes) in /home/pressatj/domains/pressa.tj/public_html/includes/database.mysqli.inc on line 303
после этого я просто открыл страницу где
/home/pressatj/domains/pressa.tj/public_html/includes/database.mysqli.inc
и увидел следующее:
$t('MySQL database'), 'value' => ($phase == 'runtime') ? l($version, 'admin/reports/status/sql') : $version, ); if (version_compare($version, DRUPAL_MINIMUM_MYSQL) < 0) { $form['mysql']['severity'] = REQUIREMENT_ERROR; $form['mysql']['description'] = $t('Your MySQL Server is too old. Drupal requires at least MySQL %version.', array('%version' => DRUPAL_MINIMUM_MYSQL)); } return $form; } /** * Returns the version of the database server currently in use. * * return Database server version */ function db_version() { global $active_db; list($version) = explode('-', mysqli_get_server_info($active_db)); return $version; } /** * Initialise a database connection. * * Note that mysqli does not support persistent connections. */ function db_connect($url) { // Check if MySQLi support is present in PHP if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) { _db_error_page('Unable to use the MySQLi database because the MySQLi extension for PHP is not installed. Check your php.ini to see how you can enable it.'); } $url = parse_url($url); // Decode url-encoded information in the db connection string $url['user'] = urldecode($url['user']); // Test if database url has a password. $url['pass'] = isset($url['pass']) ? urldecode($url['pass']) : ''; $url['host'] = urldecode($url['host']); $url['path'] = urldecode($url['path']); if (!isset($url['port'])) { $url['port'] = NULL; } $connection = mysqli_init(); @mysqli_real_connect($connection, $url['host'], $url['user'], $url['pass'], substr($url['path'], 1), $url['port'], NULL, MYSQLI_CLIENT_FOUND_ROWS); if (mysqli_connect_errno() > 0) { _db_error_page(mysqli_connect_error()); } // Force UTF-8. mysqli_query($connection, 'SET NAMES "utf8"'); return $connection; } /** * Helper function for db_query(). */ function _db_query($query, $debug = 0) { global $active_db, $queries, $user; if (variable_get('dev_query', 0)) { list($usec, $sec) = explode(' ', microtime()); $timer = (float)$usec + (float)$sec; // If devel.module query logging is enabled, prepend a comment with the username and calling function // to the SQL string. This is useful when running mysql's SHOW PROCESSLIST to learn what exact // code is issueing the slow query. $bt = debug_backtrace(); // t() may not be available yet so we don't wrap 'Anonymous' $name = $user->uid ? $user->name : variable_get('anonymous', 'Anonymous'); // str_replace() to prevent SQL injection via username or anonymous name. $name = str_replace(array('*', '/'), '', $name); $query = '/* '. $name .' : '. $bt[2]['function'] .' */ '. $query; } $result = mysqli_query($active_db, $query); if (variable_get('dev_query', 0)) { $query = $bt[2]['function'] ."\n". $query; list($usec, $sec) = explode(' ', microtime()); $stop = (float)$usec + (float)$sec; $diff = $stop - $timer; $queries[] = array($query, $diff); } if ($debug) { print '
query: '. $query .'
error:'. mysqli_error($active_db) .'
'; } if (!mysqli_errno($active_db)) { return $result; } else { // Indicate to drupal_error_handler that this is a database error. ${DB_ERROR} = TRUE; trigger_error(check_plain(mysqli_error($active_db) ."\nquery: ". $query), E_USER_WARNING); return FALSE; } } /** * Fetch one result row from the previous query as an object. * * param $result * A database query result resource, as returned from db_query(). * return * An object representing the next row of the result, or FALSE. The attributes * of this object are the table fields selected by the query. */ function db_fetch_object($result) { if ($result) { $object = mysqli_fetch_object($result); return isset($object) ? $object : FALSE; } } /** * Fetch one result row from the previous query as an array. * * param $result * A database query result resource, as returned from db_query(). * return * An associative array representing the next row of the result, or FALSE. * The keys of this object are the names of the table fields selected by the * query, and the values are the field values for this result row. */ function db_fetch_array($result) { if ($result) { $array = mysqli_fetch_array($result, MYSQLI_ASSOC); return isset($array) ? $array : FALSE; } } /** * Return an individual result field from the previous query. * * Only use this function if exactly one field is being selected; otherwise, * use db_fetch_object() or db_fetch_array(). * * param $result * A database query result resource, as returned from db_query(). * return * The resulting field or FALSE. */ function db_result($result) { if ($result && mysqli_num_rows($result) > 0) { // The mysqli_fetch_row function has an optional second parameter $row // but that can't be used for compatibility with Oracle, DB2, etc. $array = mysqli_fetch_row($result); return $array[0]; } return FALSE; } /** * Determine whether the previous query caused an error. */ function db_error() { global $active_db; return mysqli_errno($active_db); } /** * Determine the number of rows changed by the preceding query. */ function db_affected_rows() { global $active_db; /* mysqli connection resource */ return mysqli_affected_rows($active_db); } /** * Runs a limited-range query in the active database. * * Use this as a substitute for db_query() when a subset of the query is to be * returned. * User-supplied arguments to the query should be passed in as separate parameters * so that they can be properly escaped to avoid SQL injection attacks. * * param $query * A string containing an SQL query. * param ... * A variable number of arguments which are substituted into the query * using printf() syntax. The query arguments can be enclosed in one * array instead. * Valid %-modifiers are: %s, %d, %f, %b (binary data, do not enclose * in '') and %%. * * NOTE: using this syntax will cast NULL and FALSE values to decimal 0, * and TRUE values to decimal 1. * * param $from * The first result row to return. * param $count * The maximum number of result rows to return. * return * A database query result resource, or FALSE if the query was not executed * correctly. */ function db_query_range($query) { $args = func_get_args(); $count = array_pop($args); $from = array_pop($args); array_shift($args); $query = db_prefix_tables($query); if (isset($args[0]) and is_array($args[0])) { // 'All arguments in one array' syntax $args = $args[0]; } _db_query_callback($args, TRUE); $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query); $query .= ' LIMIT '. (int)$from .', '. (int)$count; return _db_query($query); } /** * Runs a SELECT query and stores its results in a temporary table. * * Use this as a substitute for db_query() when the results need to stored * in a temporary table. Temporary tables exist for the duration of the page * request. * User-supplied arguments to the query should be passed in as separate parameters * so that they can be properly escaped to avoid SQL injection attacks. * * Note that if you need to know how many results were returned, you should do * a SELECT COUNT(*) on the temporary table afterwards. db_affected_rows() does * not give consistent result across different database types in this case. * * param $query * A string containing a normal SELECT SQL query. * param ... * A variable number of arguments which are substituted into the query * using printf() syntax. The query arguments can be enclosed in one * array instead. * Valid %-modifiers are: %s, %d, %f, %b (binary data, do not enclose * in '') and %%. * * NOTE: using this syntax will cast NULL and FALSE values to decimal 0, * and TRUE values to decimal 1. * * param $table * The name of the temporary table to select into. This name will not be * prefixed as there is no risk of collision. * return * A database query result resource, or FALSE if the query was not executed * correctly. */ function db_query_temporary($query) { $args = func_get_args(); $tablename = array_pop($args); array_shift($args); $query = preg_replace('/^SELECT/i', 'CREATE TEMPORARY TABLE '. $tablename .' Engine=HEAP SELECT', db_prefix_tables($query)); if (isset($args[0]) and is_array($args[0])) { // 'All arguments in one array' syntax $args = $args[0]; } _db_query_callback($args, TRUE); $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query); return _db_query($query); } /** * Returns a properly formatted Binary Large Object value. * * param $data * Data to encode. * return * Encoded data. */ function db_encode_blob($data) { global $active_db; return "'". mysqli_real_escape_string($active_db, $data) ."'"; } /** * Returns text from a Binary Large OBject value. * * param $data * Data to decode. * return * Decoded data. */ function db_decode_blob($data) { return $data; } /** * Prepare user input for use in a database query, preventing SQL injection attacks. */ function db_escape_string($text) { global $active_db; return mysqli_real_escape_string($active_db, $text); } /** * Lock a table. */ function db_lock_table($table) { db_query('LOCK TABLES {'. db_escape_table($table) .'} WRITE'); } /** * Unlock all locked tables. */ function db_unlock_tables() { db_query('UNLOCK TABLES'); } /** * Check if a table exists. */ function db_table_exists($table) { return (bool) db_fetch_object(db_query("SHOW TABLES LIKE '{". db_escape_table($table) ."}'")); } /** * Check if a column exists in the given table. */ function db_column_exists($table, $column) { return (bool) db_fetch_object(db_query("SHOW COLUMNS FROM {". db_escape_table($table) ."} LIKE '". db_escape_table($column) ."'")); } /** * @} End of "ingroup database". */
ПОМОГИТЕ ПОЖАЛУЙСТА С ЭТОЙ ПРОБЛЕМОЙ!!!
что тут не понятно?
Пожалуйста поймите мне понять это "Fatal error: Allowed memory size of 100663296 bytes exhausted"
Что мне делать?
А что translate.google.ru зобанели?
Буквальный перевод с него "Фатальная ошибка: Разрешены памяти размером 100663296 байт исчерпаны"
Так понятней?
Первая же страницы в при поиске в Google выдало обсуждение http://drupal.org/node/336998
Из первого же комментария ясно, что Drupal в данном случае просто банально не хватает того лимита памяти на скрипт, который ему выделяет хостинг. В вашем случае это 96Мб. Спрашивайте хостера, можно ли увеличить хотя бы до 128Мб (лучше до 256Мб) и как. Если никак - то ваш ресурс банально перерос этот хостинг. Либо меняйте хостера на более лояльного, либо смотрите, что и как у вас потребляет столько ресурсов и оптимизируйте.
Дело в том что я BD My SQL я не вникаю хорошо
А что касается хостинга он пишет мне на мой вопрос о том что max_allowed_packet = ?
Ответ хостинга
Сейчас max_allowed_packet = 1M
Я попросил до 4 мб чтоб повысили по возможности
Они сделали сейчас До max_allowed_packet = 2мб
Но посмотрев на сайт я вижу ту же картину http://www.pressa.tj
Остается проблемма не решенной помогите пожалуйста решить проблему!!!
Они прибавили до 10 мб
max_allowed_packet = 10M
Все равно не решается проблема что мне дальше делать ???????
Все расписано полностью. Чего вы еще хотите?
max_allowed_packet - это что, максимальный размер загружаемого файла что ли?
Вам же написали:
Перешлите это хостеру
max_allowed_packet - это максимальный размер запроса к базе данных. (если говорить очень утрировано)
ясно, спасибо
так вроде сайт грузится...
Я отписал хосту
"Softovick" написал(а):
Drupal в данном случае просто банально не хватает того лимита памяти на скрипт, который ему выделяет хостинг. В вашем случае это 96Мб. Спрашивайте хостера, можно ли увеличить хотя бы до 128Мб (лучше до 256Мб) и как.
Ждем ответа!
Сайт грузится однако Вы можете зарегестрироватся и увидить другую картину после входа
а до входа он обсолютно ГОЛЫЙ вот в чем проблема!!!
кстати рекламные банеры поверх формы регистрации
Это называется WSOD. Гуглим что это такое и как смотреть логи.
Ниже приведены ответы хостинга:
Мы можем увеличить этот лимит до любого значения, на VDS Ваш сайт - единственный и никому помешать не сможет. Вопрос лишь в том, хватит ли в результате оперативной памяти, выделенной Вашему серверу сегласно тарифного плана. Напоминыю, что сейчас у Вас минимальный тариф.
Лимит увеличен до 128Mb. Но в случае нестабильной работы сервера будьте готовы к переходу на более дорогую конфигурацию - потребление памяти теперь увеличится.
Мой запрос серверу:
Необходимо перейти на тарифный план VP 15
в котором
RAM (макс. выделение), Mb 1024
RAM (гарантируемая), Mb 384
осущиствите переход бабло заплотим после просмотра результата!
ДУмаю они незамедлительно сейчас осуществляют переход но все же мне кажется сайт каким был он таким он останится
Ответ Хостера:
Конфигурация изменена на VP-15
memory_limit увеличен до 256Mb
по-моему, Вы не там ищете... как я вижу, ничего не изменилось и лимит памяти на скрипт не при чем.
А теперь, имхо стоит почистить кэш
неужто "Fatal error: Allowed memory size of 100663296 bytes exhausted" осталось?
Простите за банальный вопрос-укажите пожалуйста мне путь как почистить кэш
спасибо заранее
http://www.pressa.tj/admin/settings/performance
внизу кнопочка "Очистить кеш данных"
Спасибо огромное коллега я Вам очень признателен но даже после очищения кэша нету никакого результата сайт остается голым
http://www.pressa.tj
Буду очень признателен помогите пожалуйста!
Что сейчас пишется в логах apache, который error ?
[Wed Jan 19 00:10:06 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 00:13:02 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 00:13:03 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 00:13:25 2011] [error] [client 85.244.150.133] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico, referer: http://www.pressa.tj/ajax_register/login?destination=category/all/10
[Wed Jan 19 00:15:51 2011] [error] [client 109.68.232.22] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 00:17:55 2011] [error] [client 150.70.172.107] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 05:40:17 2011] [error] [client 195.140.128.39] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 06:49:42 2011] [error] [client 217.8.32.129] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 06:50:06 2011] [error] [client 217.8.32.129] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:09:53 2011] [error] [client 81.200.20.36] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:16:11 2011] [error] [client 81.200.20.36] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:21:22 2011] [error] [client 109.74.66.39] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:22:08 2011] [error] [client 95.142.82.188] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:42:08 2011] [error] [client 79.170.188.190] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico, referer: http://www.pressa.tj/ajax_register/login?destination=overview/all
[Wed Jan 19 07:47:58 2011] [error] [client 109.74.68.37] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:48:08 2011] [error] [client 109.74.68.37] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 07:57:15 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 07:57:15 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 08:03:46 2011] [error] [client 79.170.188.190] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico, referer: http://www.pressa.tj/rss.xml
[Wed Jan 19 08:05:01 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 08:05:02 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 08:09:29 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 08:09:30 2011] [warn] RSA server certificate CommonName (CN) `www.snakeoil.dom' does NOT match server name!?
[Wed Jan 19 08:10:19 2011] [error] [client 77.222.100.89] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 08:10:23 2011] [error] [client 77.222.100.89] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 08:13:10 2011] [error] [client 213.184.224.41] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 08:42:03 2011] [error] [client 95.142.86.40] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
[Wed Jan 19 09:11:43 2011] [error] [client 217.11.187.238] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
У него там пол-сайта осталось таки.
А вообще, если так все печально берите бэкапы и вперед.
Вы издеваетесь так, чтоли? Ошибка одна:
[Wed Jan 19 09:11:43 2011] [error] [client 217.11.187.238] File does not exist: /home/pressatj/domains/pressa.tj/public_html/favicon.ico
И она не связанна с работоспособностью сайта. Она говорит что в данной папке не может найти фавикон.
Какие еще ошибки есть?
ПРОШУ прощения ни как не смею издеватся - Вы что уважемый, я реально скинул полностью все строки журнала ошибок апач и в нем более того нету других ошибок.
либо что то не договариваете...
если зарег.пользователям все показывается, а анонимам нет, может в разрешениях посмотреть?
Может, нажать кнопку "Обновить права доступа" в admin/content/node-settings
суть в том, что каким то образом аннонимный пользователь перестал получать доступ
ВОПРОС КАК??????????????
Остается загадкой!
Доступ к чему? И поседством какого модуля это что-то выводится? Далее в админке настройте права доступа для анонимов относительно этого модуля.
Доступ ко всей информации вводимой Редкторами модулей много - уже сломалась БД
Удивительное дело, но у меня произошло то же самое. Сайту около суток. Добавлено 5 статей. При попытке добавить большую статью база точно так же слетела для неавторизованных пользователей.
После попытки добавить большую статью выдалась страница с ошибками:
Warning: Got a packet bigger than 'max_allowed_packet' bytes query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1441784:\"Got a packet bigger than 'max_allowed_packet' bytes\nquery: INSERT INTO node_revisions (nid, uid, title, body, teaser, log, timestamp, format) VALUES (0, 1, '4g', ' Не кажется ли Вам, читатель, что время невероятно ускорило свой бег и\\r\\nдвижется воистину стремит� in /home/user145/domains/domain.com/public_html/includes/database.mysqli.inc on line 134
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 14540157 bytes) in /home/user145/domains/domain.com/public_html/modules/filter/filter.module on line 1011
После чего в админке появилась соответствующая статья, но при попытке отредактировать ее получается 404 ошибка. На главной сайта вместо этой статьи отображается огромным кеглем
"Unpublished"
И эту статью не удалить. И, повторяю, база слетела для неавторизованных пользователей.
Подскажите пожалуйста, я вижу что это совершенно регулярный глюк Друпала. Есть какие-то методы борьбы с ним? Ведь так можно любой сайт обрушить, просто добавив большую статью...
Базу-то я восстановлю, а что делать дальше? Как добавлять большие статьи? Сервер выделенный и проблем с ресурсами нет. Но сам факт очень настораживает...
однозначно глюк Друпала
точно слетела
Весь вопрос в том, что с этим делать. Потому что на свежей установке друпала без модулей произошло то же самое.
Все понимаю, только не понимаю что конкретно сломалось и почему новости залогиненным юзерам показываются а незалогиненным - нет.
На эту тему что смотреть - настройки скрипта или базу?
admin/user/permissions проверил - там все ок.
Все починилось только после того, как перезалил дамп базы до обрушения.
Это что же получается, действительно можно так любой сайт на Друпале обрушить? Бред какой-то...
английским вообще не владеете?