Поднятие полноценного сервера на виртуальной машине

Ставить кучу пакетов на свой linux mint, мне не очень хотелось, но вот нужно было поднять apache, php и mysql и любой желающий из всемирной паутины должен иметь возможность увидеть его. Лучшим выходом из ситуации я посчитал установку ubuntu-server на virtualbox.
Инструкции, которые описаны в статье подойдут для любой ОС (windows, linux, mac) на которой можно запустить VirtualBox или VMware. Однако в данном конкретном примере, рассмотрена установка на virtilbox, но отличие от VMware будет только в пробросе портов и настройке общих папок.

Выбор ubuntu-server был совершен совершенно случайно. Мне не требовался навороченный сервер. а нужна лишь возможность протестировать сайты. Если установить любой другой linux, то инструкции будут абсолютно теме же.

Для начала устанавливаем VirtualBox. И попутно скачиваем ОС для нашего сервера. Ubuntu-server можно взять здесь.
Особо не имеет значения, какие именно параметры выберете при установке. Доставить необходимые пакеты будет не трудно.

После завершения установки (хотя можно было это сделать и сразу), открываем Устройства > Сетевые адаптеры. Убеждаемся, что стоит NAT и нажимаем кнопку Проброс портов. В IP хоста пишем ваш внешний ip адрес и порт отличный от 80. А в Порт гостя пишем 80. Если вы хотите, что бы весь интернет смог подключиться к вашему виртуальному серверу, то оставьте IP гостя пустым.

Разумеется, что у вас должен быть внешний белый ip, в обратном случае проще поставить Сетевой мост за место NAT и тогда вашу виртаулку будет автоматически видно всем из сети. Но тогда на виртуалке не будет интернета. В качестве компрамиса можно в начале произвести все настройки на NAT, а потом поставить мост. Что бы узнать IP виртуальной машины, то наберите в ней

ifconfig

Перед первой перезагрузкой было бы неплохо русифицировать консоль. Для этого выполняем команду:

sudo apt-get install console-cyrillic

Во время установки вопросы будут «квадратиками»… первый из них о способе переключения раскладки, а на второй… да х его з. Просто жмём энтер.
Для того, что бы увидеть русские буквы выполняем команду:

cyr

Для удобства её удобно поместить в автозагрузку:

sudo nano /etc/rc.local

Выше строчки exit 0.

Перезагружаем виртуальную систему (sudo reboot) и введя ваш вешний ip адрес и соответствующий порт (или просто ip если ставили сетевой мост) вы должны попасть на стандартную страницу apache: «It working!».
Если этого не произошло, то проверьте статус апача

sudo /etc/init.d/apache2 status

Если апач запущен, но интернет не видит ваш сайт, то проверьте правильно ли настроен апач. Например командой:

wget http://localhost/index.html

Если файл скачается, значит неправильно настроили проброс портов.

Если при проверке статуса апача напишет, что команда не найдена, то нужно установить его… а если нет апача, то скорее всего и остальных важных пакетов для поднятия сервера. Установим их.

sudo apt-get install apache2 mysql-server php5

Эти 3 пакета потянут за собой кучу других важных пакетов и в итоге получится полноценный сервер.

Если вы будете устанавливать CMS с rewrite модом, то необходимо активировать его в апаче. Иначе будут работать только стандартные ссылки вида http://site-name/p=?1234
Для активации выполняем команду:

sudo a2enmod rewrite

Затем слегка отредактируем файл конфигурации:

sudo nano /etc/apache2/sites-available/default

В котором меняем AllowOverride None на AllowOverride All. Закрываем и сохраняем изменения (Ctrl+X).

Перезапускаем апач:

sudo invoke-rc.d apache2 restart

Кстати, для остановки за место restart следует писать stop, а для запуска start.

Основы заложены. Теперь неплохо бы настроить общую папку между основной системой и виртуальной. Для virtualbox это делается следующим образом.

В начале обновляем систему (виртуальную)… на всякий случай:

sudo apt-get update
sudo apt-get upgrade

Затем устанавливаем 2 пакета:

sudo apt-get install build-essential dkms

Загружаем «диск» от virtualbox, нажав Устройства > Установить дополнения гостевой ОС.
Затем монтируем дополнения в папку cdrom (можно и любую другую)

sudo mount /dev/cdrom /media/cdrom

И устанавливаем:

cd /media/cdrom && sudo sh ./VBoxLinuxAdditions.run

В устройства > общие папки. Указываем любую общую папку и ставим галочку «автоподключение». Перезагружаем виртуальноу ОС.

Если будем хостить сайт, то лучше указать папку в которой уже находятся файлы сайта. Значит заранее очищаем папку /var/www

sudo rm -f /var/www/index.html

и монтируем сайт в нужную папку.

sudo mount -t vboxsf имя_общей_папки_в_основной_системе /var/www

Последнюю команду можно добавить в

sudo nano /etc/rc.local

перед exit 0, для её автозагрузки.

Теперь осталось подключить sql базы. Надеюсь вы не забыли пароль, который вводили при установке mysql-server.
В первую очередь заходим в саму sql.

sudo mysql --user=root --password=ваш_пароль

Создаём новую базу… конечно можно поставить phpmyadmin, но быстрее освоить ввод команд из консоли, чем настроить для него удаленный доступ.

create database имя_базы
DEFAULT CHARACTER SET кодировка;

То есть, ввели первую строку, нажали энтер. Затем вторую строку, поставили «;» и опять энтер.
Должно выглядеть примерно так:

Что бы выйти вводим «exit».

Если сайт создаёте с 0-ля, то всё готово. Но если нужно перенести базу данных со старого сайта, то вводим команду:

sudo mysql --user=root --password=ваш_пароль имя_базы_данных < бэкап.sql

Ну вот и всё. Если всё делать по инструкции, то получится поднять полноценный сервер с 0-ля менее чем за час.

А вот и результат:


Разумеется, что таким образом вы не получите комфортный хостинг или выделенный сервер. Для аренды сервера лучше оборотиться к профессионалам. В результате вам не придётся извращаться с виртуальной машиной, хотя это может быть и весело для некоторых.

Поделись статьёй с друзьями

Или просто поиграйся с кнопочками

2 комментария на «Поднятие полноценного сервера на виртуальной машине»

  1. Хе! Прикольно, щас будем апробировать!))))))

  2. […] которые могут понадобится при работе с базами данных (здесь). Но статья весьма большая и не очень удобна для […]

Добавить комментарий