Предлагаем вашему вниманию серию статей, посвященную управлению 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}
Далее нам надо создать свой 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
Обратите внимание, что вы можете при желании добавить отдельные плагины и темы к репозиторию 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 с iPad? Я нашел только одну программу, которая кстати так и называется «WordPress», но я с ней как-то и не смог подружиться. Может есть какой-нибудь сторонний софт?
Самый главный критерий — это удобство публикации статей, возможность работы в оффлайн режиме и удобства модерирования комментариев
Есть мобильное приложение WordPress for iOS
https://apps.wordpress.org
С его помощью можно управлять сайтом через мобильные устройства, в том числе и через iPad.
Здравствуйте, Дмитрий. Не совсем понятен момент заполнения файла 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 —admin_email=mymail@gmail.com и получаю странную ошибку:
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 пустым. В чем тут дело?