Bedrock — это стартовый шаблон для WordPress с современными инструментами разработки, простым конфигурированием и улучшенной файловой структурой:


  • файлы и папки wp-content/ перемещены в app/
  • управление установкой WordPress и плагинов с помощью менеджера пакетов Composer. Вы и ваша команда будете точно знать о всех зависимостях.
  • настройки сайта осуществляются с помощью присвоения значений переменным в одном конфигурационном файле .env.

Кроме этого, Bedrock может быть дополнен замечательным плагином Soil и стартовой темой Sage. В статье описан алгоритм развертывания проекта на его основе в Ubuntu 16.04. Туториал по установке Bedrock в Windows здесь.



Требования к установке:


PHP

Установка LAMP в Ubuntu


Установка утилиты командной строки tasksel


sudo apt-get install tasksel

Установка LAMP


sudo tasksel install lamp-server

Для проверки установки откройте в любом браузере адрес localhost. Если отображается страница с заголовком "Apache2 Ubuntu Default Page" — установка LAMP прошла успешно.


Настройка виртуального хоста


В данном примере папка проекта: ~/www/example.local
Любым текстовым редактором создайте в папке sudo vim /etc/apache2/sites-available/ файл
example.local.conf. Я делаю это так:


sudo vim /etc/apache2/sites-available/example.local.conf

Содержание файла example.local.conf


<VirtualHost *:80>
ServerName example.local
DocumentRoot /home/eustatos/www/example.local/web
<Directory />
  Options Indexes FollowSimLinks Includes ExecCGI
  AllowOverride All
  Require all granted
  Allow from all
</Directory>
</VirtualHost>

Активируем сайт нашего проекта


sudo a2ensite example.local

Далее вносим дополнения в файл /etc/hosts


127.0.0.2   example.local

На этом настройка хоста для нашего проекта закончена.


Composer

Перед установкой Composer убедимся, что установлен php


php -v

Если отображается информация о версии php, то переходим к следующему шагу


Установка менеджера пакетов composer


Источник


php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --install-dir=/usr/bin/composer
php -r "unlink('composer-setup.php');"

Для установки composer глобально выполните


sudo mv composer.phar /usr/bin/composer

Для проверки корректной установки глобально выполните


composer about

При корректной установке глобально будет выведена информация о composer.
Если установлен php7.0, то необходимо дополнительно выполнить:


sudo apt-get install php-xml

Установкa BedRock


Как было сказано выше, наш проект размещается ~/www/example.local


Способ 1


Скопируйте git-репозиторий с Bedrock:


cd ~/www
git clone git@github.com:roots/bedrock.git example.local && cd example.local

Если SSH-ключ не установлен на локальной машине и github, выполните:


cd ~/www
git clone https://github.com/roots/bedrock.git example.local

Выполните


cd ~/www/example.local
composer install

Способ 2


Рекомендуемый разработчиками


cd ~/www
composer create-project roots/bedrock example.local

Для обоих способов, если composer установлен локально вместо composer указываем php {путь}composer.phar.


Настройка Bedrock


Копируем файл .env.example в файл .env


Листинг .env
DB_NAME=wp_example
DB_USER=wp_example
DB_PASSWORD=password
DB_HOST=localhost

WP_ENV=development
WP_HOME=http://example.local
WP_SITEURL=${WP_HOME}/wp

# Generate your keys here: https://roots.io/salts.html
AUTH_KEY=
SECURE_AUTH_KEY=
LOGGED_IN_KEY=
NONCE_KEY=
AUTH_SALT=

Значения ключей AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, MONCE_KEY, AUTH_SALT можно получить по ссылке


Способ для гиков

Установить WP-CLI Dotenv command


wp package install aaemnnosttv/wp-cli-dotenv-command:^1.0

После создаем .env и генерируем ключи


wp dotenv init --template=.env.example --with-salts

При желании можно и остальные параметры изменить таким образом:


wp dotenv set DB_NAME wp_example
wp dotenv set DB_USER wp_example
wp dotenv set DB_PASSWORD password
wp dotenv set DB_HOST localhost
wp dotenv set WP_HOME http://example.local

Создание базы данных и пользователя (при необходимости)
$ mysql -u root -p
mysql> CREATE USER 'wp_example'@'localhost' IDENTIFIED BY 'password';
mysql> CREATE DATABASE wp_example CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON wp_example.* TO 'wp_example'@'localhost';

Настройка WordPress


  1. Откройте удобным браузером http://example.local/wp/wp-admin
  2. Введите запрашиваемую информацию
  3. Настройка завершена
Поделиться с друзьями
-->

Комментарии (3)


  1. hudson
    28.09.2016 23:58
    +1

    А Timber не хотите в качестве шаблонизатора попробовать? Я в общем-то далёк от Wordpress разработки, но в последнее время довелось поднять проект на WP + Composer + Timber. Timber это Twig для вордпресса. Создание тем стало в разы приятнее, появилось некое подобие контроллеров. В общем вполне позитивный опыт.


  1. nektobit
    29.09.2016 19:19

    А вот по структуре — у меня после установки bedrock использует themes, plugins, uploads по стандартному пути \web\wp\wp-content. Как его заставить использовать папки из app?


    1. eustatos
      29.09.2016 19:30

      Возможно, неверно настроен виртуальный хост.


      DocumentRoot /home/eustatos/www/example.local/web

      Обратите внимание на web.
      Возможно, нарушена структура каталогов. Она должна быть следующей


      /home/eustatos/www/example.local
      +-- config
      +-- vendor
      L-- web
          +-- app
          L-- wp
      

      Возможно, некорректно настроен файл .env