» Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8

Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8

Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8 на Windows/Mac/Linux.

Введение:

Мне пришлось перепробовать множество различных сборок веб-серверов, созданных для разработки и дальнейшего тестирования на локальной машине: Денвер, XAMPP, Open Server. Так же устанавливал локально весь набор для веб-сервера (apache, php, mysql), пробовал некоторые другие решения, в конечном итоге оказавшиеся недостаточно удобными. Если в начале работы не было никаких нареканий, то через какое-то время требовалась новая версия одной или нескольких частей софта, и после обновления сборки веб-сервера приходилось сталкиваться с несовместимостью конфигураций, помойкой в системе, помехами со стороны ОС и установленного ПО (например, на Windows Skype занимает 80-й порт). Все решения подобных проблем, какие можно было найти на форумах, это - «переустанови веб-сервер». А если что-то не устраивает в готовых системах, то лучше сделать самому — установить VirtualBox и поднять свой сервер.

Запуск виртуального веб-сервера осуществляется средствами бесплатного и доступного каждому 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:

  1. nano ~/.hgrc - Укажите свои данные для доступа к Mercurial
  2. Все сайты добавляются в папку /home/web/ или монтируется папка через VB в /media/sf_*
  3. Конфигурации сайтов живут в /etc/nginx/sites-enabled/
  4. Перезагрузка веб-сервера происходит по команде service nginx reload
  5. Перезагрузка php-fpm происходит по команде service php5-fpm reload
  6. Выполнение системных команд требует root прав, а для этого выполните su

Пароль везде: pass
Доступны: Mercurial и Composer.

 

Инструкция довольно простая, но раскрою пару моментов.

  • Если вам не нужен Mercurial и Composer, просто игнорируйте их, они напоминать о себе не будут.
  • Самый удобный вариант работы с файлами, это прицепить папку через VirtualBox, которая потом появится в виртуальной машине по адресу /media/sf_*
    Самый удобный вариант работы с файлами, это прицепить папку через VirtualBox
  • Папки цепляются через раздел «Общие папки» в настройках виртуальной машины. Установите для папки параметры «Авто-подключение» и «Создать постоянную папку». Перед подключением папки, выключите виртуальную машину командой 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. Для обращения к ней и создания баз данных существует несколько вариантов. Самый простой — использование графического клиента. Другой вариант — работать с СУБД через консоль.

Примеры ПО с графическим интерфейсом:

  • Для Windows, бесплатный SSH-клиент heidisql.
  • Для MacOS, бесплатный SSH-клиент SequelPro.

При использовании ПО с графическим интерфейсом требуется создание SSH-туннеля.

Пример для программы SequelPro

Выбираем создание SSH-туннеля.

Пример для программы SequelPro

  • Указываем IP-адрес в поле Адрес SSH
  • Пользователь: root
  • Пароль: pass
  • Адрес MySQL: 127.0.0.1
  • Пользователь: root
  • Пароль: pass
  • Соединяемся с MySQL.

 

Установка дополнительных пакетов и обновления

Данная виртуальная машина является полноценной операционной системой, поэтому ее можно обновлять и устанавливать любое другое дополнительное программное обеспечение.

Дополнительные изменения

  • Чтобы избежать проблем с правами у папки, в которой располагаются файлы проектов, пользователь www-data добавлен в дополнительную группу vboxsf.
    usermod -a -G vboxsf www-data
  • Включена авторизация для root по SSH.