Набор небольших скриптов, которые помогают вести WordPress‑сайт в git и синхронизировать базу данных между локальной и удалённой копиями. Проект рассчитан на привычную схему «локальный сайт + сервер», где:
- код сайта, включая все файлы (wp-content) лежит в git‑репозитории;
- доступ к серверу по SSH настроен по ключам;
- на сервере и локально доступны
mysql,mysqldumpиphp(CLI).
Примечание: Скрипты содержат примерные значения (
mysite.ru,remoteuser@mysite.ru,/var/www/mysite.ru). Их нужно заменить на свои.
Подробная статья об использовании данного набора в windows / linux: Разработка на WordPress по-человечески, с использованием GIT
rgit— тонкая обёртка надgitдля выполнения команд на сервере по SSH.gcb— переключение/создание git‑ветки с подсказкой локальных и удалённых веток.mysqltool.php— утилита для дампа, копирования и восстановления БД (локально и удалённо).mysqltool.conf.php— конфиг удалённого SSH‑хоста и пути к сайту.wp-domains.php— подмена домена на лету для работы локальной/удалённой копии.
- Настройте SSH‑доступ по ключу к серверу.
- Отредактируйте
rgit:- замените
remoteuser@mysite.ruи/var/www/mysite.ruна свои.
- замените
- Отредактируйте
mysqltool.conf.php:sshhost— пользователь и хост для SSH (напримерuser@example.com);folder— путь к корню проекта на сервере (например/var/www/site);wp_config_path— путь кwp-config.php(если не задан, используется./www/wp-config.php).
- Проверьте расположение WordPress: в
mysqltool.phpожидается, чтоwp-config.phpлежит в./www/wp-config.phpотносительно скрипта. - Создайте директорию для дампов:
./mysqldumpрядом сmysqltool.php. - Подключите
wp-domains.phpвwp-config.php(см. ниже).
rgit позволяет выполнять git‑команды на сервере из локальной консоли. Пример:
./rgit status ./rgit pull ./rgit log --oneline -n 5Скрипт формирует команду git ..., переключается в каталог сайта на сервере и запускает её через SSH.
gcb помогает переключаться между ветками, а при необходимости — создавать новые. Показывает список локальных и удалённых веток.
./gcb feature/my-taskЛогика работы:
- если локальная ветка существует — просто переключается;
- если есть удалённая ветка — создаёт локальную и привязывает к
origin/<branch>; - если ветки нет — предлагает создать новую.
Это CLI‑скрипт для работы с базой WordPress локально и на сервере. Он считывает DB_NAME, DB_USER, DB_PASSWORD из wp-config.php (по умолчанию ./www/wp-config.php, либо путь из wp_config_path). Удалённые параметры (SSH и путь) берёт из mysqltool.conf.php.
./mysqltool.php help # Дамп локальной БД ./mysqltool.php dump local # Дамп удалённой БД ./mysqltool.php dump remote # Дамп обеих БД ./mysqltool.php dump both # Дамп и копирование на другую сторону ./mysqltool.php dump local --copy ./mysqltool.php dump remote --copy ./mysqltool.php dump both --copy # Восстановление из файла ./mysqltool.php restore --file ./mysqldump/local-YYYY-mm-dd_HH-ii-ss.sql # Полная синхронизация ./mysqltool.php pull # заменить локальную БД удалённой ./mysqltool.php push # заменить удалённую БД локальнойdumpделает дамп в./mysqldump.--copyпереносит дампы черезscp.pull:- дампит обе базы,
- копирует дампы,
- восстанавливает локальную БД из удалённого дампа.
push:- дампит обе базы,
- копирует дампы,
- восстанавливает удалённую БД из локального дампа.
Для работы нужны
mysql,mysqldumpи доступ по SSH без пароля (по ключу). Скрипт проверяет доступ автоматически.
Файл предназначен для ситуации, когда один и тот же сайт работает на разных доменах (например mysite.ru и mysite.local).
Что делает скрипт:
- вычисляет текущий адрес сайта (с учётом http/https);
- задаёт
WP_HOMEиWP_SITEURLот текущего домена; - подменяет все ссылки в выводе, заменяя домены из списка на текущий.
Добавьте в wp-config.php до загрузки WordPress:
require_once __DIR__ . '/wp-domains.php';И укажите свои домены в массиве $domains_enabled внутри wp-domains.php, например:
$domains_enabled = array( "mysite.ru", "www.mysite.ru", "mysite.local", "www.mysite.local" );- bash (для
rgitиgcb) - PHP CLI (для
mysqltool.php) mysqlиmysqldump- SSH доступ по ключу
- Отредактируйте
rgitиmysqltool.conf.phpпод ваш сервер. - Проверьте путь к
wp-config.php(по умолчанию./www/wp-config.php, либо задайтеwp_config_path). - Создайте
./mysqldumpи дайте права на запись. - Настройте домены в
wp-domains.php.
После этого можно вести проект в git и синхронизировать базу между локальной и удалённой копиями.