Quickstart Drupal Development Environment on Linux

Матеріал з Wiki.Zina
Версія від 16:10, 8 травня 2020, створена Romych (обговорення | внесок) (→Необходимый минимум: Apache, MySQL и PHP)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Для работы с Drupal веб-разработчику нужно настроить на своем компьютере такой набор приложений:

  • Apache
  • MySQL
  • PHP

Это необходимый минимум. Кроме него, необязательно, но полезно установить следующие программы и библиотеки:

  • phpMyAdmin — веб-интерфейс для управления MySQL;
  • Composer — менеджер зависимостей для PHP, требуется для Drupal 8;
  • uploadprogress — библиотека PHP для отображения процесса загрузки, нужна для Drupal;
  • Drush — управление Drupal из командной строки;
  • Git — для скачивания последних версий библиотек и модулей Drupal и управления версиями вашего кода;
  • Node.js и npm — сервер JavaScript приложений и менеджер пакетов, необходимы для Sass и Gulp;
  • Sass и Gulp — продвинутый синтаксис и препроцессор CSS.

Установим и настроим все это максимально быстро и с минимальным количеством действий.

Инструкция протестирована на Ubuntu 15.04 и Debian 8.2.

Необходимый минимум: Apache, MySQL и PHP

[ред. | ред. код]

Установите Apache, MySQL и PHP:

sudo apt install apache2 mysql-server php

Добавьте ServerName localhost в конфиг Apache:

sudo sh -c "echo 'ServerName localhost' >> /etc/apache2/apache2.conf"

Проверьте конфиг Apache: apachectl -t — должно появиться сообщение Syntax OK.

Добавьте вашего пользователя в группу www-data. Это важно для Apache, например, когда Drupal загружает на сайт файлы.

sudo usermod -a -G www-data $(whoami)

Включите модуль Apache mod_rewrite для создания человекопонятных URL:

sudo a2enmod rewrite
sudo apachectl restart

Создайте тестовый файл для проверки PHP:

sudo sh -c 'echo "<?php phpinfo(); ?>" >> /var/www/html/info.php'

Проверьте Apache: http://localhost

Проверьте PHP: http://localhost/info.php

Если нет графического интерфейса (например, при работе через SSH) — можно протестировать в командной строке с использованием консольного браузера links:
sudo apt install links
xdg-open http://localhost
xdg-open http://localhost/info.php

Уже после этого этапа можно полноценно работать с локальными сайтами.

Инструкция по настройке работы сайтов не в /var/www/, а в домашней папке пользователя: Apache#Настройка хранения сайтов в домашней папке.

phpMyAdmin

[ред. | ред. код]

Установить phpMyAdmin - веб-интерфейс для управления MySQL:

sudo apt install phpmyadmin

Проверить phpMyAdmin: http://localhost/phpmyadmin

Composer — это современный менеджер зависимостей PHP. Он необходим Drupal, начиная с версии Drupal 8.

Установить Composer:

sudo apt install composer

Проверить версию установленного Composer: composer --version

uploadprogress

[ред. | ред. код]

uploadprogress — это библиотека PHP для отслеживания прогресса загрузки файла на сервер. Без этой библиотеки в статусе Drupal admin/reports/status может выводиться сообщение об ошибке.

Установка библиотеки uploadprogress:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php-uploadprogress

Drush (акроним словосочетания "Drupal Shell") — это must-have инструмент вебмастеров Drupal. Drush позволяет из командной строки выполнять множество действий над Drupal, например установку сайта, очистку кэша, смену паролей, создание резервной копии и многое другое.

Есть несколько способов установки Drush — например, через PEAR или Composer. Так как для Drupal 8 все равно требуется Composer, то используем этот вариант.

sudo git clone --branch 8.x https://github.com/drush-ops/drush.git /opt/drush
cd /opt/drush
sudo composer install
sudo ln -s /opt/drush/drush /usr/local/bin/drush

Проверить версию установленного Drush:

drush version

Git — система управлениями версиями кода. Разработчику Drupal нужно иметь Git для двух задач:

  1. скачивать последние версии библиотек и модулей из удаленных репозиториев, таких, как http://drupal.org или http://github.com;
  2. сохранять в собственном репозитории промежуточные версии проектов (сайтов), над которыми ведется работа.

Установить Git:

sudo apt-get install git

Проверить версию установленного Git:

git --version

Node.js и npm

[ред. | ред. код]

Node.js — платформа для разработки серверных приложений на языке JavaScript. Напрямую при работе с Drupal она не используется, но она требуется для установки Sass, Gulp и других крутых штук, применяемых в современной верстке сайтов.

Вместе с Node.js потребуется npm — менеджер пакетов, который поддерживает пакеты для Node.js, Gulp, Grunt, jQuery и других популярных платформ.

Установим официальный репозиторий и оба приложения — Node.js и npm.

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install nodejs

Проверить версию:

node -v
npm -v

Sass — это препроцессорный язык с синтаксисом SCSS. Проще говоря, это CSS с расширенными и более удобными возможностями. Но т.к. код SCSS все-таки не чистый CSS и его нельзя напрямую давать браузеру, то он сначала обрабатывается препроцессором, после чего браузеру отдается стандартный, хорошо оптимизированный CSS.

Установка Sass:

sudo apt-get install ruby-sass

Проверить версию:

sass -v

Gulp — сборщик кода Sass/SCSS. Он запускается в фоне и, пока вы работаете с шаблонами сайта, следит за изменениями в ваших файлах SCSS и на лету пересобирает их в понятный браузеру и оптимизированный по размеру CSS.

У вас уже должны быть установлены Node.js, NPM и Sass, как описано выше.

Установите Gulp:

sudo npm install -g gulp

Параметр -g означает, что Gulp будет установлен глобально, т.е. в общесистемную папку.

Дальнейшая настройка Gulp делается локально, в папке вашего проекта.

Проверить версию:

gulp -v

Короче говоря

[ред. | ред. код]

Установить всё:

sudo apt-get install -y curl; curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y apache2 php5 php-pear mysql-server php5-dev phpmyadmin dnsmasq composer git nodejs ruby-sass
composer global require drush/drush:dev-master
sed -i '1i export PATH="$HOME/.composer/vendor/bin:$PATH"' $HOME/.bashrc; source $HOME/.bashrc
sudo pecl install uploadprogress; sudo sh -c 'echo "extension=uploadprogress.so" >> /etc/php5/apache2/php.ini'
sudo sh -c 'echo "<?php phpinfo(); ?>" >> /var/www/html/info.php'
sudo a2enmod rewrite; sudo usermod -a -G www-data $(whoami); sudo service apache2 restart
sudo sh -c 'echo "\naddress=/loc/127.0.0.1\nlisten-address=127.0.0.1" >> /etc/dnsmasq.conf'
sudo service dnsmasq restart
sudo npm install -g gulp

Проверить:

sudo apt-get install links
xdg-open http://localhost
xdg-open http://localhost/info.php
xdg-open http://localhost/phpmyadmin
ping -c 4 qwerty.loc
apache2 -v
php -v
drush version
git --version
node -v
npm -v
sass -v
gulp -v