Обновляем WordPress с помощью Subversion

В этой статье я расскажу о том, как можно немного упростить обновление WordPress. Метод особенно удобен, если вам нужно регулярно тестировать плагины на совместимость с новыми версиями движка.
В общем-то, особых секретов нет. Скачать дистрибутив WordPress можно как в виде zip архива, так и с помощью Subversion.
Преимущества второго метода очевидны. Вы сможете с помощью всего одной команды переустановить движок. Причем установить можно как новую версию, так и предыдущую.
Обычным способом вам бы пришлось качать архив, удалять файлы старой версии (не всегда), распаковывать архив, проверять, что находится в wp-content (там могут быть более ранние версии плагинов).
Т.е. используя Subversion вы однозначно сэкономите время, и кроме того, будете уверены, что никакие ваши файлы не будут случайно перезаписаны.
Примечание. Если вы хотите узнать больше об этой системе управления версиями, можете почитать раздел Subversion этого блога и не забывайте об официальной документации (устанавливается из дистрибутива, очень рекомендую почитать).
Теперь рассмотрим процесс получения дистрибутива.
1) Создаем папку, в которую будем устанавливать WordPress. Открываем консоль и переходим в эту папку.
Примечание. Я буду рассказывать на примере консоли. Но, естественно, вы можете воспользоваться SVN клиентом.
2) Определяем, какая версия WordPress вам нужна.
Здесь все просто. Заходим на страницу http://trac.wordpress.org/browser/ и изучаем структуру репозитория.
Основная ветка разработки называется trunk. Это самая последняя версия плюс новые исправления. Кстати, когда я последний раз смотрел, ее возраст был 17 часов.
Ветки, которые распространяются (или распространялись) в виде архивов, находятся в папке tags.
Теперь определяем адрес выбранной ветки. Первая часть адреса для всех веток одинакова – http://svn.automattic.com/wordpress/. К ней добавляем путь в репозитории.
Т.е. основная ветка имеет адрес http://svn.automattic.com/wordpress/trunk
Версия 2.6 доступна по адресу http://svn.automattic.com/wordpress/tags/2.6 и т.д.
3) Загружаем выбранную версию
Для этого выполняем команду
svn checkout адрес_версии .
Например,
svn checkout http://svn.automattic.com/wordpress/trunk .
Обратите внимание. После слова trunk стоит пробел и точка. Это означает, что загружать содержимое trunk нужно в текущую папку.
4) Настраиваем WordPress. Тут все, как и при обычной установке из архива. Нужно переименовать файл wp-config-sample.php в wp-config.php и указать в нем параметры подключения к базе данных. И после этого зайти на страницу sitename.com/wp-admin/install.php
На этом этапе нужно учесть два нюанса.
Первый. В дистрибутивы WordPress файл wp-config.php не входит, поэтому он останется неизменным при обновлении. Но wp-config-sample.php меняется от версии к версии, поэтому для нормальной работы движка, возможно, потребуется вручную обновить wp-config.php.
Второй. WordPress сам обновляет базу данных. Но процесс обновления подразумевает установку более новой версии движка. С помощью Subversion вы можете возвратиться к любой предыдущей версии. Правильное обновление базы при этом, насколько я знаю, никто не гарантирует. В такой ситуации я могу порекомендовать только создание бекапов базы для каждой из версий движка.
4) Обновление дистрибутива. Выполняется командой svn update .... Например:
svn update http://svn.automattic.com/wordpress/trunk .
5) Переключение между версиями. Команда svn switch .... Например, для перехода на версию 2.3 выполняем команду:
svn switch http://svn.automattic.com/wordpress/tags/2.3 .
Как видите, большинство действий выполняются всего одной коммандой.
Теперь пару замечаний об обновлении движка на сервере хостера.
Все приведенные в этой статье советы и рекомендации можно использовать для обновления WordPress на «боевом» сервере.
Естественно у вас должна быть возможность запускать svn. Т.е. нужен SSH-доступ, а на многих shared хостингах его нет.
Кроме того, очень желательно заранее проверить, что все плагины будут работать с новой версией и сделать бекап.
В общем, если нужно администрировать один блог, то выигрыш от использования Subversion незначительный. Но если вам приходится обновлять десятки дистрибутивов WordPress, размещенных на VPS или выделенном сервере, то вариант с Subversion выглядит интереснее загрузки кучи файлов по FTP или распаковки архива на сервере.
Удачного апгрейда!
Понравилась статья? Подписывайтесь на продолжение
!
Опубликовано в Subversion, Web разработка, WordPress Комментарии (19) »
Комментарии (19)
Вы можете отслеживать обсуждение записи с помощью RSS 2.0 ![]()
Вы также можете оставить комментарий, или трекбек с Вашего сайта.









Пару замечаний:
- для апдейта рабочей копии можно сократить команду: svn up
- ну и если делать чекаут, а не экспорт, то неплохо бы запретить доступ к файлам и каталогам, начинающимся с точки.
Согласен. В общем-то и другие команды имеют сокращения:
checkout – co
switch – sw
А насчет запрета я не понял. Точка в данном случае указывает на папку в которую нужно записывать дистрибутив. Если запретить к ней доступ svn ничего не запишет.
я не к этому, я про то, что урл писать в апдейте не обязательно, если текущий каталог находится под версионным контролем
я говорил про запрет апачу отдавать файлы или каталоги, начинающиеся с точки. Пермишены файловой системы тут не причем
Полностью согласен насчет апача.
Просто я ориентировался на локальную установку, с правилами типа
Deny from all
Allow from 127.0.0.1
Администрирование и безопасность сервера в общем-то отдельная тема.
Я кстати слышал что с будущей версии 2.7 автообновление планируют встроить в ВП.
Да, обещают. Только подробного описания этой функции я не нашел.
А как производить обновление что бы не было .svn?
Почему вместо svn update не использовать svn export?
Обновить без svn можно просто распаковав архив на сервере.
svn export экспортирует файлы в репозиторий (изменить репозиторий вам не дадут, если только вы не разработчик WP), а svn update обновляет вашу рабочую копию.
Ну, вообще-то, svn export экспортирует файлы ИЗ репозитория в указанный каталог.
Вы абсолютно правы
Непонятно почему я подумал об импорте
.
Разница между svn export и svn checkout в том, что последняя команда создает "рабочую копию", т.е. размещает в той же папки метаданные svn (находятся в папках ".svn").
export же просто копирует файлы.
Дальше, думаю, понятно. Если вы разработчик плагина и приходится постоянно переключаться между версиями, то намного удобнее работать с "рабочей копией", чем просто с дистрибутивом.
Блог просто про авто обновление попдробнее можете , что нибудь написать?
Что именно подробнее?
Это спамер. Новая веяние. "авто обновление", и сайт указан про авто. Умно.
Спасибо! Убрал его ссылку
Asket свм ты спамер.. Авто обновление и сайт про авто? сам вогнал , что написал? Я пробую делать первый сайт на ворпресс так как вышла версия 2.7 , я просто хотел узнать что икак , можно ли ,что бы не терять времени обновить ее как нибудь автоматически..
Прошу прощения, не разобрался в ситуации…
Просто спамеры уже конкретно надоели.
В версии 2.7 автообновление встроенно в движок. Но в любом случае желательно контролировать этот процесс, т.к. могут быть проблемы с плагинами при переходе на новые версии.
Метод, описанный в этой статье больше подходит для ситуации, когда вам нужно часто переключаться между версиями (например, если вы разрабатываете плагины).
Бггг =))) Ой, тогда я тоже извиняюсь. Но ваш коммент был несколько странным…
Спасибо Владимир! Буду пробовать и учиться.
Пожалуйста! Будут вопросы, пишите.