Немає часу, щоб написати повну відповідь на функцію (я знаю, що це кульгавий), але, напевно, варто поділитися в будь-якому випадку (я можу відредагувати це, тому що я планую публікацію в цьому блозі):
Це означає, що ви можете мати налаштування WP, заснованого на магістралі / версії, який ви можете повністю зламати в т.ч. теми та плагіни.
Оскільки це одне незалежне (локальне) сховище, ви можете пересилати це через ssh до інших сховищ, наприклад одного:
- Він розташований на віддаленому хості, де сайт має бути розміщений (голе репо).
- Це має гачки, щоб зробити ще один сховище на цьому хості, фактично злившись із змінами, які ви щойно натиснули.
Про це йдеться у веб-зосередженому робочому процесі Git (листопад 2008; Джо Маллер) .
Якщо у вас є перемикач конфігурації, який вибирає конкретний wp-config.php
на основі системи, на якій він працює, ви навіть можете централізовано налаштувати всі хости (розробку, трансляцію, постановку, друзів, ...) всередині репо.
Вихідні зміни в WP ви просто отримуєте і об'єднуєте в піддерево.
Плагіни, які ви просто оновлюєте та здійснюєте.
Розгортання просте $ git push remote
.
Запускайте щоденні резервні копії на віддаленому хості для git repos, бази даних та завантажених файлів, і це дешево, зручно для розробників та гнучко. Це добре працює як для налаштувань для одного розробника, так і для невеликих команд, тому що кожен може відмовитись від чистого репро на пульті.
Є кілька застережень:
Тепер із вашим контрольним списком та налаштуваннями, як зазначено вище:
1. Хочеться, щоб моє середовище git знаходилось на власному сервері внутрішньо, не використовуючи Github для обробки репостів.
Github обробляє тут лише репост (Wordpress), а не ваш власний.
2. Автоматичне створення субдоменів при створенні гілки git (development.domain.com, ryan.development.domain.com) - Можливо, для цього ідеально підійде якийсь гачок сценарію оболонки.
Налаштування, як описано, - це модульний підхід з одним репо на кожний сайт. Він може обробляти стільки хостів розробки, скільки вам подобається, він може однаково добре працювати з установкою на декількох сайтах для обробки декількох доменів, але це вважатиметься одним із налаштувань wordpress у цьому підході.
3. Phing PHP / Shell script Поводження з міграцією db (щось подібне http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) для обробки серіалізованої заміни бази даних після натискання
Тут це не потрібно, оскільки лише код знаходиться під контролем версій, бази даних незалежні між розробкою (, постановкою) та виробництвом, як це має бути.
Ви, можливо, шукаєте сценарій встановлення, який би правильно мігрував домен, але навіть із кращим кодом (який доступний), що стосується серіалізованого пошуку та заміни даних, у цій налаштуваннях тут зазвичай це не потрібно, оскільки ви просто натискаєте зміни, щоб жити , для тестових випадків ви можете швидко створити вміст у базі даних розробок, це, як правило, найменша проблема (з мого практичного досвіду, ваші можуть відрізнятися, але я б також запропонував зберегти такі теми, пов'язані з міграцією бази даних, на питання про це власні тут, на сайті - але будь-ласка, запитайте їх).
Я запускаю близько 200 сайтів на своєму власному сервері і хотів би почати впроваджувати ці сайти в сильне середовище робочого процесу git, щоб я міг впорядкувати свою роботу набагато краще.
Я не уявляю, як ці сайти потраплять під середовище робочого процесу string git. Можливо, сценарії конфігурації та дані конфігурації, якими ви керуєте тут, будуть зберігатися під контролем версій git. Це може мати сенс. В іншому випадку, за великою кількістю сайтів, я думаю, немає сенсу взагалі тримати всіх в одному git repo. Можливо, навіть не з таких, тому що те, що я описав вище, - це для сайтів, які ви розробляєте (включаючи основний код WP), а не лише для завдань з установки. Тож вам, мабуть, потрібно, перш за все, створити собі невеличку карту з цих 200 сайтів і те, як вони взаємодіють між собою, і з яких пакетів (WP core, Plugins, Themes) ці сайти складаються. Перше, що можна створити електронну таблицю / матрицю та розмістити всі сайти.
Потім ви можете зберегти його як CSV, поставити його під контроль версій і змусити сценарії розгортання виконувати свою роботу на основі цього файлу.
І якщо я щось навчився автоматизувати завдання: Дотримуйтесь філософії Unix, використовуйте існуючі та добре працюючі інструменти (краще витратити півдня на читання деяких команд, а потім на пошук альтернативних варіантів, оскільки для більшості робочих завдань проблеми були вирішено вже) і зосередитись на інструментах командного рядка. Вони найпотужніші.