WordPress · 10 min read · Dec 07, 2025
Настройка локальной среды разработки WordPress с Vagrant

Если вы разрабатываете с WordPress, предпочтительно настроить локальную среду, где у вас установлен сервер, инструмент базы данных и несколько сайтов WordPress вместе с другими необходимыми инструментами. Это нормально, если вы работаете только над несколькими проектами. Но когда они множатся, возникают проблемы. А также головная боль от поддержки нескольких сред, потому что у клиента другая настройка, чем у вас.
Чтобы обойти эту проблему, мы можем использовать то, что мы называем Vagrant. Vagrant — это инструмент для работы с виртуальными средами. Он предоставляет простой способ настройки локальной среды разработки с помощью нескольких команд, и вы можете воспроизводить полную настройку столько раз, сколько хотите, с легкостью и без хлопот по установке всего вручную. Чтобы запустить Vagrant, вам нужно определить набор правил. Vagrant настраивает вашу виртуальную машину на основе этих правил. Для этого Vagrant нужны два файла: Vagrantfile, который говорит Vagrant, какое оборудование нужна виртуальной машине, и файл развертывания, который говорит Vagrant, что делать на виртуальной машине.
Поскольку Vagrant работает с виртуальными средами, вам нужно программное обеспечение для виртуальных машин, чтобы запустить Vagrant. Для наших целей мы будем использовать Open Source Virtualbox.
Установка VirtualBox
Перейдите на страницу загрузки Virtualbox и загрузите бинарный файл, соответствующий вашей гостевой системе. (Гостевая система — это операционная система, с которой вы будете запускать свою среду разработки.) Установите Virtualbox.
Установка Vagrant
Скачайте бинарный файл, соответствующий вашей операционной системе, со страницы загрузки Vagrant и установите его.
Чтобы проверить, успешно ли он установлен, введите следующую команду в командной строке вашей ОС.
$ vagrant -vУстановка плагина Vagrant Hosts Updater
Плагин vagrant-hostupdater изменит файл hosts вашей ОС, чтобы домены, настроенные Vagrant, работали. Чтобы установить его, выполните следующую команду
$ vagrant plugin install vagrant-hostsupdaterПерезагрузите вашу ОС после установки Vagrant/Virtualbox, чтобы не было проблем с сетью.
Установка Git
Linux
Нам также понадобится система контроля версий Git для этого учебника. Если у вас его нет, установите его, используя следующую команду, если у вас дистрибутив Debian/Ubuntu
$ sudo apt install gitили если у вас Fedora
$ sudo dnf install gitили если у вас CentOS/RHEL
$ sudo yum install gitПроверьте версию установленного Git с помощью следующей команды
$ git --versionВы увидите что-то вроде
$ git version 2.20.1Вам нужно настроить Git с помощью следующих команд.
$ git config --global user.name "Ваше Имя"
$ git config --global user.email "[email protected]"Windows
Чтобы установить Git на Windows, перейдите на страницу загрузки Git и установите бинарный файл.
Mac OS
Если у вас установлен homebrew, вы можете установить Git с помощью следующей команды.
$ brew install gitили вы можете загрузить бинарный пакет со страницы загрузки Git и установить его.
Установка Varying Vagrant Vagrants
Вместо того чтобы создавать настройку Vagrant с нуля, мы будем использовать Varying Vagrants Vagrant (VVV) — конфигурацию Vagrant с открытым исходным кодом, специально предназначенную для создания сред разработки WordPress. Стандартный VVV настраивает вашу виртуальную машину на базе Ubuntu 18.04 вместе с сервером Nginx, базой данных MariaDB, PHP, WP-CLI, Node.js, MailHog, Composer, memcached, phpMyAdmin, git и различными другими инструментами. VVV предоставит вам несколько установок WordPress по умолчанию, одна из которых является последней версией, чтобы помочь вам экспериментировать.
Первый шаг — клонировать репозиторий Git VVV в локальный каталог на вашей системе.
$ git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvvЗдесь мы клонируем основную ветку репозитория на систему. Если вы хотите более быстрые обновления, вы можете использовать ветку develop.
Запуск VVV
Перейдите в каталог, где вы клонировали VVV.
$ cd vvvЗапустите среду Vagrant, которая установит виртуальную машину и настроит все.
$ vagrant upЭтот процесс может занять некоторое время, так что будьте терпеливы. Во время процесса вас могут попросить ввести пароль root, который необходим для настройки файла hosts вашей системы.
Примечание для пользователей Windows 8/10
Если вы на Windows, вы можете получить следующую ошибку
==> default: Booting VM...
Произошла ошибка при выполнении `VBoxManage`, CLI, используемого Vagrant для управления VirtualBox. Команда и stderr показаны ниже.
Команда: ["startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless"]
Stderr: VBoxManage.exe: ошибка: Не удалось открыть/создать внутреннюю сеть 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND).
VBoxManage.exe: ошибка: Не удалось прикрепить сетевой LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: ошибка: Подробности: код E_FAIL (0x80004005), компонент ConsoleWrap, интерфейс IConsoleОбратите внимание на адаптер, упомянутый здесь:
VirtualBox Host-Only Ethernet Adapter #3Откройте Панель управления >> Центр управления сетями и общим доступом. Теперь нажмите на Изменить параметры адаптера. Щелкните правой кнопкой мыши на адаптере, имя или имя устройства которого совпадает с VirtualBox Host-Only Ethernet Adapter #3 и нажмите на Свойства. Нажмите на кнопку Настроить.
Теперь нажмите на вкладку Драйвер. Нажмите на Обновить драйвер. Выберите Просмотреть мой компьютер для драйверов. Теперь выберите Позвольте мне выбрать из списка доступных драйверов на моем компьютере. Выберите вариант, который вы получите, и нажмите Далее. Нажмите Закрыть, чтобы завершить обновление. Теперь вернитесь в ваш терминал/Powershell/командное окно и повторите команду vagrant up. На этот раз должно все работать.
После завершения вы можете посетить вашу панель VVV по адресу http://vvv.test.
VVV поставляется с двумя стандартными установками WordPress - http://one.wordpress.test и http://two.wordpress.test. Оба сайта имеют одинаковые данные для входа: admin в качестве имени пользователя и password в качестве пароля. Учетные данные базы данных для обоих сайтов: wp в качестве имени пользователя и пароля. Учетные данные пользователя root MySQL: root как имя пользователя и пароль. А учетные данные пользователя root VM: root как имя пользователя и vagrant как пароль.
Существует установка WordPress для разработчиков по адресу http://trunk.wordpress.net, но она не будет работать, так как она не была предоставлена. Эта установка полезна, если вы являетесь участником WordPress, который работает с билетами Trac и патчами. Чтобы включить ее, откройте vvv-custom.yml и измените значение skip_provisioning под wordpress-trunk на false, а затем повторно предоставьте VM, используя команду
$ vagrant reload --provisionСуществует еще одна установка WordPress без URL, обозначенная как wordpress-meta-environment. Эта установка создаст среду, полезную для вкладов в команду WordPress meta, например, WordCamps, .org и т. д. Чтобы включить эту установку, добавьте следующую строку под wordpress-meta-environment в файл vvv-custom.yml.
hosts:
- wpmeta.testА затем измените значение skip_provisioning на false и повторно предоставьте VM.
$ vagrant reload --provisionДобавление нового сайта
Если вы хотите добавить еще один сайт в VM, вам нужно будет отредактировать файл vvv-custom.yml, который вы можете найти в каталоге vvv. Если его там нет, просто скопируйте vvv-config.yml и создайте его. Это одноразовый процесс, и вам не нужно будет делать это снова. Всегда вносите изменения в vvv-custom.yml, потому что vvv-config.yml перезаписывается при обновлении VVV.
Добавьте следующий код в раздел сайтов в vvv-custom.yml, чтобы добавить новый сайт.
newsite:
repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
description: "Установка WordPress с подкаталогом"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
branch: master
nginx_upstream: php
skip_provisioning: false
hosts:
- newsite.test
custom:
wp_type: subdirectoryПеременные
repo variable относится к предопределенному репозиторию Github, который содержит информацию о том, как настроить новый сайт WordPress на VM. На данный момент мы используем репозиторий, поддерживаемый VVV.
description переменная самоочевидна.
vm_dir — это фактический каталог внутри VM, где будет находиться ваш сайт.
local_dir — это каталог на вашем хосте, где находится ваш сайт.
branch переменная говорит Vagrant проверить основную ветку репозитория в данном примере.
nginx_upstream используется для установки, куда Nginx передает запросы, и обычно используется для изменения версии PHP, необходимой для вашей установки. php здесь относится к версии PHP по умолчанию, которая составляет 7.2. Вы можете использовать php71, чтобы изменить ее на PHP 7.1, или php56, чтобы изменить ее на PHP 5.6.
skip_provisioning установлен в false, что означает, что нам нужно включить этот сайт в VM.
hosts переменная используется для установки URL, который нам нужно будет использовать для доступа к сайту.
custom раздел полезен, если вам нужен дополнительный контроль над вашим сайтом WordPress. Вы можете использовать этот раздел для настройки установки мультисайта или установки другой версии WordPress и даже изменения имени базы данных или вашего сайта, который будет использоваться для вашей установки.
wp_type переменная решает, будет ли ваша установка одиночной, мультисайтом с доменами или мультисайтом с подкаталогом. wp_type принимает четыре значения: single, subdomain, subdirectory и none. С установкой поддомена вы можете определить несколько хостов для вашей установки мультисайта в следующем формате
hosts:
- multisite.test
- site1.multisite.test
- site2.multisite.test
custom:
wp_type: subdomainВы можете добавить еще одну переменную в разделе custom, которая называется wp_version. Вы можете установить ее на nightly, если хотите установить ночную версию WordPress. Она принимает три значения: nightly, latest и номер версии.
custom:
wp_version: nightlyСуществует еще одна переменная, db_name, которая позволяет вам установить имя базы данных для вашей установки.
custom:
db_name: super_secet_db_nameИ, наконец, site_title переменная позволяет вам установить заголовок вашего WP сайта.
custom:
site_title: Мой потрясающий сайт разработкиЭто должно охватить все переменные и параметры, которые вам понадобятся для добавления вашего собственного сайта в VVV. После изменения файла vvv-custom.yml просто выполните следующую команду, чтобы сделать ваш новый сайт рабочим.
$ vagrant reload --provisionДобавление существующего сайта
До сих пор мы узнали, как добавить совершенно новый сайт в VVV. Но что, если вы уже работаете над сайтом и хотите добавить его под VVV? Давайте посмотрим, как мы можем это сделать.
Чтобы добавить существующий сайт, первый шаг такой же, как и раньше, т.е. редактирование файла vvv-custom.yml и добавление следующего кода.
howtoforge:
repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
description: "Сайт WordPress"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
hosts:
- howtoforge.localЭто скажет VVV настроить новый сайт, доступный по адресу http://howtoforge.local. Но это совершенно новый сайт. Что нам нужно сделать, так это преобразовать его в нашу существующую установку. Для этого нам нужно скопировать файлы из нашей существующей установки WordPress в локальный каталог, т.е. /home/user/vvv/www/newsite
$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/Теперь нам нужно скопировать базу данных. Простой способ сделать это — экспортировать вашу существующую базу данных в файл .sql, скопировать этот файл в каталог нашего блога и импортировать базу данных снова, подключившись по SSH к нашей VM.
Сначала войдите в mysql в командной строке вашей локальной системы и используйте следующую команду для экспорта базы данных.
$ cd /home/user/vvv/www/newsite
$ mysqldump -u username -p database_name > data-dump.sqlТеперь мы можем снова предоставить VM.
$ vagrant reload --provisionSSH в вашу VM.
$ vagrant sshТеперь импортируйте базу данных обратно в вашу VM.
$ cd /srv/www/newsite
$ mysql -u root -p newsite < data-dump.sqlVVV уже создал новую базу данных во время предоставления для нашего блога с именем newsite. Пароль для пользователя root здесь — root. Вышеуказанная команда импортирует нашу существующую базу данных в новую.
Это завершает настройку существующего сайта в VVV.
Включение SSL
Установки localhost обычно не защищены. И установка собственного сертификата на localhost может быть длительным и утомительным процессом, даже с Let’s Encrypt. Но VVV делает этот процесс довольно простым и по умолчанию имеет SSL, включенный на всех ваших установках WordPress. Просто начните использовать https с вашими сайтами. В первый раз ваш браузер будет жаловаться на недействительный сертификат, но добавьте его как исключение, и с этого момента все должно быть в порядке.
Обновление WordPress
Вы можете обновить свою установку WordPress из своей панели управления. Также VVV будет обновлять ваш WordPress всякий раз, когда вы повторно предоставляете VM. Вы также можете обновить WordPress вручную, загрузив его с WordPress.org и распаковав zip-файл. И вы также можете использовать WP CLI, который поставляется с VVV. Чтобы обновить ваш сайт с помощью WP CLI, используйте следующие команды.
$ cd /srv/www/newsite
$ wp core updateОбновление VVV
Первый шаг — остановить машину Vagrant.
$ vagrant haltТеперь убедитесь, что ваш vagrant и Virtualbox обновлены. Если нет, загрузите их снова и установите.
Выполните следующую команду, чтобы обновить ваш Vagrant box. Это необязательно, но лучше, если вы продолжите это делать.
$ vagrant box updateТеперь получите последнюю версию VVV с Github.
$ git pullПовторно предоставьте box, чтобы завершить обновление.
$ vagrant up --provisionДополнительные инструменты
VVV поставляется с различными утилитами, которые вы можете установить. Вы найдете их в разделе утилит в вашем файле vvv-custom.yml. По умолчанию tls-ca и phpmyadmin включены. Вы можете дополнительно установить memcached, opcache, webgrind, mongodb, tideways и версии php от 5.6 до 7.3, убрав # перед ними в разделе утилит.
Вы даже можете добавить свое собственное программное обеспечение, которое хотите установить. Вам нужно будет изменить файл vvv-custom.yml на что-то вроде
utilities:
core:
- tls-ca
- phpmyadmin
java:
- java7
utility-sources:
java:
repo: https://github.com/example/java-utilities.git
branch: masterВы добавите новый раздел, java, здесь, например. Код для установки будет поступать из git-репозитория. Ваш git-репозиторий должен быть структурирован примерно так
java7/
provision.shФайл provision.sh будет содержать необходимый код для установки java в вашей VM. Имя папки должно совпадать с именем, которое вы использовали выше в файле vvv-custom.yml.
Заключение
На этом наш учебник о том, как настроить локальную среду разработки WordPress с Vagrant, завершен. Дайте нам знать, если у вас есть какие-либо вопросы.
Get new posts in your inbox
No spam. Unsubscribe anytime.