Поиск по сайту:

Настройка локальной среды разработки WordPress с помощью Vagrant


На этой странице

  1. Установка VirtualBox
  2. Установка бродяги
    1. Установка модуля обновления Vagrant Hosts

    1. Линукс
    2. Окна
    3. ОС Mac

    1. Запуск ВВВ
    2. Примечание для пользователей Windows 8/10
    3. Добавить новый сайт
    4. Переменные
    5. Добавить существующий сайт
    6. Включить SSL
    7. Обновление WordPress
    8. Обновление ВВВ

    Если вы разрабатываете с помощью WordPress, предпочтительнее настроить локальную среду, в которой вы установили сервер, инструмент базы данных и несколько сайтов Wordpress вместе с другими необходимыми инструментами. Это нормально, если вы работаете только над несколькими проектами. Но когда они размножаются, возникают проблемы. А также головные боли, связанные с поддержкой нескольких сред, потому что у клиента другие настройки, чем у вас.

    Чтобы обойти эту проблему, мы можем использовать то, что мы называем Vagrant. Vagrant — это инструмент для работы с виртуальными средами. Он предоставляет простой способ настроить локальную среду разработки с помощью нескольких команд, и вы можете реплицировать полную настройку столько раз, сколько хотите, с легкостью и без хлопот, связанных с установкой всего вручную. Чтобы запустить Vagrant, вам нужно определить набор правил. Vagrant настраивает вашу виртуальную машину на основе этих правил. Для этого Vagrant нужны два файла: Vagrantfile, который сообщает Vagrant, какое оборудование требуется виртуальной машине, и файл развертывания, который сообщает Vagrant, что делать на виртуальной машине.

    Поскольку Vagrant работает с виртуальными средами, вам потребуется программное обеспечение виртуальной машины для запуска Vagrant. Для наших целей мы будем использовать Virtualbox с открытым исходным кодом.

    Установка Виртуалбокса

    Перейдите на страницу загрузки Virtualbox и загрузите двоичный файл, соответствующий вашему гостевому хосту. (Гостевой хост — это операционная система, из которой вы будете запускать среду разработки.) Установите Virtualbox.

    Установка бродяги

    Загрузите двоичный файл, соответствующий вашей операционной системе, со страницы загрузки Vagrants и установите его.

    Чтобы проверить, успешно ли он установлен, введите следующую команду в командной строке ОС.

    $ vagrant -v

    Установка плагина обновления Vagrant Hosts

    Плагин vagrant-hostupdater изменит файл hosts вашей ОС, чтобы домены, настроенные Vagrant, работали. Чтобы установить его, выполните следующую команду

    $ vagrant plugin install vagrant-hostsupdater

    Перезагрузите ОС после установки Vagrant/Virtualbox, чтобы не было проблем с сетью.

    Установка Git

    линукс

    Для этого руководства нам также понадобится контроль версий 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 "Your Name" 
    $ git config --global user.email ""

    Окна

    Чтобы установить Git в Windows, перейдите на страницу загрузки Gits и установите двоичный файл.

    Mac OS

    Если у вас установлен homebrew, вы можете установить Git с помощью следующей команды.

    $ brew install git

    или вы можете загрузить бинарный пакет со страницы загрузки Gits и установить его.

    Установите различные бродячие бродяги

    Вместо того, чтобы создавать настройку 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

    Здесь мы клонируем основную ветку репозитория в системе. Если вам нужны более быстрые обновления, вы можете использовать ветку разработки.

    Запуск ВВВ

    Перейдите в каталог, в который вы клонировали VVV.

    $ cd vvv

    Запустите среду Vagrant, которая установит виртуальную машину и все настроит.

    $ vagrant up

    Этот процесс может занять некоторое время, поэтому наберитесь терпения. Вас могут попросить ввести пароль root во время процесса, необходимого для настройки файла hosts вашей системы.

    Примечание для пользователей Windows 8/10

    Если вы используете Windows, вы можете получить следующую ошибку

    ==> default: Booting VM... 
    There was an error while executing `VBoxManage`, a CLI used by Vagrant
    for controlling VirtualBox. The command and stderr is shown below.

    Command: ["startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless"]

    Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only
    Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND).
    VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
    VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

    Обратите внимание на упомянутый здесь адаптер:

    VirtualBox Host-Only Ethernet Adapter #3

    Откройте Панель управления >> Центр управления сетями и общим доступом. Теперь нажмите «Изменить настройки адаптера». Щелкните правой кнопкой мыши адаптер, имя или имя устройства которого совпадает с VirtualBox Host-Only Ethernet Adapter # 3, и выберите Свойства. Нажмите кнопку Настроить.

    Теперь нажмите на вкладку Драйвер. Нажмите Обновить драйвер. Выберите Выполнить поиск драйверов на моем компьютере. Теперь выберите Выбрать из списка доступных драйверов на моем компьютере. Выберите полученный вариант и нажмите «Далее». Нажмите Закрыть, чтобы завершить обновление. Теперь вернитесь в окно Terminal/Powershell/Command и повторите команду vagrant up. На этот раз все должно работать нормально.

    Как только это будет завершено, вы можете посетить свою панель инструментов VVV по адресу http://vvv.test.

    VVV поставляется с двумя установками WordPress по умолчанию — http://two.wordpress.test Оба сайта имеют одинаковые данные для входа, admin в качестве имени пользователя и пароль в качестве пароля. Учетные данные базы данных для обоих сайтов — wp в качестве имени пользователя и пароля. Учетные данные пользователя MySQL Root являются root как имя пользователя, так и пароль. И учетные данные корневых пользователей виртуальных машин являются root в качестве имени пользователя и vagrant в качестве пароля.

    На http://trunk.wordpress.net есть установка wordpress для разработчиков, но она не будет работать, так как не была подготовлена. Эта установка полезна, если вы являетесь участником WordPress и работаете с заявками и исправлениями Trac. Чтобы включить его, откройте vvv-custom.yml и измените значение skip_provisioning в wordpress-trunk на false, а затем повторно инициализируйте виртуальную машину с помощью команды

    $ vagrant reload --provision

    Существует еще одна установка WordPress без URL-адреса, помеченного как wordpress-meta-environment. Эта установка создаст среду, полезную для участия в мета-команде WordPress, например, WordCamps, .org и т. д. Чтобы включить эту установку, добавьте следующую строку в wordpress-meta-environment в файле vvv-custom.yml.

    hosts:
    - wpmeta.test

    Затем измените значение skip_provisioning на false и повторно инициализируйте виртуальную машину.

    $ vagrant reload --provision

    Добавить новый сайт

    Если вы хотите добавить еще один сайт к виртуальной машине, вам нужно будет отредактировать файл 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: "A WordPress subdir multisite install"
    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 относится к предварительно определенному репозиторию Github, который содержит информацию о том, как настроить новый сайт WordPress на виртуальной машине. На данный момент мы используем репо, поддерживаемое VVV.

    переменная описания не требует пояснений.

    vm_dir — это фактический каталог внутри виртуальной машины, в котором будет находиться ваш сайт.

    local_dir — это каталог на вашем хост-компьютере, где находится ваш сайт.

    переменная branch указывает Vagrant проверить основную ветку репозитория в приведенном здесь примере.

    nginx_upstream используется для указания того, куда Nginx передает запросы, и обычно используется для изменения версии PHP, необходимой для вашей установки. php здесь относится к версии PHP по умолчанию, которая равна 7.2. Вы можете использовать php71, чтобы изменить его на PHP 7.1 или php56, чтобы изменить его на PHP 5.6.

    skip_provisioning имеет значение false, что означает, что нам нужно включить этот сайт в виртуальную машину.

    Переменная hosts используется для установки URL-адреса, который нам понадобится для доступа к сайту.

    Пользовательский раздел полезен, если вам нужен дополнительный контроль над вашим сайтом WordPress. Вы можете использовать этот раздел для настройки многосайтовой установки или установки другой версии WordPress и даже изменить имя базы данных или вашего сайта, которые будут использоваться для вашей установки.

    Переменная wp_type определяет, будет ли ваша установка одиночной, многосайтовой с доменами или многосайтовой с подкаталогом. wp_type принимает четыре значения: single, subdomain, subdirectory и none. При установке поддомена вы можете определить несколько хостов для многосайтовой установки в следующем формате.

    hosts:
        - multisite.test
        - site1.multisite.test
        - site2.multisite.test
      custom:
        wp_type: subdomain

    Вы можете добавить еще одну переменную в пользовательский раздел, который называется wp_version. Вы можете установить его на ночную, если хотите установить ночную версию WordPress. Он принимает три значения: ночное, последнее и номер версии.

    custom: 
         wp_version: nightly
    

    Существует еще одна переменная, db_name, которая позволяет вам установить имя базы данных для вашей установки.

    custom:
        db_name: super_secet_db_name
    

    И, наконец, переменная site_title позволяет вам установить заголовок вашего сайта WP.

    custom:
        site_title: My Awesome Dev Site

    Это должно охватывать все переменные и параметры, которые вам понадобятся для добавления собственного веб-сайта в VVV. После изменения файла vvv-custom.yml просто запустите следующую команду, чтобы ваш новый сайт заработал.

    $ vagrant reload --provision

    Добавить существующий сайт

    Пока что мы узнали, как добавить в VVV совершенно новый сайт. Но что делать, если вы уже работаете над сайтом и хотите добавить его под ВВВ. Давайте посмотрим, как мы можем это сделать.

    Чтобы добавить существующий сайт, первый шаг такой же, как и раньше, то есть редактирование файла vvv-custom.yml и добавление следующего кода.

    howtoforge:
        repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
        description: "A WordPress site"
    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 на нашу виртуальную машину.

    Сначала войдите в mysql в командной строке вашей локальной системы и используйте следующую команду для экспорта базы данных.

    $ cd /home/user/vvv/www/newsite
    $ mysqldump -u username -p database_name > data-dump.sql

    Теперь мы можем снова подготовить виртуальную машину.

    $ vagrant reload --provision

    SSH на вашу виртуальную машину.

    $ vagrant ssh

    Теперь импортируйте базу данных обратно в виртуальную машину.

    $ cd /srv/www/newsite 
    $ mysql -u root -p newsite < data-dump.sql

    VVV уже создала новую базу данных во время подготовки для нашего блога с именем newsite. Пароль для пользователя root здесь root. Приведенная выше команда импортирует нашу существующую базу данных в новую.

    На этом настройка существующего сайта в VVV завершена.

    Включить SSL

    Установки на локальном хосте обычно не защищены. А установка собственного сертификата на локальном хосте может быть длительным и утомительным процессом, даже с Lets Encrypt. Но VVV делает этот процесс довольно простым и по умолчанию включает SSL для всех ваших установок WordPress. Просто начните использовать https на своих сайтах. В первый раз ваш браузер будет жаловаться на недействительный сертификат, но добавит его в качестве исключения, и с этого момента все должно быть в порядке.

    Обновление WordPress

    Вы можете обновить установку WordPress с панели управления. Кроме того, VVV будет обновлять ваш WordPress всякий раз, когда вы повторно инициализируете виртуальную машину. Вы также можете обновить WordPress вручную, загрузив его с WordPress.org и распаковав zip-файл. И вы также можете использовать WP CLI, который связан с VVV. Чтобы обновить свой сайт с помощью WP CLI, используйте следующие команды.

    $ cd /srv/www/newsite
    $ wp core update

    Обновление ВВВ

    Первый шаг — остановить машину Vagrant.

    $ vagrant halt

    Теперь убедитесь, что ваш vagrant и Virtualbox обновлены. Если нет, загрузите их снова и установите.

    Выполните следующую команду, чтобы обновить поле Vagrant. Это необязательно, но лучше, чтобы вы продолжали это делать.

    $ vagrant box update

    Теперь загрузите последнюю версию VVV с Github.

    $ git pull

    Повторно инициализируйте ящик, чтобы завершить обновление.

    $ 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 на вашу виртуальную машину. Имя папки должно совпадать с именем, которое вы использовали выше в файле vvv-custom.yml.

    Заключение

    На этом мы завершаем наше руководство о том, как настроить локальную среду разработки WordPress с помощью Vagrant. Дайте нам знать, если у вас есть какие-либо вопросы.