Как перенести WordPress с сервера разработки на рабочий сервер?

12 авг. 2010 г., 00:54:41
Просмотры: 62.7K
Голосов: 214

Я выполняю разработку на одном сервере, а для продакшена использую второй. Сейчас я просто делаю дамп базы данных, затем выполняю поиск и замену URL-адресов, после чего копирую файлы и импортирую новый SQL.

Существуют ли лучшие способы сделать это?

4
Комментарии

Для новичков в этом вопросе. Прошёл год, а я всё ещё использую плагин от @MikeSchinkel. У него вышла версия 0.7, на которую я перевёл несколько установок без проблем. http://mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip

Ryan Gibbons Ryan Gibbons
26 авг. 2011 г. 23:35:54

Вот скрипт без использования плагинов, который я выпустил и который значительно упростил мой процесс. http://philipdowner.com/2012/01/script-to-make-wordpress-site-migrations-easier/

Philip Downer Philip Downer
17 янв. 2012 г. 04:12:55

Сегодня есть плагин под названием Duplicator: http://wordpress.org/extend/plugins/duplicator/ Это буквально трёхэтапный процесс, который работает просто отлично. Я уже несколько раз использовал его для переноса сайта из тестовой среды в рабочую.

Matthias Matthias
30 июл. 2012 г. 15:04:00
Все ответы на вопрос 27
13
127

@Insanity5902: Развертывание сайта WordPress с одного сервера на другой всегда было головной болью с самого начала моей работы с WordPress. (Честно говоря, это было проблемой и с Drupal в течение 2 лет до того, как я начал работать с WordPress, так что проблема явно не исключительно в WordPress.)

Меня раздражало, что каждый раз при переносе сайта приходилось тратить столько усилий, часто дублируя одни и те же действия, и это мешало мне развертывать тестовые среды так часто, как хотелось бы. Поэтому около 4-6 месяцев назад я начал работать над плагином для решения проблемы миграции между хостингами и упомянул свои идеи на форуме WP Tavern.

И вот сегодня я практически завершил работу над ним и временно назвал его "WP Migrate Webhosts". Хотя плагин всё ещё находится в стадии бета-тестирования (возможно, даже альфа), учитывая ваш вопрос, я думаю, что готов позволить людям начать его тестировать.

Предполагаемый сценарий использования:

  1. Сначала разработчик загружает все измененные файлы темы и плагинов через FTP,
  2. затем полностью переносит базу данных MySQL на тестовый сервер,
  3. и только после этого запускает плагин для миграции всех ссылок со старого домена на новый. (Мой плагин не решает проблему слияния новых полей или таблиц БД с актуальными данными; ЭТО гораздо более сложная задача, которую я пока не знаю, как решить.)

Вы можете скачать плагин с моего сайта и распаковать его в папку с плагинами (если вы не знаете, как это сделать, то этот плагин не для вас, так как он требует некоторого опыта работы). Я оставлю его доступным до релиза на WordPress.org, после чего его нужно будет искать там.

Для использования потребуется изменить подход в файле wp-config.php: закомментировать четыре (4) стандартные директивы DB_NAME, DB_USER, DB_PASSWORD и DB_HOST, а вместо них зарегистрировать настройки по умолчанию для хостингов и информацию о каждом из них. Вот как может выглядеть соответствующий раздел wp-config.php (обратите внимание, что первая часть — это закомментированный ненужный код, а также на то, что я использую локальные домены .dev для удобства разработки. На Mac VirtualHostX значительно упрощает этот процесс):

// ** Настройки MySQL - можно получить у хостинг-провайдера ** //
/** Имя базы данных для WordPress */
//define('DB_NAME', 'wp30');

/** Имя пользователя MySQL */
//define('DB_USER', 'wp30_anon');

/** Пароль к базе данных MySQL */
//define('DB_PASSWORD', '12345');

/** Хост MySQL */
//define('DB_HOST', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'host'      => 'localhost',
 'sitepath'  => '',        // '' если WordPress установлен в корень
));
register_webhost('dev',array(
 'name'      => 'Локальная разработка Example',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Тестовый сервер Example',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Стейдж-сервер Example',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Продакшн Example',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');

Надеюсь, это в основном понятно. Я постарался сделать код максимально чистым, но, к сожалению, пришлось добавить две загадочные строки require_once() до и после блока регистрации хостингов, так как невозможно "перехватить" WordPress до вызова wp-config.php.

После обновления wp-config.php можно просто использовать URL-адрес wp-migrate-webhosts для перехода на экран администрирования:

http://example.com/wp-migrate-webhosts

Это приведет вас к админ-панели, где будет много пояснительного текста, и вы сможете мигрировать С любого другого домена в один клик после выбора исходного домена (ПРИМЕЧАНИЕ: в примере показан переход С тестового/стейджа/продакшна на локальную разработку, но плагин может мигрировать НА любой домен, где он находится. Это также означает, что плагин отлично подойдет для быстрого развертывания локальной среды разработки на основе существующего продакшн-сайта!):

Скриншот интерфейса WP Migrate Webhosts

Если это неочевидно, "миграция" в данном контексте означает обновление всех ссылок в текущей базе данных в соответствии с настройками текущего хостинга (а "текущий" определяется через $_SERVER['SERVER_NAME']).

Круто то, что плагин реализует базовые миграции, но любой может добавить свои собственные обработчики. Например, если у вас есть плагин галереи, который хранит полные пути к изображениям в БД, вы можете подключиться к действию migrate_webhosts, которое получит метаданные исходного и целевого хостингов, и выполнить необходимые SQL-запросы или использовать API WordPress для миграции. Да, это можно сделать и без плагина, но без него писать весь код с нуля было слишком трудоемко. С плагином же достаточно написать небольшие хуки и забыть о проблеме.

Возможно, в некоторых случаях мои миграции не сработают — я мог что-то упустить. Может, вы поможете улучшить плагин? Все желающие могут написать мне на Gmail (мой алиас — "mikeschinkel").

Кроме того, плагин поддерживает пользовательские метаданные хостингов помимо стандартных, таких как database, user, password, host, domain и т. д. Например, можно добавить googlemaps_apikey для хранения разных API-ключей Google Maps для каждого домена (кто из вас, работая с плагинами Google Maps, не забывал поменять API-ключ при переносе на продакшн? Ну признайтесь! :) С этим плагином, элементом googlemaps_apikey в массиве register_webhost() и небольшим хуком на migrate_webhosts эта проблема исчезнет!

Вот, собственно, и всё. Я публикую этот плагин здесь, на WordPress Answers Exchange, потому что вопрос @Insanity5902 стал для меня триггером. Дайте знать, если он окажется полезным — здесь или по почте.

P.S. Если решите использовать, помните: это альфа/бета, и возможны изменения. Будьте готовы к небольшим правкам, если начнёте сейчас, а потом перейдёте на релизную версию.

P.P.S. Какие у меня цели? Я бы хотел, чтобы этот функционал попал в ядро WordPress, чтобы он стал доступен всем. Но для этого нужно, чтобы множество людей протестировали его и подтвердили, что он решает больше проблем, чем создаёт. Так что если идея вам нравится — пользуйтесь и помогите набрать критическую массу для возможного включения в WordPress!

12 авг. 2010 г. 08:33:19
Комментарии

Отличные решения, но у меня есть пара вопросов: 1) Нужно ли еще определять WP_SITEURL для доступа в админку? 2) Этот инструмент отображается только для администраторов? (не уверен, отображается ли раздел инструментов для не-админов)

Ryan Gibbons Ryan Gibbons
12 авг. 2010 г. 18:14:57

Привет @Insanity5902:

1) Нет необходимости устанавливать WP_SITEURL, плагин делает это за вас. Фактически вы устанавливаете его, когда "регистрируете" "домен" и "путь к сайту" для веб-хоста. В обычной работе WordPress WP_SITEURL должен быть установлен либо в коде, либо в базе данных, чтобы гарантировать, что никто не подделает URL и не совершит вредоносных действий из-за неожиданного значения в $_SERVER['SERVER_NAME']. Плагин WP Migrate Websites устанавливает WP_SITEURL косвенно на основе $_SERVER['SERVER_NAME'], но он сделает это ТОЛЬКО если текущий домен совпадает с одним из доменов, которые вы определили в файле wp-config.php, и никак иначе.

MikeSchinkel MikeSchinkel
12 авг. 2010 г. 19:32:03

2.) Упомянутый мной URL-ярлык фактически выполняет перенаправление в админ-консоль, поэтому он доступен только для пользователей, вошедших в админку. Пока у меня нет специальных проверок только для администраторов. Я никогда раньше не добавлял возможности в плагин, но мне нужно будет полностью изучить этот вопрос в ближайшие недели, поэтому могу поработать над этим в течение следующего месяца. Однако плагин не является разрушительным; он может переносить данные ТОЛЬКО на текущий домен, и процесс повторяем, поэтому даже если не-админ получит доступ, он не сможет нанести вред, по крайней мере я не могу представить такого сценария.

MikeSchinkel MikeSchinkel
12 авг. 2010 г. 19:32:50

@Mike: Можешь добавить его в репозиторий плагинов WordPress? Думаю, это поможет собрать дополнительную обратную связь и привлечь поддержку разработчиков.

hakre hakre
20 авг. 2010 г. 12:40:39

@harke - Я планирую это сделать, когда плагин станет более зрелым. Сначала хочу, чтобы его протестировали 5-10 человек, чтобы убедиться в его надежности и проверить валидность сценариев использования, прежде чем публиковать его в системе рейтингов на форуме плагинов. Я считаю, что этот плагин может стать значимым, если правильно его развивать. Также я хочу полностью его задокументировать перед публикацией, и процесс документирования заставит меня проверить многие предположения, сделанные во время разработки.

MikeSchinkel MikeSchinkel
21 авг. 2010 г. 04:23:33

Спасибо за создание этого плагина. Сейчас я его тестирую, и он работает очень хорошо. Я бы хотел отправить вам отзыв. Где лучше всего это сделать?

Sam Murray-Sutton Sam Murray-Sutton
16 дек. 2010 г. 13:47:11

@Sam Murray-Sutton - Я вижу из своего почтового ящика, что вы разобрались, как мне написать, но если кто-то еще захочет - моя почта указана на странице моего профиля.

MikeSchinkel MikeSchinkel
16 дек. 2010 г. 20:12:41

Я определенно попробую это. Сейчас настраиваю свою первую полную среду и надеюсь, что смогу связать это с моим репозиторием bitbucket. В любом случае: большое спасибо за а) хорошее объяснение (снова) и б) за то, что делитесь классными вещами (снова). Желаю всего наилучшего, Майк!

kaiser kaiser
20 янв. 2011 г. 10:08:56

Это, по сути, тот же процесс, который мы используем с нашим wp-config.php. Возможность выкладывать код на staging-сервер без того, чтобы все сломать - это единственный способ работать. Мы не делаем выгрузку и загрузку БД через WP, а используем mysql-клиент, что так же эффективно, хоть и немного медленнее.

Tom Tom
20 апр. 2011 г. 18:23:18

@mike как я могу использовать этот метод для переноса одного сайта из мультисайтовой (локальной) установки?

Marja Marja
11 мар. 2011 г. 10:00:02

@MikeSchinkel - возможно, стоит добавить это в список: http://wordpress.stackexchange.com/questions/24314/wordpress-database-synch-between-dev-and-prod/24982#24982

marfarma marfarma
5 авг. 2011 г. 08:30:58

/wp-migrate-webhosts выдает 404 ошибку, а /wp-admin - 'ошибку соединения с базой данных'

Steve Steve
11 окт. 2012 г. 04:37:23

Итак, каково текущее состояние этого плагина? Выглядит очень привлекательно, но мне бы хотелось что-то зрелое и хорошо проверенное. Этот пост — единственная информация, которую я смог найти о нем.

Kevin C. Kevin C.
1 нояб. 2012 г. 20:27:23
Показать остальные 8 комментариев
6
39

Когда это возможно, я устанавливаю WP_HOME и WP_SITEURL в файле wp-config.php. Это в сочетании с дампом базы данных и её импортом является самым простым из всех известных мне решений.

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php

12 авг. 2010 г. 04:48:58
Комментарии

Когда может быть невозможно установить эти параметры? Это звучит немного проще, чем изменять данные в базе данных.

jfklein jfklein
20 окт. 2011 г. 17:10:49

@jfklein Я почти всегда работаю с WordPress Network, который несовместим с этими константами.

User User
20 окт. 2011 г. 20:44:54

Делаю то же самое. К сожалению, не все темы поддерживают это. Например, 'Responsive Theme' из ThemeID. Поиск по дампу/всем таблицам 'http://localhost' (или любое другое локальное имя), особенно в wp_options, и выполнение поиска и замены часто неизбежны.

Frank N Frank N
26 мая 2013 г. 11:42:50

@FranKee Я создал плагин https://wordpress.org/plugins/pitta-migration/, который использует константы для обновления таблицы wp_options, что должно охватить большинство тем и плагинов

icc97 icc97
21 авг. 2015 г. 13:39:36

@icc97: Отлично. Посмотрю. PS: Красивое изображение в заголовке, хорошо передает ситуацию.

Frank N Frank N
21 авг. 2015 г. 15:05:14

@FranKee спасибо :)

icc97 icc97
22 авг. 2015 г. 23:42:18
Показать остальные 1 комментариев
3
29

Мой любимый хак: добавьте настройку в ваш /etc/hosts, чтобы домен продакшена указывал на вашу dev-машину, но только на вашем компьютере. Для деплоя в продакшен вы синхронизируете файлы через rsync и переносите базу данных.

Риски этой стратегии очевидны: вы можете перепутать dev-среду с продакшеном.

Но это легко исправить.

2 мар. 2011 г. 21:33:55
Комментарии

Да! Я так рад, что я не единственный, кто об этом подумал! Любая разница между dev и prod — это плохо. Полное устранение этой разницы гораздо лучше, чем попытки обойти ее. И эта настройка не требует никаких усилий. При необходимости можно даже проводить тестирование на виртуальной машине с измененным файлом hosts.

Alexander Bird Alexander Bird
21 нояб. 2011 г. 21:19:37

Мне очень нравится этот метод, но как вы обрабатываете перенос базы данных между средами (push/pull)?

Joel Peltonen Joel Peltonen
26 апр. 2015 г. 23:41:51

Что касается риска перепутать dev и prod, я использую плагин для Chrome, который отображает IP-адрес веб-страницы. Вы сразу поймете, что работаете локально, когда увидите 127.0.0.1

kosinix kosinix
12 мая 2016 г. 03:12:55
0
10

Мне хотелось чего-то подобного, когда я переходил на WordPress несколько месяцев назад, поэтому я написал довольно простой скрипт для оболочки, использующий rsync и mysqldump через ssh:

http://snarfed.org/sync_wordpress

Он не сложный и не веб-ориентированный, но меня вполне устраивает.

31 авг. 2010 г. 19:28:10
4

WP Engine — это новый сервис, предлагающий "Стадирование в один клик":

У WPEngine есть эксклюзивная функция под названием "стадирование". Вот как это работает: прежде чем вносить рискованные изменения в свой блог, нажмите кнопку "снимок". Мы создаем полную копию вашего блога и размещаем её в отдельной, безопасной зоне. Вы можете экспериментировать с чем угодно — это не затронет основной сайт. Только когда вы будете готовы внести изменения в основной сайт, вы сможете перенести их туда.

Выглядит как очень удобный способ быстрого перехода от разработки к продакшену, особенно для уже работающего сайта.

12 авг. 2010 г. 18:32:29
Комментарии

Это действительно очень удобная опция, которая отлично подойдет многим! Конечно, она не работает с встроенными URL и не помогает тем, кто разрабатывает локально и использует IDE с отладчиком. Но если WPEngine сможет создать механизм, объединяющий локальное развертывание, тогда это будет действительно что-то стоящее (Technosailor, ты слышишь?)

MikeSchinkel MikeSchinkel
12 авг. 2010 г. 19:35:18

Согласен, это было бы отличным дополнением.

Travis Northcutt Travis Northcutt
20 авг. 2010 г. 14:55:07

Функция snapshot копирует данные только из production в staging, но не наоборот. Это отлично подходит для тестирования изменений, но не поможет при развертывании в production.

sam sam
2 мая 2013 г. 23:44:13

@sam на самом деле, они недавно начали внедрять возможность копирования из staging в production. http://wpengine.com/2013/04/user-portal-v2-and-staging-to-production/

Travis Northcutt Travis Northcutt
2 мая 2013 г. 23:56:48
0

Плагин Duplicator: Это плагин, над которым я работаю. Сейчас он находится в бета-версии, но уже отлично справляется с большинством сайтов. В данный момент он ориентирован на небольшие установки WordPress. http://wordpress.org/extend/plugins/duplicator/

Ресурсы: Дополнительные ресурсы по плагину можно найти здесь: http://lifeinthegrid.com/duplicator/

Сообщество: Пожалуйста, делитесь своими успехами или любыми проблемами, с которыми вы столкнулись! Чтобы упростить управление обсуждениями, размещайте вопросы на форумах плагина WordPress.org. Пожалуйста, не публикуйте данные логов плагина на открытых форумах. Данные логов можно отправить на наш сайт поддержки.

16 мар. 2012 г. 16:46:45
0

Вы можете ознакомиться с продуктом от iThemes под названием BackUpBuddy. Я использовал его всего дважды, и каждый раз возникали небольшие сложности, но в целом он выглядит перспективным.

20 авг. 2010 г. 14:01:59
0

По состоянию на 2017 год, вот два лучших способа, которые я нашел для переноса базы данных WordPress из среды разработки в рабочую среду.

WP Migrate DB Pro / WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

Эти плагины WordPress позволяют передавать, загружать и синхронизировать таблицы базы данных между установками WordPress. Это намного лучше, чем просто поиск и замена, по многим причинам, потому что они:

  • Экспортируют вашу базу данных в виде дампа MySQL (аналогично phpMyAdmin)
  • Выполняют поиск и замену URL-адресов и путей к файлам
  • Обрабатывают сериализованные данные
  • Позволяют сохранить базу данных на компьютер в виде SQL-файла

Я поддерживаю оплату за проделанную работу, поэтому рекомендую поддержать г-на Брэда Туеснара и купить лицензионную версию оригинального плагина. WP Sync DB — это реплика, и поддержка в нем всегда отстает. С этим плагином процесс чрезвычайно прост:

  1. Установите/активируйте плагин на локальном сервере и в рабочей среде
  2. Настройте передачу (push) с локального сервера/сервера разработки на рабочий сервер
  3. Задайте правила для выбора таблиц для передачи и определите правила поиска и замены
  4. Готово!

Database Search & Replace for WordPress Databases от InterconnectIT

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Это бесплатный инструмент, а не плагин, который устанавливается в корневую директорию вашей рабочей установки WordPress. Он не так удобен, как WP Migrate DB Pro, поскольку требует выполнения нескольких ручных шагов, но, тем не менее, это отличный вариант, который стабильно работает. При использовании этого подхода процесс выглядит так:

  1. Создайте резервную копию локальной базы данных — это абсолютно необходимо, так как мы скоро будем её восстанавливать
  2. Добавьте скрипт в папку в корневой директории вашей установки
  3. Запустите поиск и замену в вашей базе данных
  4. Экспортируйте базу данных и сохраните её для рабочей среды
  5. Восстановите резервную копию из шага №1, чтобы вернуть локальную базу данных
  6. Подключитесь к рабочей базе данных и создайте её резервную копию (как всегда следует делать перед такими операциями)
  7. Импортируйте экспорт, который мы сделали ПОСЛЕ выполнения поиска и замены на шаге №4

Можно использовать более быстрый подход, но он потребует остановки рабочего сайта, что, на мой взгляд, неприемлемо. Ведь мы называем это рабочей средой не просто так, верно?

24 февр. 2017 г. 18:02:52
1

Это выглядит многообещающе. Мы работаем над несколькими скриптами для обработки миграции части данных, например wp-options, изменения путей в базе данных и копирования медиафайлов.

Проблема в том, что основной сайт продолжает расти, пока другой находится в разработке. На одном из сайтов, с которыми мы работаем, появляется 20 постов в день и более 3000 комментариев в сутки. Это слишком большой объем данных для переноса через phpmyadmin или командную строку. Кроме того, перемещение данных почему-то всегда вызывает проблемы с кодировкой UTF.

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

Я фиксирую весь свой код в SVN и разворачиваю его через FTP с сервера (Beanstalk). Однако это не вносит изменения в базу данных автоматически и не активирует новые плагины.

Сейчас мой план - создать манифест-файл во время разработки, который будет содержать все изменения для рабочего сайта.

Например, файл будет содержать удобочитаемые строки с указанием:

  • плагины для активации
  • wp-options для переноса
  • изображения для перемещения
  • страницы для переноса

Затем мой плагин будет обнаруживать этот манифест-файл и вносить все изменения на тестовый сайт.

После тестирования и проверки, что все работает корректно, можно быть уверенным, что это сработает и на рабочем сайте.

Пока этот плагин всего лишь идея, но у меня уже есть часть кода для него.

Также, если вам нужно просто изменить URL в базе данных, вы можете использовать следующий SQL-запрос:

просто замените $old$ на старый домен и $new$ на новый

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;
25 авг. 2010 г. 01:30:02
Комментарии

Просто заметка, мой sql-запрос может повредить ваши сериализованные данные.

s:14:blogs.prod.com имеет закодированную длину 14. После выполнения кода, теперь у нас

s:14:dev.prod.com

что является повреждёнными данными. Должно быть

s:12:dev.prod.com

используйте с осторожностью.

Andrew Andrew
25 авг. 2010 г. 03:04:09
8

Я лично занимаюсь этой проблемой в своем проекте на Github под названием Autopress. У меня пока нет идеального решения, но я приближаюсь к нему, особенно с плагином wpstage от ребят из wpengine.

12 авг. 2010 г. 01:59:11
Комментарии

Только что проверил ваш скрипт. Отлично. Если я правильно понял, он устанавливает чистый WP на сервер. Вопрос в том, как мигрировать с разработки на продакшен. Может ли он помочь с этим?

Sruly Sruly
12 авг. 2010 г. 02:18:52

Это он? http://github.com/vluther/Autopress Советую добавлять ссылки в ваши ответы, чтобы люди могли сразу перейти по ним!

artlung artlung
12 авг. 2010 г. 03:42:28

@Mike Lee: Да, вы можете голосовать за комментарии. Смотрите, я проголосовал за комментарий artlung. Ищите стрелку вверх при наведении слева от комментария.

MikeSchinkel MikeSchinkel
12 авг. 2010 г. 07:06:51

Я работаю над способом держать всё под контролем версий и затем разворачивать изменения из разработки в продакшен. У меня уже получилось сделать это без проблем для нескольких сайтов, но остаются некоторые детали, которые нужно доработать.

Vid Luther Vid Luther
14 авг. 2010 г. 16:51:07

Не уверен, что это то, что нужно, но у WP Engine есть плагин для миграции сайтов между хостингами. Он называется Snapshot (Прямая ссылка).

joelhaus joelhaus
13 мар. 2011 г. 22:23:07

http://plugins.wpengine.com/wpengine-snapshot.zip больше не доступен :(

sam sam
2 мая 2013 г. 23:49:50

Похоже, он удалил свой аккаунт на GitHub.

Brian Ortiz Brian Ortiz
26 мая 2013 г. 20:44:28

Да, этот проект точно исчез.

icc97 icc97
21 окт. 2014 г. 17:15:39
Показать остальные 3 комментариев
1

Два проекта Google Summer of Code, которые имеют схожую цель:

27 апр. 2011 г. 11:46:56
Комментарии

Похоже, ни один из этих проектов так и не был запущен?

icc97 icc97
21 окт. 2014 г. 17:02:39
0

Я использую http://wordpress.org/plugins/wp-clone-by-wp-academy/. Отличный плагин!

Всего 3 шага:

  1. Установите плагин на обоих сайтах.
  2. Создайте резервную копию старого сайта через плагин.
  3. Возьмите URL резервной копии, вставьте его в плагин на новом сайте, нажмите "Go" - миграция завершится за несколько секунд!

Плагин автоматически корректирует все URL, включая замены в сериализованных строках, поэтому нет риска потерять настройки виджетов и т.д.

Единственные проблемы возникали с сайтами, имеющими большие базы данных (~300MB), когда при импорте резервной копии происходило превышение времени выполнения PHP-скриптов.

21 окт. 2013 г. 21:05:24
0

Обычно я вхожу в phpMyAdmin, загружаю базу данных и редактирую содержимое wp_options>siteurl и wp_options>home, указывая нужный домен. Если вам нужно обновить URL-адреса внутри записей и страниц, вы можете выполнить поиск и замену URL и пути к медиафайлам/загрузкам в .SQL файле перед загрузкой. Это быстрая процедура.

12 авг. 2010 г. 18:21:39
0

Я использую команду экспорта Subversion для установки файлов WordPress (http://core.svn.wordpress.org/tags//), а также всех плагинов из репозитория (http://plugins.svn.wordpress.org//tags//), затем просто архивирую тему и пользовательские плагины и устанавливаю их обычным способом. Как только всё это работает без контента, я экспортирую тестовую базу данных, выполняю поиск/замену URL и пути к файлам (используется для медиафайлов), импортирую в пустую базу данных, а затем просто меняю данные базы данных в файле wp-config.php. Обычно весь процесс занимает у меня около 10-20 минут.

12 авг. 2010 г. 02:32:11
0

Хотя здесь нет недостатка в хороших решениях, в духе обмена я решил добавить свой bash-скрипт для деплоя в общую кучу: https://github.com/jplew/SyncDB

SyncDB — это bash-скрипт для деплоя, предназначенный для устранения рутины при синхронизации локальной и удаленной версий сайта на Wordpress. Он позволяет разработчикам, работающим в локальной среде (например, MAMP), быстро "отправлять" или "забирать" изменения на продакшн-сервер или с него одной командой в терминале.

Этот скрипт хорошо работает с WP-Skeleton от Mark Jaquith и использует mysqldump, git и rsync для синхронизации всего сайта — базы данных, кода и медиа — в два простых шага:

./syncdb
git push hub master
3 сент. 2013 г. 13:58:32
0

Это самый простой способ из всех возможных: https://themes.artbees.net/docs/website-migration/
Потребуется всего два клика. Один для экспорта, другой для импорта.

Это возможно с помощью плагина All in one WP Migration. По ссылке выше показано, как им пользоваться.

25 июл. 2018 г. 10:00:28
0

Ещё один полезный инструмент для переноса сайтов на сервере — это WordPress CLI. В этой статье есть хороший обзор его возможностей, но особенно полезен раздел "Поиск и замена" для поиска всех ссылок на старый/тестовый URL сайта:

Продвинутое управление WordPress с помощью WP-CLI

1 окт. 2015 г. 13:07:09
0

Поскольку я запускаю свои сайты на IIS (я также использую ASP.NET, поэтому мне нужна Windows), я использую WebPI от Microsoft для установки нового экземпляра, затем копирую шаблон и использую импорт/экспорт для переноса данных.

Это не идеально, но весь процесс занимает меньше часа.

Конечно, было бы здорово иметь решение в один клик, но это то, что я нашел наиболее удобным для себя.

12 авг. 2010 г. 02:06:15
0

Я уже некоторое время использую плагин BackupBuddy. Он позволяет создавать резервные копии базы данных и всех файлов, скачивать их в формате zip или отправлять напрямую на другой сервер через FTP. Кроме того, плагин автоматически выполняет поиск и замену URL. Обычно весь процесс занимает у меня около 5 минут. А поскольку все файлы запакованы в zip, процесс загрузки и скачивания происходит гораздо быстрее. И нет, я не работаю на них, но этот плагин действительно значительно упростил весь процесс.

21 окт. 2013 г. 17:52:52
1

Позвольте поделиться одним из моих любимых решений :-)

// проверенный способ разделения локального и рабочего окружения (включая тестирование в локальной сети, например с мобильных устройств):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // простой localhost (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // обращение по локальному имени (настройте под себя)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (мобильное) устройство в локальной сети

$table_prefix  = NULL; // гарантия области видимости

if ( $GLOBALS['is_local'] )  // ЛОКАЛЬНАЯ ветка ------------------------
{
        ....
}
else  // ТЕСТОВАЯ/РАБОЧАЯ ветка -------------------
{

...и затем вы продолжаете настройку от этого места. DB_NAME, DB_USER... table_prefix. Лично я включаю ALTERNATE_WP_CRON на локальном окружении (чтобы избежать некоторых раздражающих предупреждений), WP_DEBUG выключен на обоих (если вы не разработчик) или только на рабочем (если вы разработчик), еще одна настройка ini_set('display_errors', '0'); для рабочего окружения также может быть полезной, и наконец, как упоминалось выше: WP_HOME и WP_SITEURL с соответствующими локальными/актуальными URL.

Это практически всё, ничего не остаётся выше классической строки WordPress 'Всё, можно прекращать правки!'...

Часть с 192.168. позволяет вам проводить локальное тестирование (например, с планшетов или телефонов) в пределах вашей локальной сети.

Переменная $GLOBALS['is_local'] может быть полезна и в разработке тем, для дополнительного отладочного вывода и т.д...

30 мар. 2013 г. 14:08:04
Комментарии

Вы можете использовать WordPress Skeleton wp-config.php, который устанавливает константу WP_LOCAL_DEV для достижения аналогичного результата

icc97 icc97
21 авг. 2015 г. 13:45:20
2

RAMP — это новый плагин для развертывания контента от Crowd Favorite, и он выглядит действительно стильно. Однако его цена составляет $250, поэтому я пока не тестировал его. Тем не менее, он может окупиться за счет экономии времени, так что я рассматриваю его покупку.

Главное преимущество RAMP перед большинством других упомянутых методов заключается в том, что он может интеллектуально объединять записи, комментарии и т. д. Это не просто импорт дампа MySQL, а скорее система контроля версий для базы данных. Например, при развертывании записи он также развернет метки для этой записи, если они еще не существуют в рабочей среде.

7 авг. 2012 г. 08:29:16
Комментарии

RAMP предназначен для развертывания контента, в отличие от развертывания кода, но я согласен, выглядит превосходно. Теперь у них есть демонстрация RAMP, где можно опробовать функционал.

Emyr Thomas Emyr Thomas
19 нояб. 2012 г. 16:17:00

Вопрос был о развертывании контента, а не кода, и я начал свой ответ со слов "RAMP — это новый плагин для развертывания контента..."

Ian Dunn Ian Dunn
19 нояб. 2012 г. 18:33:38
0

Возможно, этого сервиса не существовало, когда вы задавали вопрос, но я уже несколько месяцев использую сервис под названием Blogvault, и он прекрасно справляется с этой задачей. Я выполнил более 50 миграций (между разными доменами, поддоменами и хостингами) без единой проблемы, и это занимает совсем немного времени.

Это платный сервис (оплата за домен/месяц), но стоимость невысокая.

9 апр. 2012 г. 05:20:02
1

Коллега нашел это. Интересная концепция, хотя, похоже, не работает между серверами. Я все еще изучаю, но выглядит так, что может отлично подойти для тестового инстанса.

http://code.google.com/p/deploymint/

30 авг. 2011 г. 22:39:39
Комментарии

Четыре месяца назад я не смог заставить этот плагин работать... И до сих пор он версии 0.1 на code.google

brasofilo brasofilo
4 мая 2012 г. 17:46:53
0

Еще одно платное решение: фреймворк темы Xtreme One выпустил версию 1.2 с Xtreme Backup, который позволяет "экспортировать или импортировать настройки ваших дочерних тем, макетов или виджетов со всеми их параметрами/содержимым в виде XML-файла."

20 апр. 2011 г. 14:45:53
0

После того как я некоторое время следовал этому ответу, я создал свой небольшой плагин — Pitta Migration. Причины следующие:

  1. Из всех опробованных здесь идей — самая простая — это настройки WP_HOME и WP_SITEURL
  2. Затем я использую их для установки двух соответствующих URL-адресов в таблице wp_options — это помогает, когда плагины/темы игнорируют эти константы
  3. Это дает мне 100% уверенность в том, что именно изменяется в моей базе данных
  4. Также это работает кроссплатформенно (все эти bash-скрипты плохо работают в Windows)
  5. Легко понять, что делает плагин
  6. Не требуется никакой конфигурации, кроме двух констант — сделайте дамп базы данных (mysqldump) и импортируйте его в локальную базу, и плагин увидит, что константа и данные в таблице различаются, и обновит их, чтобы они соответствовали
  7. Никакого поиска и замены текста
  8. Нет риска испортить базу данных — я использую WordPress Database Object для выполнения двух обновлений и ничего более
  9. Он отлично работает с такими решениями, как WordPress Skeleton, где все можно хранить в системе контроля версий, а локальную конфигурацию можно задать отдельно
  10. Я разместил его в каталоге плагинов WordPress и на Github, так что он бесплатный, полностью открытый, его легко форкнуть и установить
  11. После установки о нем можно забыть, и он просто работает — он выводит небольшое уведомление о том, что база данных была изменена
  12. Он должен работать с любым процессом резервного копирования / FTP / восстановления
21 авг. 2015 г. 13:27:08
0

Если вам нужно добиться непрерывной синхронизации, я рекомендую использовать rsync вместе с пользовательским заданием cron для перезаписи любых URL или специфичных для сайта данных.

27 авг. 2011 г. 05:12:29
0

На мой взгляд, самый простой способ, которым я пользуюсь - это ручной перенос. Просто скопируйте папку wp-content и файл wp-config.php на новый хостинг. Экспортируйте базу данных со старого хостинга и импортируйте её в новую базу данных на новом хостинге.

В базе данных нового хостинга перейдите в таблицу wp-options и измените там URL сайта и URL блога на новый адрес хостинга вместо старого. Например, с http://localhost/wp на http://example.com.

Теперь в файле wp-config просто измените информацию о базе данных и пользователе на данные нового хостинга.

Войдите в новую админку wp-admin, перейдите в настройки и сохраните постоянные ссылки.

Готово. Я считаю, что это просто и не требует использования каких-либо плагинов.

Я пробовал разные плагины для переноса, и у всех были различные проблемы.

Поэтому я предпочитаю этот простой ручной метод переноса, который, на мой взгляд, гораздо удобнее.

30 окт. 2017 г. 07:28:18