Как автоматически обновлять 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 комментариев на запись “Как автоматически обновлять WordPress 2.7 и выше моей сборки с моего сайта”

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

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

  2. ScorpAL 15 декабря 2008 в 21:28

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

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

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

  3. Lecactus 15 декабря 2008 в 21:35

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

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

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

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

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

  4. Lecactus 15 декабря 2008 в 21:37

    Это ж сколько

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

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

  5. slaFFik 15 декабря 2008 в 22:04

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

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

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

  7. ScorpAL 15 декабря 2008 в 22:23

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

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

  8. Lecactus 15 декабря 2008 в 22:28

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

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

  9. ScorpAL 15 декабря 2008 в 22:44

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

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

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

    Есть идеи?

  10. Lecactus 15 декабря 2008 в 22:47

    ScorpAL,

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

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

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

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

  11. Lecactus 15 декабря 2008 в 22:48

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

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

  12. ScorpAL 15 декабря 2008 в 22:55

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

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

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

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

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

  13. Lecactus 15 декабря 2008 в 22:56

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

  14. ScorpAL 15 декабря 2008 в 23:04

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

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

    Да. Строчки

    $wp_local_package = 'ru_RU';

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

  15. Lecactus 15 декабря 2008 в 23:07

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

  16. ScorpAL 15 декабря 2008 в 23:10

    Принцип действия «фишки» простой — если там прописано в этом файле 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. ScorpAL 15 декабря 2008 в 23:11

    Да. Строчки

    $wp_local_package = ‘ru_RU’;

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

    А все так же

  18. Lecactus 15 декабря 2008 в 23:14

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

  19. Masya 15 декабря 2008 в 23:18

    пасиба!

  20. ScorpAL 15 декабря 2008 в 23:28

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

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

  21. Lecactus 15 декабря 2008 в 23:31

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

  22. ScorpAL 15 декабря 2008 в 23:42

    Спасибо.

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

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

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

  23. Lecactus 15 декабря 2008 в 23:54

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

  24. Максим 16 декабря 2008 в 1:01

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

  25. Lecactus 16 декабря 2008 в 1:04

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

  26. Lecactus 16 декабря 2008 в 1:15

    нашел
    ТУТ ВАШ ИП — — [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. Dmitriy 16 декабря 2008 в 2:44

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

  28. Lecactus 16 декабря 2008 в 10:26

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