Как автоматически обновлять WordPress 2.7 и выше моей сборки с моего сайта

Вы попросили – Кактус сделал для вас это!

В новом WordPress 2.7 появилось встроенное обновление, которое как я писал ранее само определяет язык установленной версии и предлагает URL-ы для скачивания и обновления. Ко мне обратилось несколько человек по почте и аське с просьбой сделать автообновление именно для моей версии, т.е. чтобы при автообновлении не менялся перевод на “официальный”.

Порывшись в исходниках я нашел где генерируется запрос и что получает он в ответ, а мой давний друг Михаил подсказал как можно «обойти это» после того как я ему обрисовал проблему и что надо получить,  все оказалось элементарно просто!

Если у вас уже установлена моя версия WordPress 2.7 (скачана до появления этого поста), то достаточно скачать этот небольшой архив и распаковать на сервер в папку блога «как есть» с заменой исходных файлов. В нем содержится измененный файл отвечающий за обновления и обновленный перевод. Дистрибутив WordPress 2.7 также обновлен.

патч изменен- смотрите здесь

Чтобы убедиться что все у вас работает теперь правильно, отключите временно мой плагин “блокировка запросов на новые версии” (если используете), а затем пройдите в меню ИНСТРУМЕНТЫ – ОБНОВЛЕНИЯ. У вас должна ссылка на скачивание новой версии ru_RU отображаться как

http://lecactus.ru/download/wordpress-2.7-ru_RU.zip

. Естественно при выходе новых версий этот УРЛ будет сам меняться на новый? но также с правильным доменом.
Если это так значит все в порядке! Можете включать плагин блокировки проверки обновлений снова
Также вы можете обновляться кроме основного сайта с зеркала: откройте файл wp-includes/update.php
найдите там строку с текстом (имеется ввиду свежескачанный файл приведенный выше):

‘http://lecactus.ru/download/’, $body);

и замените путь на

http://wp2.lecactus.ru/download/

этот сервер находится не в россии (хостинг servage.net) – для кого то это может быть более оптимальный вариант по скорости и он точно доступен 24часа в сутки.
Успешно протестировано обновление на хостинге Мастерхост – проверялось обновление с моей русской версии 2.7-RC2 до моей русской финальной. Чтобы у вас корректно работало автообновление требуется поставить права 777(775,755) на папку wp-content либо создать в ней папку upgrade и дать права 777(775,755) только на нее. Права разные приведены т.к. для разных хостингов может быть по разному. Если что то не работает то ВП сам ругнется в самом начале что надо изменить права
wp27upgrade
Так что не так сильна проблема, как казалось это некоторым личностям…

Связанные записи

28 комментариев

  1. 1 Евгений 15 декабря 2008 в 20:25 (GMT+6)

    супер! огромное спасибо!


  2. 2 ScorpAL 15 декабря 2008 в 21:28 (GMT+6)

    Ох, не нравится мне что все больше и больше файлов ядра модифицируется…

    Кактус, ну вот вроде бы и хочется доверять…
    А с другой стороны настораживает…

    Где гарантии что кто-либо не подменит твой дистрибутив?
    Это ж сколько блогов может полететь?


  3. 3 Lecactus 15 декабря 2008 в 21:35 (GMT+6)

    больше и больше файлов ядра модифицируется…

    вообще то всего ОДИН и тот добавляет лишь одну строчку, не убирая ни одной родной. больше никаких отличий нет от оригинала.
    хранится все на моем сервере и другом на сервере которому можно доверять. а гарантии что не подменят что то на официальном сайте вам кстати никто не может дать – вспомните как когда то подменили там версию 2.1 кажется давно
    и поэтому я и запрещаю где либо выкладывать свой дистрибутив т.к. могу гарантировать целостность только у себя.

    ScorpAL,
    как я уже писал давно – никакого отличия в дистрибутиве от оригинала
    нет кроме файлов перевода и переведенного текста в паре-тройке файлов.
    никаких изменений в ядре нет, только сейчас добавлена одна строка,
    изменяющая путь к загрузке и все. Точно также раньше был плагин
    автоматического обновления который по умолчанию качал все с
    “английского сайта”, а те кто хотел качать с русского или вообще
    любого другого – просто модифицировали путь к файлу в плагине.

    вы же доверяете архиву скачанному с сайта.
    почему тогда не можете доверять тому что вам предлагается
    автоматически скачать. там же доступна ссылка и на ручное скачивание с
    моего сайта. это просто тот же самый архив без плагинов что выкладываю
    я в каждой версии своей. все остальное что вы писали “все больше и
    больше файлов ядра модифицируется…” на самом деле не соответствует
    действительности

    ничего кроме того файла не модифицируется.
    в дистрибе ДОБАВЛЕНЫ лишь опциональные файлы
    лайт-перевода, который опять же по умолчанию выключен и его надо
    принудительно включить добавлением строки в конфиг.
    если вы имеете ввиду те патчи что я выкладывал вчера – это официальные исправления и
    рекомендуемые к использованию. я просто скачал эти файлы и добавил в
    дистрибутив.


  4. 4 Lecactus 15 декабря 2008 в 21:37 (GMT+6)

    Это ж сколько

    вы же используете кучу плагинов и тем как “родных” так и измененных и наверняка даже не подозреваете что в них могут быть “дыры и закладки”, например те же скрытые закодированные ссылки

    а самые недоверчивые могут всегда поставить английскую версию и скачать перевод отдельно здесь http://lecactus.ru/wordpress/latest-russian-translation-for-wordpress/ и вообще лично я непользуюсь автообновлением – попросили – сделал.


  5. 5 slaFFik 15 декабря 2008 в 22:04 (GMT+6)

    Иван, правильно ты все делаешь. Не доверять тебе ни у кого нет оснований. Так что очень хорошую вещь сделал. Поздравляю!


  6. 6 Lecactus 15 декабря 2008 в 22:18 (GMT+6)

    кстати если имелось ввиду вот эта “модификация” http://lecactus.ru/2008/12/13/3422/ – то ничего там модифицированнового нет. дописана стандартная строка которая идет ВО ВСЕХ официальных НЕАНГЛИЙСКИХ дистрибутивах. просто раньше она ни на что не влияла и я ее не добавлял в свою сборку, т.к. я все делаю всегда из исходной английской, а в ней этой строки и не было


  7. 7 ScorpAL 15 декабря 2008 в 22:23 (GMT+6)

    Ну раз пошла такая пьянка, то давай уж и ссылки "СКАЧАТЬ" и "Переустановить автоматически" тоже сделаем с твоего сайта.

    Иначе путаница рано или поздно возникнет.


  8. 8 Lecactus 15 декабря 2008 в 22:28 (GMT+6)

    “СКАЧАТЬ” и “Переустановить автоматически” тоже сделаем с твоего сайта.

    вообще то ОНИ и ТАК идут с моего сайта. что имеете ввиду? если у вас показываются старые, вы не полностью прочитали пост. пока вы не обновите файлы и не сделаете все что написано (откл-вкл плагин) будет показано старое
    в общем смотрите скриншот http://lecactus.ru/images/wp27upgrade-screen.png


  9. 9 ScorpAL 15 декабря 2008 в 22:44 (GMT+6)

    Или я тупой… или… в общем у меня не все так ладно как у тебя на скриншоте.
    Мой скрин.

    Впервые что-то не получается.

    WP 2.7 твой. Апгрейдил 2.6.5 буквально сразу после того как ты зарелизил 2.7.
    Никаких патчей после этого не ставил.

    Есть идеи?


  10. 10 Lecactus 15 декабря 2008 в 22:47 (GMT+6)

    ScorpAL,

    Апгрейдил 2.6.5 буквально сразу после того как ты зарелизил 2.7.
    Никаких патчей после этого не ставил.

    читаем выше в посте

    Если у вас уже установлена моя версия WordPress 2.7 (скачана до появления этого поста), то достаточно скачать этот небольшой архив и распаковать на сервер в папку блога «как есть»

    выложен был 2.7 11го декабря а сегодня 15ое. файл скачай по ссылке выше


  11. 11 Lecactus 15 декабря 2008 в 22:48 (GMT+6)

    Никаких патчей после этого не ставил.

    http://lecactus.ru/download/version27.zip вот этот файл сравни с тем что у тебя стоит
    http://lecactus.ru/2008/12/13/3422/ вот этот пост что ли не читал?


  12. 12 ScorpAL 15 декабря 2008 в 22:55 (GMT+6)

    Если у вас уже установлена моя версия WordPress 2.7 (скачана до появления этого поста)

    11 декабря проапгрейдил 2.6.5 до 2.7. А этот пост появился 15 декабря ;)
    Включен Lite перевод.

    Сейчас (15 декабря) залил этот архив тем самым заменив 5 файлов перевода и update.php

    Результат на скрине

    Где и что я пропустил? Или где и что ты недописал?


  13. 13 Lecactus 15 декабря 2008 в 22:56 (GMT+6)

    ScorpAL, см выше – пропустил


  14. 14 ScorpAL 15 декабря 2008 в 23:04 (GMT+6)

    http://lecactus.ru/2008/12/13/3422/ вот этот пост что ли не читал?

    Нет. Пост не читал. Так как такой проблемы у меня не было. Поэтому и пропустил.

    Да. Строчки

    $wp_local_package = 'ru_RU';

    у меня не оказалось. Сейчас посмотри как будет с ней.


  15. 15 Lecactus 15 декабря 2008 в 23:07 (GMT+6)

    ScorpAL, ну у меня тоже на некоторых сайтах не было. а на большей части была. точно такая же строка есть в “официальном” архиве поэтому и просило оно обновиться при установленной уже версии 2.7. хотя почему в одних местах просило в других нет – загадка природы


  16. 16 ScorpAL 15 декабря 2008 в 23:10 (GMT+6)

    Принцип действия «фишки» простой – если там прописано в этом файле ru_RU и в вашем конфиге тоже WPLANG равный ru_RU (а так у 99% пользователей русской версии), то автообновление будет работать из неправильного(читай “официального“) источника. Не пользуйтесь автообновлением вообще пока.

    А если в конфиге прописано:

    if (strpos($_SERVER['REQUEST_URI'], 'wp-admin')) define ('WPLANG', 'ru_RU'); else define ('WPLANG', 'ru_RU_lite');

    а в файле version.php

    $wp_local_package = 'ru_RU';

    ???

    Может причина в этом?


  17. 17 ScorpAL 15 декабря 2008 в 23:11 (GMT+6)

    Да. Строчки

    $wp_local_package = ‘ru_RU’;

    у меня не оказалось. Сейчас посмотри как будет с ней.

    А все так же


  18. 18 Lecactus 15 декабря 2008 в 23:14 (GMT+6)

    ScorpAL, проверь что в wp-config.php прописано ru_RU в впланг и выключи плагин блокировки обновлений мой и если есть другие (в плагине алл-ин-оне-тулз то и его тоже). обнови пару раз страницу в админке. должно быть нормально. если не поможет впиши в version.php версию например 2.6.5 вместо 2.7 и еще раз обнови – тогда уж точно покажет тебе что вышла новая версия и даст ссылки. потом просто смени назад на 2.7 в файле. проверено на себе.


  19. 19 Masya 15 декабря 2008 в 23:18 (GMT+6)

    пасиба!


  20. 20 ScorpAL 15 декабря 2008 в 23:28 (GMT+6)

    впиши в version.php версию например 2.6.5 вместо 2.7 и еще раз обнови – тогда уж точно покажет тебе что вышла новая версия и даст ссылки. потом просто смени назад на 2.7 в файле.

    Вот теперь сработало. Странно все это…


  21. 21 Lecactus 15 декабря 2008 в 23:31 (GMT+6)

    ScorpAL, ничего странного. просто проверка эта криво сама по себе работает и не всегда сразу выдает что новая версия вышла :). также и с плагинами. иногда на сайте вп.орг вижу уже новую версию плагина а в админке молчок. только через несколько часов бывает срабатывает. как я писал тебе уже по мылу- вообще все эти проверки обновлений – нафиг не нужны. все как параноики наверное уже сразу бегут каждую новую версию плагина качать а раньше юзали по несколько месяцев одну и ту же версию и не страдали. а иногда там исправления смешные делают – добавят язык в комплект и все – новая версия. 99% народу наверное даже не читает что там в changelog-е


  22. 22 ScorpAL 15 декабря 2008 в 23:42 (GMT+6)

    Спасибо.

    Почти всегда читаю changelog.
    И обдумываю, а надо ли это или нет.

    А админка старая (до 2.7) все же для глазок удобнее была. Я не только про меню, а про выделение тех или иных блоков в целом.

    Но.. на вкус и цвет…..


  23. 23 Lecactus 15 декабря 2008 в 23:54 (GMT+6)

    ScorpAL, ну значит ты как и я принадлежим к 1%. большинство же не задумаваясь просто обновляют чтобы не светилось у них напоминание об обновлении. даже в винде обновления не все бывают полезны


  24. 24 Максим 16 декабря 2008 в 1:01 (GMT+6)

    Хорошая идея!
    Только вот работать у меня отказывается. Ссылку показывает правильную, а вот автоматически обновлять не хочет, говорит "ошибка подключения к серверу", хотя все введено правильно.


  25. 25 Lecactus 16 декабря 2008 в 1:04 (GMT+6)

    Максим, а вручную скачивает? и на мыло мне напишите ип своего хостинга я логи посмотрю


  26. 26 Lecactus 16 декабря 2008 в 1:15 (GMT+6)

    нашел
    ТУТ ВАШ ИП – - [16/Dec/2008:00:40:51 +0600] 200 “GET /download/wordpress-2.7-ru_RU.zip HTTP/1.1″ 359034 “http://html-coder.org.ru/wp-admin/update-core.php” “Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.
    2.0″ “-”
    а там где я обновлял и другие я уже посмотрел по логам попробовали так пишет к примеру.

    90.156.153.175 – - [15/Dec/2008:19:03:27 +0600] 200 “GET /download/wordpress-2.7-ru_RU.zip HTTP/1.0″ 2110731 “-” “WordPress/2.7-RC2″ “-”

    т.е. юзерагент другой вообще. проблема скорее у вас с доступом к вашему серверу – неправильн оуказали логин-пароль-адрес фтп или права не выставили. скриншот пришлите лучше что пишет. и размер у вас не тот пишет – вы похоже прервали загрузку


  27. 27 Dmitriy 16 декабря 2008 в 2:44 (GMT+6)

    Спасибо , очень порадовался что появилась возможность автообновления сразу в твою сборку !)


  28. 28 Lecactus 16 декабря 2008 в 10:26 (GMT+6)

    тема себя исчерпала, продолжение обсуждение здесь :-)