Quickstart Drupal Development Environment on Linux
Для работы с 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:
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
links:
sudo apt install links
xdg-open http://localhost
xdg-open http://localhost/info.php
Уже после этого этапа можно полноценно работать с локальными сайтами.
Инструкция по настройке работы сайтов не в /var/www/, а в домашней папке пользователя: Apache#Настройка хранения сайтов в домашней папке.
Установить phpMyAdmin - веб-интерфейс для управления MySQL:
sudo apt install phpmyadmin
Проверить phpMyAdmin: http://localhost/phpmyadmin
Composer — это современный менеджер зависимостей PHP. Он необходим Drupal, начиная с версии Drupal 8.
Установить Composer:
sudo apt install composer
Проверить версию установленного Composer: composer --version
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 для двух задач:
- скачивать последние версии библиотек и модулей из удаленных репозиториев, таких, как http://drupal.org или http://github.com;
- сохранять в собственном репозитории промежуточные версии проектов (сайтов), над которыми ведется работа.
Установить Git:
sudo apt-get install git
Проверить версию установленного Git:
git --version
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