Як: легко перемістити встановлення WordPress від розробки до виробництва?


199

Я займаюся розробкою однієї коробки, а другу використовую для виробництва. Зараз я просто скидаю базу даних, а потім знаходжу заміну змін у URL-адресах; потім скопіюйте файли та імпортуйте новий SQL.

Чи є кращі способи зробити це?


2
Для новачків до керування. Через рік, і я все ще використовую плагін @MikeSchinkel. У нього 0,7, на який я без проблем перемістив пару встановлень. mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip
Ryan Gibbons

Ось сценарій без плагінів, який я випускаю, який дуже допоміг моєму процесу. philipdowner.com/2012/01/…
Філіп Даунер


6
Сьогодні існує плагін під назвою Duplicator: wordpress.org/extend/plugins/duplicator Це буквально триетапний процес і працює як шарм. Використовували це вже кілька разів для розгортання веб-сайту з тестового середовища в реальному.
Маттіас

Відповіді:


122

@ Insanity5902 : Розгортання сайту WordPress з однієї скриньки в іншу було PITA з першого дня, коли я почав працювати з 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 settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');

/** MySQL database username */
//define('DB_USER', 'wp30_anon');

/** MySQL database password */
//define('DB_PASSWORD', '12345');

/** MySQL hostname */
//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'  => '',        // '' if WordPress is installed in the root
));
register_webhost('dev',array(
 'name'      => 'Example Local Development',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Example Test Server',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Example Staging Server',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Example Live Site',
 '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

Наведене вище перенесе вас на екран адміністратора, як у наведеному нижче, який містить неабиякий текст опису та дозволяє перейти з будь-якого з інших доменів веб-хостингу одним клацанням миші після вибору доменів для міграції ( ПРИМІТКА : цей приклад показує, що відбувається ВНИЗ від тестових / сценічних / прямих серверів до локальної розробки, але будьте впевнені, що він може перейти до будь-якого домену, де він може бути розташований. Це також означає, що плагін буде чудовим для того, щоб зайняти існуючий веб-сайт та швидко налагодити локальне середовище розробки! ):

введіть тут опис зображення

Якщо незрозуміло, " міграція " в цьому контексті означає оновити всі посилання в поточній базі даних, щоб відповідати поточно визначеному веб-хосту (а " поточний " обнюхується шляхом перевірки $_SERVER['SERVER_NAME'].)

Що плагіна в плагіні - це те, що він здійснює основні міграції, але кожен може підключити його та здійснити власну міграцію . Наприклад, якщо ви додасте плагін галереї, який зберігає повні шляхи до зображень у базі даних, ви можете підключити migrate_webhostsдію, яка буде передана веб-хосту " з " та " до " веб-хосту як масив метаданих, і вам буде дозволено виконувати все, що вам потрібно зробити в базі даних, використовуючи SQL або будь-які застосовні функції WordPress API для міграції. Так, будь-хто з нас міг би це зробити без плагіна, але без плагіна я виявив, що написання всього необхідного коду доклало більше зусиль, ніж варто. За допомогою плагіна просто простіше написати ці крихітні гачки і перемогти їх.

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

Крім того , плагін був розроблений , щоб прийняти користувачем визначення метаданих веб - хостів на додаток до тих, що він визнає , як database, user, password, host, і domainт.д. Прекрасний приклад може бути , googlemaps_apikeyде ви можете зберігати різні ключі API для кожного домена , якому потрібно плагін вашого Google Map в правильно працювати (хто з вас, хто використовував плагін Google Maps, не розгорнув додаток на реальному сервері та забув змінити код на правильний ключ API? Давайте, будьте чесними ... :) За допомогою цього плагіна, googlemaps_apikeyелемент у вашому register_webhost () масив і невеликий користувальницький migrate_webhostsгачок можна ефективно усунути , що як проблема!

Ну це про це. Я запускаю цей плагін тут на біржі відповідей WordPress, оскільки питання @ Insanity5902 викликало його. Повідомте мене, якщо це корисно, тут, якщо це доречно, чи електронною поштою, якщо ні.

PS Якщо ви все-таки вирішите скористатися цим, пам’ятайте, що це альфа / бета, і це означає, що це зміниться, тому будьте готові до невеликої операції, якщо ви хочете скористатися ним зараз, а потім скористайтеся випущеною версією після того, як її побили багато рук.

PPS Які мої цілі щодо цього? Я люблю бачити, як це мігрує в ядро ​​WordPress, щоб усі мали доступ до нього. Але перед цим навіть можна вважати, що багатьом людям доведеться зацікавити його використанням, щоб переконатися, що він фактично вирішує більше проблем, ніж це потенційно може створити. Тож якщо ідея вам подобається, то будь-якими способами використовуйте її та допоможіть мені набрати обертів для її можливого включення в ядро ​​WordPress.


Хороші рішення У мене є кілька питань, хоча 1) Вам все-таки потрібно визначити WP_SITEURL, щоб потрапити в область адміністратора? 2) Чи відображається засіб лише для користувачів адміністратора? (Не впевнений , якщо розділ відображає інструмент для НЕ адміна)
Райан Гіббонс

Привіт @ Insanity5902: 1) Не потрібно встановлювати WP_SITEURL, плагін для вас. Ви насправді встановлюєте це, коли ви "реєструєте" домен "та" веб-сайт "для веб-хостингу. У звичайній WordPress операції WP_SITEURL потрібно встановити або в коді, або в базі даних, щоб ніхто не підробляв URL-адресу і не робив нечесних дій, оскільки несподіване значення в $ _SERVER ['SERVER_NAME']. Плагін WP Migrate Websites встановлює WP_SITEURL опосередковано на основі $ _SERVER ['SERVER_NAME'], але це буде ТІЛЬКИ, якщо поточний домен відповідає одному з доменів, визначених у вашому файлі wp-config.php, нічого іншого.
MikeSchinkel

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

1
/ wp-migrate-webhosts виробляє 404, а / wp-admin створює "помилку при встановленні з'єднання з базою даних"
Стів

5
Отже, який стан справ у цього плагіна? Це виглядає сильно привабливо, але я хотів би щось зріле і добре перевірене. Ця публікація - єдина інформація, яку я можу знайти в ній.
Кевін К.

35

Коли це можливо, я встановив WP_HOMEі WP_SITEURLввійшов wp-config.php. Це в поєднанні із скиданням та імпортом бази даних є найпростішим із усіх знайомих мені рішень.

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


1
Коли б їх неможливо було встановити? Це звучить трохи простіше, ніж зміна речей у базі даних.
jfklein

2
@jfklein Я майже завжди працюю з мережею WordPress, яка несумісна з цими константами.
Annika Backstrom

1
Робимо те саме. На жаль, не всі теми шанують це. тобто "Репсоніфікована тема" від ThemeID. Пошук дампа / всіх таблиць для " localhost " (або що ви вибрали місцеве ім'я), особливо wp_options та здійснення пошуку та заміни, часто неминучий.
Френк Нокк

@FranKee Я створив плагін wordpress.org/plugins/pitta-migration, який використовує константи для оновлення таблиці wp_options, яка повинна охоплювати більшість тем і плагінів
icc97

@ icc97: Прекрасно. Поглянемо на це. PS: Гарне зображення заголовка, зображує ситуацію.
Френк Нокк

27

Мій улюблений хак; додайте налаштування до свого, /etc/hostsщоб зробити точку домену виробництва у вікні розробки, просто на вашій машині. Для розгортання у виробництві ви rsync всі файли та пересунути базу даних.

Ризики цієї стратегії чіткі; ви можете переплутати ваше середовище розробки з виробничим середовищем.

Це все ще легко виправити.


5
Так! Я так рада, що я не була єдиною людиною, яка думала про це! будь-яка різниця між розробником та продуктом погана. Видалити цю різницю взагалі набагато краще, ніж намагатися обійти її. І ця налаштування взагалі не спрацьовує. Можна навіть тестувати на віртуальній машині з модифікованим файлом хостів, якщо це потрібно.
Олександр Птах

2
Мені цей метод дуже подобається, але як ви обробляєте базу даних / тягнення?
Ненотлеп

Що стосується ризику плутати розробник з prod, я використовую плагін Chrome, який відображає IP-адресу веб-сторінки. Ви дізнаєтесь, що перебуваєте на локальному рівні, коли його 127.0.0.1
kosinix

9

Я хотів чогось подібного, коли перейшов на WP кілька місяців тому, тому написав досить простий скрипт оболонки, який використовує rsync та mysqldump через ssh:

http://snarfed.org/sync_wordpress

Це не складне або веб-базування, але я задоволений цим.


8

WP Engine - це нова послуга, яка пропонує "Постановку в один клік":

WPEngine має ексклюзивну функцію під назвою "постановка". Ось як це працює: Перш ніж внести страшні зміни в свій блог, натисніть кнопку "Знімок". Ми робимо повну копію вашого блогу і встановлюємо його в окрему, безпечну зону. Ви можете грати з чим завгодно; нічого не живе. Лише тоді, коли ви готові реалізувати його, ви торкаєтесь свого головного сайту.

Виглядає як дуже простий спосіб швидкого переходу від розробки до виробництва, особливо з уже існуючим сайтом.


3
Це дуже приємний варіант, і він буде чудовим для багатьох людей! Це, звичайно, не працює для вбудованих URL-адрес, а також не допомагає людям, які розвиваються локально, щоб вони могли використовувати IDE з налагоджувачем. Тепер, якщо WPEngine може створити взаємодію, яка об'єднує локальний розгортання, то це дійсно буде щось (Technosailor, ви слухаєте?)
MikeSchinkel,

Погодився, це було б фантастичним доповненням.
Травіс Нортчетт

Функція знімка копіюється лише від виробництва до постановки, а не навпаки. Це чудово для тестування змін, але не допоможе розгортанню у виробництво.
сам

2
@sam, вони нещодавно почали впроваджувати можливість копіювання з постановки на виробництво. wpengine.com/2013/04/user-portal-v2-and-staging-to-production
Travis Northcutt

7

Плагін для копіювання: Ось плагін, над яким я працював. Наразі він знаходиться в бета-версії, але це робить роботу для більшості сайтів. Зараз він орієнтований на менші встановлення WordPress. http://wordpress.org/extend/plugins/duplicator/

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

Спільнота: Будь ласка, повідомте нам про ваші успіхи чи будь-які проблеми, з якими ви можете зіткнутися! Намагаючись легше керувати різними потоками, опублікуйте питання на форумах плагінів WordPress.org. Будь ласка, не публікуйте жодних даних реєстрації із плагіна на онлайн-форумах. Дані реєстрації можна надіслати на наш сайт підтримки.


6

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


5

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


Щойно перевірили свій сценарій. Приємно. Якби я зрозумів, це встановлює свіжий WP на сервер. Тут питання, як перейти від розвитку до виробництва. Чи може це допомогти у цьому?
Sruly

17
Це це? github.com/vluther/Autopress Я пропоную створити посилання у ваших відповідях, щоб люди могли клацнути право!
artlung

4
@ Майк Лі: Так, ви можете голосувати за коментарі. Дивіться, я підтримав коментар artlung. Шукайте натискання на курсор зліва від коментаря.
MikeSchinkel

Я працюю над тим, щоб утримати все в контролі версій, а потім просуватися від розробника до виробництва. Я вже міг це зробити без жодних проблем для кількох сайтів, але все ж є деякі зміни, які мені потрібно вирішити.
Від Лютер

1
Не впевнений, чи це все, але є плагін WP Engine, який використовується для міграції сайту через хости. Це називається Знімок ( Пряме посилання ).
joelhaus

5

Це виглядає перспективно. Ми працюємо над деякими сценаріями для обробки міграції деяких даних, wp-опцій, наприклад, зміни шляхів у db, копіювання на носії.

Проблема в мене полягає в тому, що веб-сайт в реальному часі продовжує рости, тоді як інший розробляється. Один сайт, над яким ми працюємо, має 20 публікацій на день і понад 3000 коментарів на день. Це занадто багато даних для переміщення через phpmyadmin або через командний рядок. Крім того, переміщення даних навколо якоїсь причини викликає проблеми UTF з певних причин.

Крім того, тепер, коли схоже, що параметри меню зберігаються в БД, я маю ще більше справи.

Я перевіряю весь свій код у SVN та розгортаю код через FTP з сервера (Beanstalk). Це не вносить зміни в БД для мене, хоча і не активує нові плагіни.

Зараз в моєму плані - створити файл маніфесту, поки я розробляюсь, щоб зробити всі свої зміни на веб-сайті.

Наприклад, файл має читати людські лінії

Він буде включати плагіни для активації, wp-варіанти для переміщення, зображення для переміщення, сторінки для переміщення. Тоді мій плагін виявив би файл маніфесту та вніс усі зміни на інсценізаційний сайт.

Після того, як я тестував це і був впевнений, що все отримав, я міг бути впевнений, що це буде працювати на виробництві.

Цей плагін все ще просто ідея, але для мене є якийсь код, написаний для цього.

Крім того, якщо ви хочете внести зміни до лише 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$') ;

2
Лише зауважте, мій дзвінок sql може порушити вам серіалізовані дані. s: 14: blogs.prod.com має довжину, кодовану як 14. Після запуску коду тепер у нас є s: 14: dev.prod.com, який пошкоджений. Має бути s: 12: dev.prod.com використовуйте з обережністю.
Андрій


3

Я використовую команду експорту subversion для встановлення файлів WordPress (http://core.svn.wordpress.org/tags//), а також усіх плагінів у сховищі (http://plugins.svn.wordpress.org//tags //), потім просто застебніть тему та користувацькі плагіни та встановіть їх нормально. Після того, як все це працює і працює без вмісту, я експортую тестову БД і виконую пошук / заміну URL-адреси І файлового шляху (зберігається для медіа) та імпортую в порожню базу даних, а потім просто переключу інформацію про базу даних у wp-config .php. Зазвичай займає у мене близько 10 - 20 хвилин.


3

Зазвичай я входжу в phpMyadmin, завантажуючи базу даних і редагуючи вміст wp_options> siteurl та wp_options> home на очікуваний домен. Якщо вам потрібно оновити URL-адреси у вмісті своїх публікацій та сторінок, ви можете виконати пошук / заміну URL-адреси та шляху медіа / завантаження у файлі .SQL перед завантаженням. Це швидка робота.


3

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

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

Цей сценарій добре працює з WP-скелетом Марка Джакіта та джгутами mysqldump, gitа rsyncтакож синхронізувати весь ваш сайт - базу даних, код та медіа - за два простих кроки:

./syncdb
git push hub master

3

Я використовував http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Це прекрасно працює!

Всього 3 кроки:

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

Він автоматично коригує всі URL-адреси - включаючи серіалізовані заміни рядків - так що немає ризику втрати конфігурацій віджетів тощо.

Єдині проблеми, пов’язані з деякими веб-сайтами з більшими базами даних (~ 300 Мб), спричинили час очікування виконання сценарію PHP під час імпорту резервної копії сайту.


3

Станом на 2017 рік, ось два найкращих способи, які я знайшов для управління передачею бази даних WordPress від розробки до виробництва.

WP міграція DB Pro / WP синхронізація БД

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

Ці плагіни WordPress дозволяють пересувати, тягнути та синхронізувати таблиці баз даних між установками WordPress. Це набагато краще, ніж знайти / замінити з багатьох причин, оскільки це:

  • Експортує вашу базу даних як дамп даних MySQL (приблизно як phpMyAdmin)
  • Знаходить і замінює URL-адреси та шляхи до файлів
  • Обробляє серіалізовані дані
  • Дозволяє зберегти його на комп’ютері у вигляді файлу SQL

Я любитель платити за роботу, яку я виконую, тому рекомендую вам підтримати містера Бреда Туеснара і придбати копію справжньої ліцензії. WP Sync DB - це копія, і вона завжди відстає в підтримці. З цим плагіном процес мертвий простий:

  1. Встановіть / активуйте плагін у вашому локальному середовищі та виробничому середовищі
  2. Налаштуйте push-передачу з локального сервера / сервера розробки на ваше виробництво
  3. Заповніть правила, для яких таблиці потрібно перенести, і визначте пошук і заміну правил для виконання
  4. Це воно!

Пошук та заміна баз даних для WordPress баз даних 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

Ви можете скористатися більш швидким підходом, але це передбачає простої для вашого виробничого сайту, що, на мою думку, є неприйнятним. Ось чому ми називаємо це виробництвом, правда?


1

оскільки я запускаю свої сайти в IIS (я також запускаю asp.net, тому мені потрібні вікна), я використовую WebPI від Msft для встановлення нового примірника, потім копіюю шаблон і використовую імпорт / експорт для передачі даних.

Це не ідеально, але вся справа займає менше години.

Очевидно, було б непогано мати рішення одним натисканням кнопки, але саме це мені стало найпростішим.


1

Ще одне платне рішення: тематична рамка Xtreme One випустила версію 1.2 із резервною копією Xtreme, яка дозволяє "експортувати чи імпортувати налаштування ваших Childthemes, макетів або віджетів із усіма їх налаштуваннями та вмістом у вигляді XML-файлу".


1

Співробітник знайшов це. Цікава концепція, хоча це не працює між сервером, як це виглядає. Я все ще досліджую це, але схоже, що це може чудово працювати для інсценізації

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


Чотири місяці тому я не зміг змусити цей плагін працювати ... І він все ще знаходиться у версії 0.1 у code.google
brasofilo

1

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

Це платна послуга (за домен / місяць), але не настільки.


1

RAMP - це новий плагін для розгортання контенту від Crowd Favorite, і він виглядає дуже гладко. Це 250 доларів, однак я ще не спробував цього. Можливо, я можу просто заплатити за кількість заощадженого часу, тому я це думаю.

Велика перевага, яку вона має над більшістю згаданих інших методів, полягає в тому, що вона може інтелектуально об'єднувати повідомлення, коментарі тощо. Це не просто імпорт mysqldump, це більше схоже на контроль джерел для бази даних. Наприклад, розгортаючи публікацію, вона також розгортає теги для цієї публікації, якщо вони вже не існують у виробництві.


RAMP призначений для розгортання вмісту , на відміну від розгортання коду , але я згоден, він виглядає чудово. Тепер у них встановлена демонстрація RAMP , щоб ви могли випробувати функції.
Емзо

Питання стосувалося розгортання контенту , а не розгортання коду, і я почав свою відповідь, сказавши "RAMP - це новий плагін для розгортання вмісту ..."
Ian Dunn

1

Дозвольте мені віддати одне з моїх улюблених :-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{

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

Це майже все, нічого не залишилося над класичною WordPress "Все, припиніть редагування!" рядок ...

192.168. частина дозволяє зробити тестування на місцевому рівні (тобто з планшетів або телефонів) у вашій локальній мережі)

$ GLOBALS ['is_local'] також може стати в нагоді для розробки вашої теми для отримання додаткових результатів налагодження тощо.


1
Ви можете використовувати WordPress Skeleton wp-config.php, який встановлює WP_LOCAL_DEVконстанту для отримання чогось подібного
icc97

1

Я вже деякий час використовую плагін backupbuddy. Це дозволяє зробити резервну копію бази даних та всіх файлів, завантажити її як поштовий індекс або відправити безпосередньо на інший сервер через FTP. Він також знаходить та замінює URL-адресу для вас. Зазвичай у мене йде близько 5 хвилин, щоб пройти весь процес. А тому, що всі файли стискаються, процес завантаження / завантаження відбувається набагато швидше. І ні, я не працюю на них, але цей плагін справді полегшив весь цей процес.


1

Іншим корисним інструментом для обробки міграцій серверів для сайтів є WordPress CLI, ця стаття має хороший огляд того, що він може зробити, але конкретно розділ "Пошук і заміна" корисний для пошуку всіх посилань на старий URL / сайт розробника :

Розширене управління WordPress за допомогою WP-CLI


1

Це найпростіший спосіб коли-небудь: https://themes.artbees.net/docs/website-migration/
Це займе лише два кліки. Один для експорту, один для імпорту.

Це можливо, використовуючи плагін «Міграція All in one WP». Наведене вище посилання показує, як ним користуватися.


0

Якщо ви намагаєтеся досягти безперервної синхронізації, я пропоную використовувати rsync разом із спеціальним завданням cron, щоб переписати будь-які URL-адреси або дані, що стосуються певного сайту.


0

Певний час дотримуючись цієї відповіді, я створив власний маленький плагін - Pitta Migration . Причини:

  1. З усіх випробуваних тут ідей - найпростішими є варіанти WP_HOMEта WP_SITEURLваріанти
  2. Потім я використовую ці параметри для встановлення двох відповідних wp_optionsURL-адрес - що охоплює, коли плагіни / теми ігнорують їх
  3. Це дає мені 100% впевненість у тому, що змінюється в моїй базі даних
  4. Це також працює на платформі (всі ці сценарії bash не грають добре в Windows)
  5. Неважко зрозуміти, що робить плагін
  6. За двома константами немає конфігурації - зробіть імпорт mysqldump та mysql у вашу локальну базу даних, і плагін бачить, що константа та таблиця відрізняються та оновлює їх на відповідність
  7. Немає пошуку та заміни тексту
  8. Немає шансів викрасти вашу базу даних - я використовую об’єкт бази даних WordPress, щоб зробити два оновлення і більше нічого
  9. Він чудово грає з такими речами, як WordPress Skeleton, де ви можете мати все в керуванні джерелами та встановити локальну конфігурацію
  10. Я помістив його в каталог плагінів WordPress та на Github, щоб він був безкоштовним, повністю відкритим джерелом, легким для розкрутки та легким встановленням
  11. Після встановлення ви можете забути про це, і він повинен "просто працювати" - це дає вам невелике повідомлення про те, що база даних була змінена
  12. Він повинен працювати з будь-яким процесом резервного копіювання / FTP / відновлення

0

На мою думку, найпростіший спосіб, який я дотримуюся, це ручна передача .. Просто скопіюйте папку wp-content та файл wp-config.php на новий хост. Експортуйте базу даних зі старого хоста та імпортуйте її в нову базу даних нового хоста ..

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

Тепер у файлі wp-config просто змініть інформацію бази даних та користувача з новою інформацією про хост.

Тепер увійдіть до нового wp-admin та перейдіть до налаштувань та збережіть постійну посилання.

Ви закінчили. Я думаю, що це просто без використання плагінів.

Я пробував різного роду плагіни, і всі ці проблеми мають багато видів.

Тому я вважаю за краще цю просту передачу вручну, яку я вважаю легшою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.