Весь последний месяц я занимался разгребанием завалов. Апдейтил статьи про плагины и хаки, апдейтил сами плагины, отвечал на вопросы в комментариях (запоздалая помощь, уж извините – если что надо я всегда готов помочь), чистил ручной спам в комментариях (весь так и не смог вычистить), хорошо хоть от автоматического спама я избавился давным-давно, а то совсем плохо было бы. Когда основная работа по апдейту блога подошла к концу настала пора апгрейдить сам WordPress до последней версии, сами ведь понимаете – нельзя писать про WordPress не пользуясь последней его версией, тем более, что многие плагины уже исключили поддержку WordPress младше версии 2.7. Так вот это я к чему: апгрейд WordPress занял у меня почти целую неделю! На фоне восторженных записей в блогах о 5-минутном апгрейде (естественно, я гуглил на эту тему) я себя почувствовал форменным идиотом. Поймите меня правильно, сам процесс апгрейда занял не больше 2-х часов (бэкап файлов блогов, бэкап базы данных блогов, новая установка используемых мной хаков и т. д.), только вот борьба с последовавшими после апгрейда глюками отняла уйму времени и нервов, видимо я уже немного отвык от работы с WordPress и именно поэтому решение возникших у меня проблем заняло столько времени. На localhost я обновился быстро и успешно. Немного потестировал локальные версии блогов и особых глюков не увидел, только разную мелочь вроде того, что в плагине Themed Login Plugin вдруг некоторые надписи стали английскими из-за того, что их перевод пропал из файлов локализации WordPress. Наверняка подобные недоработки еще будут всплывать в блоге, но это не так уж страшно. После этих небольших тестов я обновил WordPress у хостера. Сделал все, как мне кажется, идеально. Я даже не перезаписывал файлы поверх старого WordPress, а сначала их все удалил, оставив лишь wp-config. php и .htaccess (папка wp-content естественно перезаписывалась лишь частично), чтобы уж точно никакого мусора от старых версий WordPress в блогах не осталось. Проапдейтил в админке базу данных самого WordPress и, в общем, посчитал, что работа над апгрейдом блогов завершена и можно заняться внедрением новых фишек версии 2.7 и выше (древовидные комментарии, разбивка комментариев на страницы и др.). Первый тревожный звоночек прозвенел, когда я заметил, что в блоге не работают административные виджеты в админке (в нынешней “Консоли“). То есть там отображаются надписи “Загрузка” и ничего дальше не происходит.
Ну казалось бы, что с того? Ведь все остальное то идеально работает, по крайней мере, на первый взгляд. Долго изучал настройки блога у хостера и настройки блога у себя на localhost, разницы никакой не заметил, да и откуда ей взяться, если база данных у них отличается всего на 1 день. Решил, что глюки возникли, видимо, опять из-за нестандартных настроек сервера у Зенона. Однако переписка с саппортом эту версию исключила, ведь в самом деле – какие настройки сервера могут помешать дергать RSS ленту?
Тогда я вспомнил про ранее установленный на блоге плагин Dashboard Widget Manager, которым я избавлялся от ненужных виджетов и который я удалил перед апгрейдом. Поковыряв немного этот плагин в бэкапной копии блога, я увидел, что для правильного его удаления надо было сначала удалить его настройки из базы данных, а уж потом удалять его физически. Решил, что плагин испортил какие-то внутренние настройки WordPress и поэтому у меня не работают виджеты в админке. Долго ковырял базу данных, пытаясь удалить там все, что оставил за собой неправильно удаленный плагин, но это не помогло. Следующим моим шагом стала попытка установить этот плагин в блоге, чтобы после установки его можно было корректно удалить. Однако WordPress что-то хрюкнул про несовместимый плагин и активировать его отказался. Плагин был тут же удален, а я стал думать, что еще можно предпринять, чтобы починить блог. Однако тут он мне выдал уже что-то новенькое: при клике на “Установленные” в меню “Плагины” WordPress перестал показывать список установленных плагинов вообще. То есть даже исходный код страниц обрывался на фразе “Управление плагинами“. Обматюгав в сердцах автора Dashboard Widget Manager, создавшего этот убогий плагин, я решил, что единственное, что в данный момент я могу сделать это обновить на всякий случай те 4 плагина, которые стали требовать обновления после апгрейда WordPress (Ozh Better Feed, WP-PageNavi и др). Мол, вдруг эти глюки из-за полной несовместимости старых версий плагинов с новым WordPress. Обновил все плагины, залил их хостеру и полез проверять работу админки, но тут меня ждал очередной сюрприз – админка вообще перестала нормально работать, не только с виджетами и страницей установленных плагинов, а вообще.
Не загружался js, отвечающий за раскрытие списков; пропали все виджеты из “Консоли“, кроме виджета со числом постов и комментариев и многое-многое другое. Что интересно – сам блог, а не админка работал превосходно и ни малейших глюков я не заметил. Следующие несколько дней я перепробовал все, что только мог. Мне даже пришла в голову идея установить чистый блог, а контентом его набить через Импорт\Экспорт, чтобы таким образом избежать каких-то глючных настроек, которые застряли где-то в моей базе данных mysql. Естественно, я гуглил в попытке найти решение, но все, что я находил это посты вроде “апгрейд до WordPress 2.8 за 5 минут“. По понятной причине, точно сформулировать свою проблему я не мог – вот что искать: “не работает админка в WordPress“; “не работают виджеты в консоли WordPress” или “перестал отображаться список установленных плагинов в WordPress“? Решил проводить эксперименты с другими моими блогами, где возникла та же первоначальная проблема (неработающие виджеты), но которые я еще не успел “убить” своей деятельностью и в которых можно было работать в админке. Совет из FAQ‘а – если что-то перестало работать, то отключите все плагины и проверяйте не исчезла ли проблема. Путем включения\выключения плагинов я неожиданно вроде бы решил проблему – выключение плагина Simple Tags вдруг починило работу виджетов. Теперь порция мата досталась автору Simple Tags, который с постоянными апдейтами плагина все равно не может создать нормально работающий плагин. Радостный я полез по ftp удалять плагин Simple Tags с блога (в админке я его отключить не мог). Удалил, полез в админку проверять работу блога.
И нарвался на пустую страницу. Вообще пустую – белый экран и никакого исходного кода страницы. Окончательно угробил админку, да так, что в нее даже зайти нельзя. Блог, повторюсь, при этом работает идеально. Вот что за бля? Удаление кеша браузера, отключение плагинов FF вроде AdBlock Plus и прочие действия никакого результата не принесли.
Вспомнил, что недавно у Зенона апгрейдили серверный софт, из-за чего, кстати, у меня перестали одновременно работать плагины WordPress Database Backup и wp_mail Cyrillic (при включении WordPress Database Backup письма от wp_mail Cyrillic приходят строго в нечитаемой кодировке, независимо от указанной в настройках). Откопал письмо от саппорта с версиями установленных php и mysql и полез сверяться с требованиями WordPress на его официальном сайте. Там я их так сходу не нашел, но зато наткнулся на них в файле readme. html в дистрибутиве. Увидел единственные требования “PHP версии 4.3 или выше” и “MySQL версии 4.0 или выше” и хмыкнул – про крайнюю требовательность к ресурсам сервера WordPress версии 2.5 не писал только ленивый. И вот тут до меня наконец-то дошло. Если WordPress версии 2.5 отказывался нормально работать без 32 мегабайт памяти, то может версия 2.8 требует еще больше?
Быстрый поиск тут же нашел решение, банальное увеличение памяти для php скриптов через .htaccess до 64 мегабайт и вуаля, все работает! Забавно, что такое простое и лежащее на поверхности объяснение багам WordPress мне совершенно не пришло в голову. Все-таки, целый год перерыва здорово сказывается. Только вот вопрос – неужели новая админка так хороша, чтобы требовать в 2 раза больше памяти? Конечно, тут и мои 40 установленных плагинов повлияли на требования к памяти, но из этих 40 плагинов штук 30 состоят из 1-2 строчек и 1-2 php функций, даже без запросов к mysql. Единственный тяжеловесный и явно мне больше не нужный плагин это Simple Tags, который я после установки WP-Cumulus и Tagnetic Poetry использую лишь для вывода “похожих статей“, а это как из пушки по воробьям. Но речь про админку WordPress, у меня еще глаз не “замылился” и мне кажется, что новая админка ну никак не лучше старой. Во-первых, настройки различных плагинов теперь разбросаны по всем пунктам меню – от “Консоли” с “Записями” до “Инструментов” с “Плагинами“. Чтобы вспомнить где какой настраивается плагин мне приходится открывать все менюшки и крутить мышкой прокрутку, чтобы найти искомое. Если же использовать укороченное меню, чтобы избежать лишних кликов – я должен помнить какая из иконок, что означает. Про цветовые гаммы пастельных цветов я даже и не говорю, откровенно убогие что синяя, что серая.
Старая админка вместе с Lighter Menus на мой взгляд была намного и намного лучше. И вот эта, на мой взгляд, убогая админка стала требовать 64 мегабайта памяти, а сколько она будет требовать при переходе на линейку 2.9-3.0? Напомню, WordPress 2.3+ требовал 16 мегабайт, WordPress 2.5+ 32 мегабайта и теперь WordPress 2.7+ требует 64 мегабайта. При всей моей любви к WordPress темпы повышения его требований разочаровывают. Таким макаром скоро для ведения блога надо будет арендовать выделенный сервер. Шутка, конечно, но невеселая шутка. Уже сейчас большинство хостеров не потянут WordPress 2.8+ с комплектом плагинов, а что будет потом? Ладно, поделился своим недовольством и хватит, пора прикручивать новые функции блогу и писать новые статьи. Большая просьба ко всем, если заметите какой глюк – напишите мне об этом, в комментариях или на мыло. Сложно так сказать все ли плагины или настройки нормально пережили апгрейд до новой версии WordPress.