Установка Drupal на VirtualBox
Опубликовано вс, 01/02/2015 - 01:19
Из предыдущей статьи "Установка и настройка VirtualBox" у нас уже есть установленный apache сервер с базой данных mysql, openssh сервером и drush.
В этой статье нам предстоит: настроить ssh доступ, создать базу данных для нашего сайта, поставить Drupal, создать базовый конфиг для apache.
Содержание
Настройка ssh доступа
Первым делом нам нужно настроить ssh соединение, чтобы было удобно и комфортно работать с виртуальной машиной. Можно работать и через консоль виртуальной машины, но лично мне удобно использовать PuTTY (ssh клиент), т.к. помимо доступа по ssh есть поддержка копирования/вставки с помощью CTRL + C и правой кнопки мыши – очень удобно не набирать все вручную при установке различных пакетов.
Также нам потребуется PuTTYgen (генерация приватного ключа в .ppk формате) и WinSCP.
WinSCP - это графический клиент SFTP (SSH File Transfer Protocol) для Windows с открытым исходным кодом. Он также поддерживает [устаревший] протокол SCP (Secure Copy Protocol). Предназначен для защищённого копирования файлов между компьютером и серверами, поддерживающими эти протоколы.
Скачать WinSCP, PuTTY и PuTTYgen можно по ссылкам:
После установки WinSCP, создаем новое соединение. Указываем ip-адрес виртуальной машины (его можно узнать в консоли виртуалки с помощью команды ifconfig).
Жмем кнопку Сохранить, а затем Логин. При коннекте будет запрошен пароль от созданного Вами юзера. После подключения появится предупреждение о добавлении host ключа в кэш.
Жмем Да. Затем нажимаем на иконку запуска PuTTY - должна появиться ошибка, свидетельствующая о том, что exe файл PuTTY не найден по такому-то адресу. Просто копируем exe файл в директорию, которая указана в сообщении об ошибке (в моем случае C:\Program Files (x86)\PuTTY\putty.exe).
После создания папки PuTTY на диске С:\ и размещения файла в ней, при повторном вызове консоли будет выведено предупреждение о добавлении host ключа в кэш PuTTY. Жмем Да.
После ввода пароля вы будете находиться в домашней директории. Теперь необходимо сгенерировать ssh ключи. Выполняем следующую команду (в процессе создания можете оставлять все по умолчанию, т.е. на все вопросы жмем ENTER)
1 |
ssh-keygen -t rsa |
После выполнения этой команды будут созданы 2 ключа в директории /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh - публичный (id_rsa.pub) и приватный (id_rsa). Через менеджер WinSCP переместите эти ключи в директорию Windows (ИМЯ_ПОЛЬЗОВАТЕЛЯ- имя Вашего текущего пользователя в Windows)
1 |
C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\ |
Если папки .ssh нет - создайте ее. Затем в директории хранения ssh ключей на Windows (C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.ssh\) открываем любым текстовым редактором ключ id_rsa.pub и копируем его содержимое с помощью CTRL + C.
Возвращаемся в консоль PuTTY, заходим в папку .ssh и выполняем команду редактирования (одновременно и создания, т.к. данный файл еще не существует) файла authorized_keys.
1 2 |
cd /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh nano authorized_keys |
С помощью правой кнопки мыши (вставка скопированных данных из буфера обмена) вставляем наш публичный ключ.
ВАЖНО! Ключ должен быть вставлен в одну строку без переносов, иначе возникнут проблемы с коннектом.
Выход из режима редактирования (CTRL + X) запросит подтвердить изменения, жмете Y и ENTER.
Теперь проверим наш доступ по ssh ключу. Закрываем PuTTY и WinSCP.
Для WinSCP потребуется сгенерировать ключ .ppk (PuTTY private key). Воспользуемся утилитой PuTTYgen. Запускаем программку, по кнопке Load загружаем приватный ключ (id_rsa) и жмем на кнопку Save private key. Ключ .ppk сохраняем в той же директории, где у нас хранятся остальные ключи.
Запускаем SFTP менеджер снова, жмем на кнопку Edit, идем в настройке соединения Advanced → SSH → Authentication, указываем путь до приватного ключа .ppk и логинимся.
Если Вы все сделали правильно, Вы залогинитесь в WinSCP, а затем и в консоль PuTTY без запроса пароля.
Создание статического ip-адреса
По умолчанию формирование ip-адреса для виртуальной машины происходит динамически, т.е. нужно будет периодически корректировать айпишник в настройках WinSCP для Вашего соединения. Чтобы избежать этого, нужно настроить статический ip-адрес и определиться с его диапазоном.
В локальных сетях, основанных на протоколе IPv4, могут использоваться специальные адреса, назначенные IANA (стандарты RFC 1918 и RFC 1597):
- 10.0.0.0—10.255.255.255;
- 172.16.0.0—172.31.255.255;
- 192.168.0.1—192.168.255.255.
Для нашей сети вполне подойдет адрес в диапазоне 192.168.0.1 — 192.168.0.255 с маской 255.255.255.0. Для этого необходимо внести изменения в файл interfaces, расположений по адресу /etc/network/interfaces
1 |
sudo nano /etc/network/interfaces |
Создаем дополнительный интерфейс
1 2 3 4 5 |
# Custom interface auto eth0:0 iface eth0:0 inet static address 192.168.0.200 netmask 255.255.255.0 |
Далее перезапускаем сетевую службу, чтобы изменения вступили в силу
1 |
sudo /etc/init.d/networking restart |
и проверяем, что настройки подхватились с помощью команды ifconfig
Изменяем ip-адрес в настройках WinSCP соединения на созданный статический (192.168.0.200) и больше к нему не возвращаемся.
Установка сайта
Для начала нам необходимо создать папку для сайта, например devsite. Папка сайта будет располагаться по адресу /var/www/devsite.
Для перехода в нужную директорию используем команду cd и создаем нашу папку.
1 2 |
cd /var/www/ sudo mkdir devsite |
Скачиваем последнию версию друпал, используя drush
1 |
drush dl |
Переименовываем папку drupal-7.34 в src.
1 |
sudo mv drupal-7.34 src |
Я намерено не располагаю файлы сайта непосредственно в директории devsite, т.к. по моему личному опыту зачастую впоследствии требуется создавать дампы базы (файлов). Очень удобно их хранить в директории сайта в определенной папке, например в backup, т.е. дерево папок выглядит примерно таким образом:
- devsite/src - здесь все файлы сайта
- devsite/backup - сюда складываем дампы базы и файлов.
Директорию мы подготовили, теперь займемся базой.
1 |
mysql -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p |
Жмем Enter, вводим пароль и создаем базу данных
1 |
CREATE DATABASE devsite; |
Для выхода из редактора запросов mysql нажмите CTRL+C.
Конфигурирование сайта
Переходим в директорию /etc/apache2/sites-available. В ней уже находится дефолтный конфиг default. Создаем собственный.
1 |
sudo nano devsite |
и вставляем следующие настройки с помощью CTRL+C/прав.кнопка мыши.
1 2 3 4 5 6 7 |
<VirtualHost *:80> ServerName devsite ServerAlias www.devsite DocumentRoot /var/www/devsite/src ErrorLog ${APACHE_LOG_DIR}/devsite.error.log CustomLog ${APACHE_LOG_DIR}/devsite.access.log combined </VirtualHost> |
Это минимальный конфиг, который позволит запустить наш сайт. Далее чтобы сайт был виден апачу, необходимо включить его, т.е. создать символическую ссылку в директории /etc/apache2/sites-enabled.
1 2 |
cd /etc/apache2/sites-enabled ln -s /etc/apache2/sites-available/devsite devsite |
Для применения настроек перезапускаем apache.
1 |
sudo service apache2 restart |
Если все ок, apache перезапуститься без ошибок. Также не забудьте внести правки в Ваш виндовый файлик hosts (находится по адресу C:\Windows\System32\drivers\etc\hosts), чтобы Ваш сайт был виден из под windows.
Формат записи ip-адресс_виртуалки домен_вашего_сайта, т.е. например
1 |
192.168.0.200 devsite |
Сохраняем изменения и переходим по урлу devsite/install.php - для тех, кто предпочитает устанавливать сайт через интерфейс, или с помощью drush (предварительно внесите изменения в Ваш settings.php касательно базы данных, имени пользователя и пароля)
1 |
drush si --db-url=mysql://root:pass@localhost:port/ИМЯ_БД --account-pass=ПАРОЛЬ --account-name=admin --site-name=DEV_SITE -y |
В следующей статье речь пойдет о том, как все это связать с PHPStorm, а также как настроить дебаггер X-Debug.
5 Comments
Вовчик - сб, 19/03/2016 - 18:10
Потрясающая серия!!! Большое
Потрясающая серия!!! Большое спасибо!
Пара дополнений для таких же новичков, как я.
Т.е. поменять перенос строки на пробел: "ssh-rsa ключччччччччч"
Не сразу нашел это Advanced, оказалось это "Еще":
скрин1
скрин2
Для Ubuntu server 15.10 не получилось. Получилось так:
при этом так понял, что этот способ не добавляет интерфейс, а делает статическим ip основного
Без расширения в дальнейшем apache не подхватил, и по адресу http://devsite выдавал свою html. Поменял на devsite.conf - все ок.
Тут тоже sudo нужен (догадаться не сложно, но может добавить, чтоб проще при копировании было)
Вовчик - сб, 19/03/2016 - 18:32
Только запостил, как сессия
Только запостил, как сессия закончилась и ip оказался не таким уж и статическим. Попытка №2:
nightdevel - вс, 20/03/2016 - 21:05
Благодарю за дополнения.
Благодарю за дополнения. Статья была написана для версии ubuntu 12.04 и, на тот момент, версия апача не требовала расширение .conf. В ближайшее время обязательно обновлю статью с вышеперечисленными заметками.
Вовчик - ср, 27/04/2016 - 12:47
Через какое-то время
Через какое-то время получилось назвать интерфейсы как в статье. Но всякие network, broadcast, gateway и dns-nameservers все равно оставил, т.к. без кого-то из них не получается ставить модули и пакеты из интернета. А еще на работе оказалась какая-то не такая сеть, но разные сети прекрасно ужились. Короче вот такие настройки получились, месяц полет нормальный (другие компы, кстати, тоже могут заходить на сайт, очень удобно):
Еще было бы классно узнать какой-нибудь конфиг для VirtualHost из жизни, например, при установке в 7-ке рекомендуется включить чистые ссылки, а в 8-ке так вообще это обязательное условие. У меня пока такие:
вроде работают, но может есть получше?
nightdevel - вс, 01/05/2016 - 23:02
предлагаю посмотреть в
предлагаю посмотреть в конфиги того же puphpet или drupalvm