Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8
Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8 на Windows/Mac/Linux.
Введение:
Запуск виртуального веб-сервера осуществляется средствами бесплатного и доступного каждому VirtualBox’а (virtualbox.org). Запускать машину можно через графический интерфейс VB (это добавляет окна, которые в последствии придется сворачивать) или через интерфейс командной строки (как фоновый процесс).
Запускаемая виртуальная среда по набору софта и конфигурациям почти полностью совпадает со средой на production-сервере.
Скачать образ виртуального веб-сервера Debian 8 LEMP (Linux, NGINX, MySQL, PHP) для VirtualBox
Образ содержит NGINX, MySQL, PHP-fpm. В этом решении не используется Apache (LAMP), заменяя его связкой NGINX и PHP-fpm (LEMP).
Скачать образ Debian 8 LEMP (740МБ)
Первый запуск и настройка виртуального веб-сервера
Запуск осуществляется через консоль операционной системы, командой:
VBoxManage startvm D8-lemp --type vrdp
Дополнительный параметр --type заставляет ядро VirtualBox использовать интерфейс VBoxHeadless.
Виртуальная машина запустится в фоновом режиме, и для подключения к ней потребуется SSH-клиент.
Подключение по SSH должно осуществляться на статический IP-адрес виртуальной машины:
ssh root@192.168.0.121
Пароль: "pass"
Если у вас другая сеть, или адрес занят, то необходимо запустить единожды виртуальную машину стандартным способом через графический интерфейс VirtualBox и отредактируйте данные IP, маски и шлюза в файле:
nano /etc/network/interfaces
Сохранить изменения и выполнить обновление настроек:
/etc/init.d/networking reload
Затем выключить машину командой:
Poweroff
Теперь можно запускать машину через консоль и выполнять подключение по SSH на установленный вами IP.
При обращении к виртуальной машине через браузер по её IP-адресу должно появится приветствие от NGINX.
Работа с файлами виртуальном веб-сервере
При каждой успешной авторизации по SSH на виртуальной машине будет появляться стандартное приветствие и дополнительная информация о работе машины, которая выглядит следующим образом:
Быстрый старт LEMP (Linux, NGINX, MySQL, PHP) на Debian 8:
- nano ~/.hgrc - Укажите свои данные для доступа к Mercurial
- Все сайты добавляются в папку /home/web/ или монтируется папка через VB в /media/sf_*
- Конфигурации сайтов живут в /etc/nginx/sites-enabled/
- Перезагрузка веб-сервера происходит по команде service nginx reload
- Перезагрузка php-fpm происходит по команде service php5-fpm reload
- Выполнение системных команд требует root прав, а для этого выполните su
Пароль везде: pass
Доступны: Mercurial и Composer.
Инструкция довольно простая, но раскрою пару моментов.
- Если вам не нужен Mercurial и Composer, просто игнорируйте их, они напоминать о себе не будут.
- Самый удобный вариант работы с файлами, это прицепить папку через VirtualBox, которая потом появится в виртуальной машине по адресу /media/sf_*
- Папки цепляются через раздел «Общие папки» в настройках виртуальной машины. Установите для папки параметры «Авто-подключение» и «Создать постоянную папку». Перед подключением папки, выключите виртуальную машину командой poweroff
- Цепляйте корневую папку в которой лежат все проекты, чтобы потом не приходилось каждый раз добавлять новую папку.
Запуск тестового сайта на виртуальном веб-сервере
В виртуальной машине настроен тестовый сайт с доменом test.web, чтобы увидеть его и любой другой виртуальный хост, который вы настроите на машине, где установлен VirtualBox, в файле hosts, пропишите доступ до test.web:
В Windows файл hosts находится по данному адресу:
C:\Windows\System32\drivers\etc\hosts
В MacOS и Linux:
/etc/hosts
Открываем его в текстовом редакторе и прописываем в нем доменное имя и IP-адрес (в данном варианте IP-адрес виртуальной машины) для него.
Пример:
192.168.0.121 test.web
Открыв браузер и набрав в адресной строке test.web, сгенерируется страница с надписью "Hi!".
Добавление и запуск сайтов на виртуальном веб-сервере
Для добавления нового сайта скопируйте файл конфигурации /etc/nginx/sites-enabled/test.
Например:
cp /etc/ngingx/sites-enabled/test /etc/nginx/site-enabled/mysite
Откройте скопированный файл и отредактируйте папку расположения сайта и имя сервера (домена).
Например:
server_name test.web;
root /home/test;
меняем на
server_name mysite.web;
root /home/mysite;
Для применения изменений конфигурации требуется перезапуск сервиса:
service nginx reload
Аналогично перезапускается сервис php5-fpm в случае, если изменялись конфигурации, связанные с php:
service php5-fpm reload
Добавление базы данных в MySQL.
На виртуальной машине установлена СУБД MySQL. Для обращения к ней и создания баз данных существует несколько вариантов. Самый простой — использование графического клиента. Другой вариант — работать с СУБД через консоль.
Примеры ПО с графическим интерфейсом:
При использовании ПО с графическим интерфейсом требуется создание SSH-туннеля.
Пример для программы SequelPro
Выбираем создание SSH-туннеля.
- Указываем IP-адрес в поле Адрес SSH
- Пользователь: root
- Пароль: pass
- Адрес MySQL: 127.0.0.1
- Пользователь: root
- Пароль: pass
- Соединяемся с MySQL.
Установка дополнительных пакетов и обновления
Данная виртуальная машина является полноценной операционной системой, поэтому ее можно обновлять и устанавливать любое другое дополнительное программное обеспечение.
Дополнительные изменения
- Чтобы избежать проблем с правами у папки, в которой располагаются файлы проектов, пользователь www-data добавлен в дополнительную группу vboxsf.
usermod -a -G vboxsf www-data - Включена авторизация для root по SSH.