У мене є установка, якою я дуже пишаюся, і це надзвичайно добре працює для моєї команди.
Загальна структура
Я тримаю всю установку під git. Усі зміни, будь то оновлення системи, додавання / оновлення плагіна, додавання / оновлення теми, проходять через один і той же робочий процес. Зміни можна повернути за мить. У мене є сервер розгортання (старий робочий стіл P4), на якому працює gitosis, але ви можете так само легко використовувати github або gitolite . У git у мене є дві "спеціальні" гілки, master
і develop
(пояснено докладніше нижче). Мої сервери виробництва та постановки базуються на хмарі.
Середовища розвитку
Кожен розробник запускає власний сервер розробки на власній машині. Що стосується баз даних, необхідність використання живих даних навряд чи колись була проблемою. В основному ми використовуємо дані тестового блоку . Інакше експорт та імпорт охоплюють більшість речей. Якщо фрагмент БД був вирішальним, ви можете налаштувати реплікацію або налаштувати щось для синхронізації за запитом. Коли я спочатку налаштовував цю структуру, я вважав, що це буде вирішальним, тому я почав писати набір інструментів для цього, але, на моє здивування, вони справді були не потрібні. (зверніть увагу: оскільки вони не були потрібні, я ніколи їх не відшліфував, тому є помилки, наприклад, це замінить домен у серіалізованих даних).
Постановочне середовище
Коли develop
комітети висуваються з гілки на gitosis, вони автоматично розгортаються на наш сервісний сервер. Постановочна база даних є підлеглим виробничій базі даних.
Виробниче середовище
Коли комісії висуваються на гітоз на master
гілці, він автоматично розгортається на виробничий сервер.
Проблема wp-config.php
Ви хочете wp-config.php
бути унікальними від сервера до сервера, але ви також хочете тримати його під контролем версій. Моє рішення полягало в тому, щоб використовувати .gitignore
ігнорувати wp-config.php
та зберігати версії постановки та виробництва як файли з різною назвою. Тоді на кожному сервері, я символічна наприклад wp-config.php -> wp-config-production.php
. Потім кожен користувач зберігає власну БД із власними обліковими даними, із власними (не відстеженими) налаштуваннями wp-config.php.
Інші примітки
Я використовую Rackspace Cloud , який є феноменальним і недорогим. З його допомогою я можу зберігати сервери постановки та виготовлення ідентичними. Зараз я також пишу плагіни, які використовують їх API, щоб дозволити мені контролювати свої послуги прямо з WordPress, це чудово.
Каталоги кешу, каталоги завантаження файлів тощо, всі додаються до .gitignore. Якщо ви хочете, ви можете встановити завдання cron, щоб регулярно перевіряти завантаження та підштовхувати їх до гітозу, але це мені ніколи не здавалося необхідним.
Структура майстра / розробки встановлюється частково імітуючи модель розгалуження Вінсента Дріссена . Я також використовую його git-розширення git-flow, і я також дуже пропоную це.
У мене було близько 10 розробників, які працювали над цією структурою вже більше року, і з якою я мріяв працювати. Надійний, безпечний, швидкий, функціональний та спритний, ви не можете просити більше!