Авг 20
Возвращаясь к моей недавней борьбе с ненормальной работой новой версии WordPress 3.0.1 хочу показать несколько найденных мною статистических изысканий других блогеров.
Вот заметка от создателя антипода WordPress-a – MaxSite CMS – Эволюции WordPress посвящается. В заметке автор провёл исследование потребления памяти скриптами WordPress-а. Выводы в общем неутешительные для авторов движка.
Вот так выглядит график использования памяти и тренд на увеличение, собственно, не собирается меняться: WP 3.0.1 отъедает 22 МБ выделенной памяти.

Посмотрев на этот график, я бы, на месте авторов, задумался не над остановкой выпуска новых версий ради реорганизации окружения WordPress (реорганизация сайта, форума, документации, хранилища тем и плагинов), а над усиленной работой по оптимизации работы с памятью.
Ну конечно существуют и вполне объективные причины увеличения используемой памяти – WordPress всё-таки очень сильно наростил функциональность к версии 3.0.1 по сравнению с первой официальной версией 0.7. Вот, например, эволюция пользовательского интерфейса WordPress.
Французский блогер Ozh собрал интересную статистику по всем основным версиям (54 релиза) WordPress, хотя сам почему-то он их назвал «бесполезными фактами». Например, размер zip-файла с исходным кодом от 225 кб версии 0.7 вырос до 2897 кб в версии 3.0.1, т.е. более чем в 10 раз. Табличка с подробно статистикой по размерам файлов, количеству и типам можно посмотреть здесь. По этим данным были составлены интересный графики.
Кроме так сказать физических характеристик Ozh изучил и внутреннюю структуру движка и выяснил несколько IнTересных фактов:
- В последней опубликованной версии WordPress 3.0.1 объявлено 3240 php-функций.
- В первой версии (0.7.1) было всего 309, т.е. более чем в 10 раз меньше
- Всего во всех версиях WordPress было объявлено и использовано 3920 php-функций
- В среднем каждый номерной релиз «.X» (2.1, 2.9…) содержал 225,2 новых функций
- Только один релиз был «худее» предыдущего: версия 1.2.1 содержала на 23 функции меньше чем предыдущая версия 1.0.2
- Самый «мощный» релиз – WordPress 2.8 – добавил сразу 569 новых функций. Больше всего функций (121) было удалено с выходом версии 1.5.
Ещё один график по количеству функций в различных версиях (остальное на сайте автора):

Закончу фразой из анекдота:
- И вот теперь со всей этой фигнёй мы попробуем взлететь.
Авг 19
Здравствуйте уважаемые читатели IнTересностей.
Представляю вашему вниманию очередной выпуск IнTересных ссылок. Этот выпуск пройдёт под знаком, неотвратимо надвигающегося на фрилансеров, нового Налогового Кодекса Украины – в выпуске вы найдёте несколько ссылок с обсуждениями проекта НК.
[IнTересные ссылки]
[IнTересное видео]
[IнTересный юмор]
Сегодня опять без юмора – наверное этот раздел всё-таки отомрёт.
[IнTересные обсуждения]
Какой-то не очень позитивный выпуск вышел, но вот как-то так в этот раз.
Спасибо за внимание и до следующих встреч.
Авг 18
Вчера вечером решил всё-таки перейти на новую версию блого-движка WordPress. На текущий момент это версия 3.0.1. Т.к. уважаемый Lecactus забил на переводы, пришлось скачивать новую версию с официального сайта. Были выкачаны и английская, и русская версии.
Естественно перед установкой новой версии нужно сделать копию базы и, по возможности, всех файлов блога – что и было сделано.
Кстати копию базы делает у меня плагин WordPress Database Backup по расписанию и делает это очень успешно. Копия файлов была сделана ручками (особенно не забывайте о wp-contents где хранятся все темы, плагины и медиа-файлы, используемые в вашем текущем блоге).
Кстати ваши медиа-файлы могут находится и в другой папке – это зависит от настроек!
Так вот собственно к чему я пишу это всё – после перехода на новую версию сам блог остался в рабочем состоянии, а вот административная часть оказалась абсолютно в нерабочем. Практически любая страница загружалась или наполовину, или не загружалась совсем с ошибкой «Allowed memory size of exhausted«. Дело в том, что мой текущий тариф у хостера подразумевает выделение только 32 Мб для работы php скриптов. Однако этого для работы новой админки оказалось недостаточно. После долгих танцев с бубном проблема была конечно решена (наполовину) – админка заработала в полном объёме, но пришлось её оставить на английском, т.к. перевод на русский занимает слишком много памяти и, при включённой директиве define (‘WPLANG’, ‘ru_RU’); в файле wp-config.php, админка не загружалась совсем – White Screen of Death (WSOD).
Вариантов решения проблемы на самом деле несколько:
- Увеличение доступной памяти для php скриптов.
Это также можно сделать несколькими способами (если есть соответствующий доступ к файлам):
- В файле php.ini изменить установить параметр memory_limit = 64M (по умолчанию 32Мб);
- В файле .htaccess прописать директиву php_value memory_limit 64M
- В файле wp-config.php прописать define(‘WP_MEMORY_LIMIT’, ’64M’);
Все эти вариант сработают если у вас есть права на соответствующие изменения. Мой хостер (да и большинство других) запрещает изменять доступный объём памяти таким образом, поэтому для большинства такой способ, к сожалению, не подойдёт.
- Следующий способ чтобы хоть как-то избавится от WSOD заключается в том, что необходимо деактивировать все активные плагины. Во всяком случае мне это помогло увидеть админку. Для этого пришлось вернуть старую версию WordPress 2.9.2. Затем (не меняя версию) я установил довольно полезный плагин WP-Memory-Usage. Плагин выводит в подвал админки информацию об используемой памяти.
Затем я опять обновил версию до английской 3.0.1 – с русской версией админка не работала даже при всех деактивированных плагинах. Админка чистого движка (ну с одним активированным плагином) отъела 25 Мб из 32. Затем я обновил все плагины до последних версий и стал активировать все необходимые мне. Всё нормально активировалось и вот сейчас используется Memory : 26.92 of 32 MByte
- Однако на этом танцы с
бубном русским WordPress-ом не заканчиваются.
Чтобы оживить админку и при этом оставить русский интерфейс для блога (все названия месяцев, дней недели и т.д., видимые для посетителей блога) – пришлось сделать вот такой финт ушами. В конфигурационном файле wp-config.php необходимо закомментировать define (‘WPLANG’, ‘ru_RU’); и прописать такую конструкцию
if (strpos($_SERVER['REQUEST_URI'], ‘wp-admin’)) define (‘WPLANG’, ‘ ‘); else define (‘WPLANG’, ‘ru_RU’);
Это будет означать что для блога используется русский язык, а для админки – язык по-умолчанию, т.е. английский.
Я попробую перевести админку (основываясь на переводах Lecactus-а) и выложить чуть позже (если получится).
Вот собственно именно таким получился у меня переход на новую версию WordPress.
Кстати, совершенно забыл, рекомендую удалить неиспользуемые плагины – они тоже отъедают выделенную для php-скриптов память!
P.S.
Кстати, а никто не замечал, что как бы ни было написано слово
wordpress
(спасают только теги pre) – оно автоматически преобразуется в WordPress (большие буквы W и P).