Skip to content

MihanEntalpo/WordpressGitTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WordpressGitTools

Набор небольших скриптов, которые помогают вести 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 — подмена домена на лету для работы локальной/удалённой копии.

Быстрый старт

  1. Настройте SSH‑доступ по ключу к серверу.
  2. Отредактируйте rgit:
    • замените remoteuser@mysite.ru и /var/www/mysite.ru на свои.
  3. Отредактируйте mysqltool.conf.php:
    • sshhost — пользователь и хост для SSH (например user@example.com);
    • folder — путь к корню проекта на сервере (например /var/www/site);
    • wp_config_path — путь к wp-config.php (если не задан, используется ./www/wp-config.php).
  4. Проверьте расположение WordPress: в mysqltool.php ожидается, что wp-config.php лежит в ./www/wp-config.php относительно скрипта.
  5. Создайте директорию для дампов: ./mysqldump рядом с mysqltool.php.
  6. Подключите wp-domains.php в wp-config.php (см. ниже).

Утилита rgit

rgit позволяет выполнять git‑команды на сервере из локальной консоли. Пример:

./rgit status ./rgit pull ./rgit log --oneline -n 5

Скрипт формирует команду git ..., переключается в каталог сайта на сервере и запускает её через SSH.

Утилита gcb

gcb помогает переключаться между ветками, а при необходимости — создавать новые. Показывает список локальных и удалённых веток.

./gcb feature/my-task

Логика работы:

  • если локальная ветка существует — просто переключается;
  • если есть удалённая ветка — создаёт локальную и привязывает к origin/<branch>;
  • если ветки нет — предлагает создать новую.

Утилита mysqltool.php

Это 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:
    1. дампит обе базы,
    2. копирует дампы,
    3. восстанавливает локальную БД из удалённого дампа.
  • push:
    1. дампит обе базы,
    2. копирует дампы,
    3. восстанавливает удалённую БД из локального дампа.

Для работы нужны mysql, mysqldump и доступ по SSH без пароля (по ключу). Скрипт проверяет доступ автоматически.

wp-domains.php — подмена доменов

Файл предназначен для ситуации, когда один и тот же сайт работает на разных доменах (например 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 доступ по ключу

Настройка под свой проект

  1. Отредактируйте rgit и mysqltool.conf.php под ваш сервер.
  2. Проверьте путь к wp-config.php (по умолчанию ./www/wp-config.php, либо задайте wp_config_path).
  3. Создайте ./mysqldump и дайте права на запись.
  4. Настройте домены в wp-domains.php.

После этого можно вести проект в git и синхронизировать базу между локальной и удалённой копиями.

About

A set of scripts to work on wordpress site with git repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors