[Wed Jul 16 07:47:58 2008] [error] [client xxx] PHP Fatal error: Out of memory (allocated 26214400) (tried to allocate 48 bytes) in /htdocs/modules/locale/locale.module on line 175, referer: http://xxx
[Wed Jul 16 07:56:29 2008] [error] [client xxx] PHP Fatal error: Out of memory (allocated 26476544) (tried to allocate 44 bytes) in /htdocs/includes/menu.inc on line 216
Вот такое выдаёт со вчерашнего дня.
С моей стороны никаких изменений не было.
На FTP и Phpmyadmin естественно есть доступ.
Войти в админку не могу. Да и вообще не выдает ни одной странички.
Подскажите пожалуйста что можно сделать для реанимации сайта?
Комментарии
Пробовал сделать update, выдает ссылку на код.
Fatal error: Out of memory (allocated 26738688) (tried to allocate 86325 bytes) in /htdocs/modules/locale/locale.module on line 234
* Refreshes database stored cache of translations.
*
* We only store short strings to improve performance and consume less memory.
*/
function locale_refresh_cache() {
$languages = locale_supported_languages();
foreach (array_keys($languages['name']) as $locale) {
$result = db_query("SELECT s.source, t.translation, t.locale FROM {locales_source} s INNER JOIN {locales_target} t ON s.lid = t.lid WHERE t.locale = '%s' AND LENGTH(s.source) < 75", $locale);
$t = array();
while ($data = db_fetch_object($result)) {
$t[$data->source] = (empty($data->translation) ? TRUE : $data->translation);
}
cache_set("locale:$locale", 'cache', serialize($t));
}
}
Вот на эту строку cache_set("locale:$locale", 'cache', serialize($t));
надо в таблице system SQL-запросом update постепенно отключать модули пока не станет хватать памяти
ну и вообще сначала выяснить сколько хостер дает памяти и можно ли в php.ini добавить
Спасибо, пробую отключать. Включил throttle для модуля locale, загрузился сайт, а в админку все равно не могу зайти.
Попробовал сделать update.php, предварительно закачав обновления, снова сайт перестал отвечать.
В php.ini стоит:
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
Запусти phpinfo() и посмотри память там. А вообще это к хостеру.
В phpinfo() нет ничего что бы мне помогло. Стоит так же 128 метров.
Хостер предложил оптимизировать свои скрипты, так как они жрут слишком много памяти.
Но два дня назад сайт работал и не было никаких проблем.
Так и не знаю что делать.
Скопировал себе дамп базы сделанный хостером.
Обновил себе Mysql и phpmyadmin.
Импортировал базу по частям.
Подскажите кто знает и может помочь - как теперь быть?
Менять хостера?
или выпрямлять свои кривые руки?
в общем нашел что есть проблемы при работе с таблицей locale_sources, на локалхосте он не смог её импортировать, и ещё пару больших таблиц. Отключил watchdog и статистику. На локалхосте добрался в удобной форме до контента.
Но у хостера отключение модулей пока не принесло результата.
Судя по ошибке ограничение в 25 Мб работает.
Надо мерять сколько каждый модуль занимает и отключать то что не влазит в память. Померять можно модулем Devel или патчами http://2bits.com/articles/measuring-memory-consumption-by-drupal-bootstr...
Лучше поставить голый Drupal и включать по одному модулю.
Была такая проблема. Вылечил так: в setting.php вставил строку: ini_set('memory_limit', '100M');
Спасибо, всем кто помогал! Результатов не добился, пришлось переустанавливать с нуля. Благо база была небольшая, можно заново всё ввести или экспортировать по частям.
memory limit- Пути решения проблемы
Да, как то 26738688 байт слабо тянут на 128 мб.
Кстати, 128 мб это достаточно жирно.