Управление WordPress-сайтом с помощью Git и Composer. Часть 1. Сохраняем WordPress в Git

Git-Composer

Предлагаем вашему вниманию серию статей, посвященную управлению WordPress-сайтом с помощью Git и Composer. Вместе мы посмотрим на то, как сохранить WordPress в Git, а также как управлять разными элементами WordPress-сайта, которые не должны храниться в вашем репозитории Git (к примеру, темы и плагины), с помощью Composer или подмодулей Git.

Сначала мы просто сохраним WordPress в Git, однако в дальнейшем мы рассмотрим более сложный (и более эффективный) подход по управлению WordPress ядром с помощью Composer и подмодули Git.

Почему именно Git?

Системы управления версиями, такие как Git, очень помогли разработчикам в последние годы, предложив такой уровень сотрудничества, который ранее был невозможен. Однако начать работу с Git не всегда так просто, как кажется, особенно если вы пытаетесь работать с таким большим и развитым проектом, как WordPress.

Преимущества от управления WordPress-сайтом с помощью Git огромны. Вы можете использовать такие великолепные возможности Git, как откат изменений, ветви для баг-фиксов и feature build’ов; также вы можете использовать удивительные приложения, такие как Github, чтобы сохранить свой сайт, и Dploy, чтобы развернуть изменения на сайте с помощью одного клика.

В этой серии статей мы рассмотрим различные аспекты с точки зрения новичка, однако я предполагаю, что вы уже имеете базовые знания в области Git и Composer и можете работать с командной строкой.

Итак, давайте начнем.

Сохранение WordPress в Git

Для начала мы собираемся сохранить ядро WordPress в Git. Конечно, более осмысленным шагом было бы хранение WordPress отдельно с помощью Composer или Git подмодулей, однако это является более сложным шагом и включает в себя изменение структуры вашего WordPress-сайта, поэтому мы отложим рассмотрение данного шага на будущее. Прямо сейчас мы сфокусируемся на том, чтобы запустить WordPress и сохранить его в Git.

Мы начнем с нуля. Давайте создадим новую папку, которая будет содержать нашу сборку WordPress (вы можете скопировать уже существующий WordPress сайт в новую папку при желании). Откройте Terminal или любой другой клиент командной строки и выполните следующее:

mkdir wpgit && cd wpgit

В данном руководстве мы будем использовать относительно новый проект, который называется WP-CLI. WP-CLI – это набор инструментов командной строки, которые помогут вам в управлении вашими WordPress сборками. К примеру, вы можете обновлять плагины, настраивать мультисайты, даже не обращаясь к веб-браузеру. Если у вас не установлен WP-CLI, вы можете воспользоваться следующими инструкциями.

Давайте скачаем и установим WordPress с помощью WP-CLI. Если вы скопировали уже существующий WordPress-сайт (или вы не хотите использовать WP-CLI), вы можете пропустить этот шаг.

wp core download
wp core config --dbname={YOUR DATABASE NAME} --dbuser={YOUR DATABASE USERNAME} --dbpass={YOUR DATABASE PASSWORD}
wp core install --url={YOUR DOMAIN NAME} --title={THE TITLE OF YOUR SITE} --admin_user={YOUR USER NAME} --admin_password={YOUR PASSWORD} --admin_email={YOUR EMAIL}

install-wordpress-cli

Далее нам надо создать свой Git репозиторий для WordPress. Сделать это просто:

git init

В данный момент наш Git репозиторий пуст, поскольку мы не добавляли к нему никаких WordPress файлов. Сделано это было по той причине, что есть определенные файлы и папки, которые мы не хотим добавлять в Git репозиторий. Некоторые папки могут часто меняться (как, к примеру, плагины и темы), определенные файлы могут содержать важную информацию (пароли к базе данных).

Git предлагает удобный способ решения данной проблемы. Вы можете создать файл .gitignore, в котором вы можете определить, какие файлы и папки вы хотите исключить из Git. Давайте сделаем это, создав и отредактировав файл . gitignore:

touch .gitignore
nano .gitignore

Мы можем добавить любые правила в файл .gitignore, чтобы Git игнорировал определенные файлы и папки. Давайте добавим следующие правила к нашему .gitignore (строки, начинающиеся со значка решетки – это комментарии).

# Ignore wp-config.php and .htaccess
wp-config.php
.htaccess

# Ignore the wp-content directory
/wp-content

gitignore

Обратите внимание, что вы можете при желании добавить отдельные плагины и темы к репозиторию Git, указав путь к плагину или теме. К примеру:

# Don’t ignore plugins dir, but ignore everything inside
!/wp-content/plugins
/wp-content/plugins/*

# Don’t ignore akismet plugin
!/wp-content/plugins/akismet

Сохраняем файл .gitignore. Поскольку все пользовательские файлы (плагины, темы, загрузки) хранятся в папке /wp-content, достаточно всего лишь проигнорировать данную папку целиком.

Теперь мы можем добавить остальные файлы в Git. Добавить файлы и затем выполнить коммит их можно с помощью команды:

git add .
git commit -m "Initial commit"

Отлично, теперь у нас имеется сайт WordPress, хранящийся в Git репозитории. Есть несколько вещей, которые надо помнить, используя данный метод:

  • Лучшие практики заключаются в том, чтобы не хранить важную информацию (такую как пароли базы данных) в репозитории Git. Вы должны развертывать wp-config.php вручную.
  • Все, что находится в /wp-content, не должно быть сохранено в Git (плагины, темы, загрузки и т.д.). Если вы развертываете или переносите свой сайт, вам нужно будет вручную перенести эти файлы.
  • База данных не будет сохранена в Git, однако не переживайте, для переноса БД всегда есть WP Migrate DB Pro.
  • Если вы обновите WordPress локально, вам нужно будет сделать коммит изменений в вашем репозитории Git. Помните, что при использовании этого метода WordPress будет отключать автоматические обновления (поскольку он обнаружит папку .git). И это прекрасно, поскольку у вас будет иметься одностороннее развертывание обновлений на вашем сайте (иначе ваш рабочий сайт будет отличаться от вашего Git репозитория), т.е. ваш сайт всегда будет безопасным. Мы еще поговорим об этом в следующих записях.

В следующей части мы поговорим о том, как использовать Composer для управления плагинами и темами для вашего WordPress-сайта, сохраненного в Git.

Источник: deliciousbrains.com

Блог про WordPress
Комментарии: 3
  1. MyInsider

    А вы можете посоветовать какую-нибудь удобную программу для управления сайтом на WordPress с iPad? Я нашел только одну программу, которая кстати так и называется «WordPress», но я с ней как-то и не смог подружиться. Может есть какой-нибудь сторонний софт?
    Самый главный критерий — это удобство публикации статей, возможность работы в оффлайн режиме и удобства модерирования комментариев

    1. Дмитрий (автор)

      Есть мобильное приложение WordPress for iOS

      https://apps.wordpress.org

      С его помощью можно управлять сайтом через мобильные устройства, в том числе и через iPad.

  2. Ольгерд

    Здравствуйте, Дмитрий. Не совсем понятен момент заполнения файла wp-config посредством wp core config. Допустим я разворачиваю wp-сайт на локалхосте. Я установил openServer, создал соотв. директорию и скачал в нее файлы wp на первом шаге. Затем через phpMyAdmin я создал новую бд wptest и добавил к ней юзера (login: admin, pass: admin)

    теперь я выполняю команду wp core install —url=wptest —title=wpdades —admin_user=admin —admin_password=admin —[email protected] и получаю странную ошибку:

    ERROR 1045 (28000): Access denied for user ‘developer’@’localhost’ (using password: YES)

    если же я прописываю wp core config —dbname=wptest —dbuser=root —dbpass=root все работает, но установить wordpress не получается т.к.

    при выполнении команды wp core install —url={YOUR DOMAIN NAME} —title={THE TITLE OF YOUR SITE} —admin_user={YOUR USER NAME} —admin_password={YOUR PASSWORD} —admin_email={YOUR EMAIL} мне выдается странная ошибка:

    Error: ?Ю?И???????? ?Г?Б?В???????????? ?Б?????+???????????П ?Б ?????????? ?+???????Л?Е. ?н?В?? ???????З???В, ?З?В?? ???????? ?????П ?+?????М?????????В?????П
    ?? ?+???А?????М ?? ?Д???????? `wp-config.php` ?????????А???Л, ???????? ?????? ???? ?Г?+???????Б?М ?Б???П?????В?М?Б?П ?Б ?Б???А?????А???? ???????Л ?+???????Л?
    Е ?+?? ???+?А???Б?Г `localhost`. ?Т??????????????, ?Б???А?????А ?????+???Б?В?Г?+????.

    Приходится вручную менять файл wp-config и оставлять поле password пустым. В чем тут дело?

Добавить комментарий

Получать новые комментарии по электронной почте.