Запустить http сервер на виртуальной машине и проверить из базовой машины через браузер
Создавая недавно новый сайт на Yii2 я прилично помучился из-за различий рабочего окружения, которые обеспечивают локальный Open-Server на Windows и реальный сервер с Debian. Это вынудило меня настроить правильный локальный сервер, используя VirtualBox. В статье я расскажу, как это сделать.
Задача
Есть компьютер с Windows 10, где установлен VirtualBox. Создадим виртуальную машину в VirtualBox, установим на неё Debian. Затем настроим на этой машине веб-сервер и установим некоторый софт, необходимый для веб-разработки. Дополнительно настроим общую папку, чтобы удобно работать в ней с кодом сайтов в любимом редакторе под Windows. Открываться сайты тоже будут под Windows.
Виртуалка и Debian
Скачиваем новейший образ для установки Debian. Даю ссылку на страницу с образами, предназначенными для сетевой установки. Они маленькие, не имеют ничего лишнего, хорошо подходят для веб-сервера. Я использую 64-битный образ. На момент написания статьи актуален Debian версии 8.5.
Создаём виртуальную машину:
Объём памяти и диска по своему усмотрению.
Диск особо расходоваться не будет, т.к. мы будем работать с сайтами в общей папке, которая будет подключается к Debian как дополнительный носитель. Тип основного диска по умолчанию, динамический.
Машина подготовлена. Пока не включаем. Заходим в свойства машины, подключаем скаченный установочный образ на CD/DVD:
Пройдёмся по другим настройкам.
Число ядер процессора выбирайте сами, в зависимости от возможностей и потребностей. Обязательно установите отметку «Включить PAE/NX».
Можно выключить разные ненужные вещи, типа удаленного доступа по RDP, звуковой карты, порта USB стандарта 2.0 и т.д.
В сетевых адаптерах выбираем тип подключения «NAT», ниже тут же кликаем «Дополнительно» и заходим в «Проброс портов».
Здесь для SSH указываем порты 3022 и 22, для веба 80 и 80. Остальное заполнять не надо. Этого достаточно.
Почему именно «NAT»? Виртуальную машину сможете использовать только вы, она не будет видна в вашей локальной сети и никак на неё не повлияет. Для меня это важно.
Если вы хотите, чтобы ваша виртуальная машина полноценно добавлялась в вашу локальную сеть, то выбирайте тип подключения «Сетевой мост». Другие компьютеры в вашей локальной сети тоже смогут обращаться к вашей виртуальной машине.
В завершении добавляем общую папку:
Выходим из настроек.
Запускаем машину, устанавливаем Debian.
Процедура установки Debian ничем особо непримечательна. Выбираем вначале обычную установку, я предпочитаю с графическим интерфейсом. По ходу выбираем всякие параметры. Запасаемся терпением.
Ближе к концу установки надо будет выбрать компоненты, которые требуется установить. Рабочий стол и прочий мусор нам на веб-сервере не нужен, снимаем везде отметки. Оставляем только SSH-сервер и стандартные системные утилиты.
Предлагаемый в списке «web server» я тоже предпочитаю не ставить, т.к. там будет Apache, который в современном мире нафиг не нужен. Лучше установить потом самому именно те программы, какие нужны.
В общем, установка завершается, машина перезапускается.
Всё ок? Небольшая рекомендация. Делайте «снимки» машины на разных этапах настройки и использования. Это полезно! Если в процессе каких-то настроек или других действий что-то пойдёт не так, то вы сможете откатиться к предыдущему состоянию.
Вот сейчас машина успешно стартовала. Выключите её, сделайте снимок. Это займет от силы минуту.
Чтобы выключить машину можно написать poweroff , чтобы перезапустить — reboot .
Настройки
Пока продолжаем работать с созданной машиной через окно VirtualBox. К подключению по SSH вернёмся чуть позже.
В процессе установки Debian, кроме root, обязательно создаётся дополнительный пользователь. Если он совсем вам не нужен, то его можно удалить:
Дополнительный пользователь иногда полезен. Например, когда вы будете работать с Composer. Этот менеджер пакетов считает, что работа под root небезопасна и выдаёт предупреждение, хотя и продолжает исправно работать.
По умолчанию Debian не позволяет подключиться по SSH, используя пользователя root. Выглядит это так:
Дополнительным пользователем подключаться можно сразу.
Чтобы по SSH можно было зайти root-ом редактируем файл /etc/ssh/sshd_config .
Чтобы изменения вступили в силу перезагружаем машину.
Для подключений по SSH в Windows удобно использовать PuTTY. Адрес машины 127.0.0.1, порт 3022:
Теперь уже можно большую часть времени работать с виртуальной машиной через SSH. Оно удобнее, чем через окно VirtualBox. Окно PuTTY можно свободно растягивать и его содержимое будет под это подстраиваться. В вашем распоряжении буфер обмена и даже мышь.
Чтобы работала общая папка требуется установить дополнения гостевой ОС.
Для начала подключаем образ:
Теперь монтируем его:
Предварительно устанавливаем требуемые пакеты:
Теперь сама установка дополнений:
Результат успешной установки:
Перезапускаем машину и радуемся. Теперь у нас заработала общая папка. В виртуальной машине в моём случае это: /media/sf_Webdev . На основной машине она соответствует: c:\VirtualDub\Folders\Webdev .
Работа с общей папкой в виртуальной машине осуществляется из под пользовательской группы vboxsf . Это означает, что если пользователь (под которым вы работаете) не входит в эту пользовательскую группу, то он не сможет записывать в общую папку. Для него в папке по умолчанию режим «readonly».
Чтобы добавить пользователя в эту группу выполняем:
Пользователь www-data по умолчанию используется Nginx.
Веб-сервер
Переходим к настройке веб-сервера:
В общей папке создадим папку первого сайта: /media/sf_Webdev/site.loc .
Соответственно она появится и на основной машине. В эту папку поместим тестовый файл index.php с кодом:
Не имеет значения, как именно вы создаёте папки и файлы в общей папке. Можете всё это делать уже из вашей основной системы.
Создадим символическую ссылку для каталога сайта:
Создадим для сайта файл настроек Nginx /etc/nginx/sites-available/site.loc .
Подключим файл настроек:
Теперь в основной системе отредактируем hosts-файл c:\Windows\System32\drivers\etc\hosts .
В него надо добавить строчку:
Если сайт не открылся, вы получили белую страницу, то скорее всего у вас в основной системе уже используется каким-то приложением порт 80. Соответственно проброс этого порта из виртуальной системы в основную не удался и ничего не работает.
Чтобы выяснить, выключите пока виртуальную машину. В основной системе откройте консоль:
Выполняем в ней:
Получим примерно такое:
Здесь первая строка с адресом 0.0.0.0:80 – это признак, что 80-ый порт в настоящее время используется. В конце этой строки цифры, в примере это 5684 . Данный номер — это ID процесса приложения.
Чтобы узнать, что это за приложение, открываем диспетчер задач:
На вкладке «Подробности» делаем сортировку по колонке «ИД процесса» и ищем нужный номер. В моём случае это оказался Skype.
По умолчанию Skype использует именно 80-ый порт для соединений, но это можно изменить в его настройках. Убираем галочку «Для дополнительных входящих соединений следует использовать порты 80 и 443». Выходим из настроек, перезапускаем Skype.
Той же командой в консоли ещё раз делаем проверку:
Теперь 80-ый порт никем не используется. Запускаем обратно виртуальную машину и снова пробуем открывать сайт. Теперь, если вы всё делали по инструкции, то он точно должен открыться!
Nginx
При подобном использовании веб-сервера внутри VirtualBox есть одна особенность с Nginx. Файлы сайтов получается будут лежать и модифицироваться в общей папке. Система внутри VirtualBox не будет знать, когда файлы в этой папке были модифицированы, отсюда проблема. Nginx думает, что файлы не менялись и добросовесно отдаёт старые их версии, закешированные.
Очень многие сталкиваются с этими граблями. Типичный случай: вы изменили файл CSS или JS, а на сайте не видно этих изменений, файл используются старый.
Мне помогло решить проблему включение в конфиг Nginx параметра:
Некоторым помогает ещё этот дополнительный параметр:
Поскольку проблема может быть актуальна для всех сайтов, работающих на веб-сервере виртуальной машины, то правильнее включить эти параметры в общем файле /etc/nginx/nginx.conf .
Дополнительная информация по теме.
Вместо обычного MySQL я предпочитаю Percona Server. Многие рекомендуют этот продукт, благодаря скорости и дополнительным фичам. Я использую Percona Server не менее 2 лет и тоже могу его рекомендовать. Для сайта, для любого сайтового движка — это будет просто MySQL, они не увидят разницы.
Я не делал сравнений. Просто однажды перешел на Percona Server и все. Никаких проблем никогда не было. Если при этом есть хоть небольшой прирост скорости, оно стоит того.
Установка Percona Server:
В процессе установки потребуется указать пароль для root-пользователя базы. Не путайте с root-пользователем системы.
Установим дополнительно phpMyAdmin. Последнее время я предпочитаю это делать через Composer. Так проблем меньше, да и версия точно будет новая. Вначале установим сам Сomposer:
Для рабочего софта лучше создать отдельный локальный сайт, пример webdev.loc . Это будет каталог /var/www/webdev.loc . Настройка Nginx аналогична той, что была выше. Пробрасывать этот каталог в основную систему не нужно.
В этом каталоге запускаем установку phpMyAdmin:
Он установится в каталог /var/www/webdev.loc/phpmyadmin .
Workbench
Приложение MySQL Workbench — это удобный инструмент для работы с базой. Устанавливать его нужно на основной машине. Для подключения к базе MySQL на виртуальной машине можно использовать SSH. При создании подключения просто устанавливаем параметр «Connection Method» в состояние «Standard TCP/IP over SSH» и далее вписываем уже знакомые параметры:
Рабочий софт
Установка Composer уже была выше. Остальное по желанию.
Если будут предупреждения:
Тогда надо установить предложенное, пример далее. В вашем случае версии могут быть другие, обратите на это внимание.
Vagrant
Это такая вспомогательная программа для VirtualBox. Хотя, работает и с другими системами виртуализации. Позволяет легко и быстро автоматизированно создавать виртуальные машины. Можно создать наподобие той, которую мы уже создали. Работать с Vagrant необходимо из командной строки.
Пишу это здесь просто для информации, что такое есть.
Я пробовал Vagrant. Да, действительно программа делает своё дело. Но мне показалось это лишним и не совсем тем, что надо. Мои соображения на этот счёт:
- Такое полезно тому, кто создаёт виртуальные машины пачками. Не мой случай. Возможно, пока.
- Виртуальные машины при помощи Vagrant создаются на основе готовых образов (боксов), список которых есть на официальном сайте. Они в случае необходимости автоматически загружаются. Честно говоря, я не сильно доверяю этим боксам. Считаю, что безопаснее создать своё. Тем более это не сложно.
В принципе, боксы для Vagrant — это созданные и специально настроенные виртуальные машины VirtualBox. Мы, вот, создали свою виртуальную машину. Её, в теории, можно немного допилить, чтобы использовать в качестве бокса Vagrant. Бокс может быть локальным.
Я когда начал изучать информацию по Vagrant, то меня напугали все эти инструкции в интернете. В каждой автор начинает разбирать конфигурационный файл виртуальной машины, и это поначалу выглядит дико и совсем непросто. Спешу успокоить новичков! Этот файл создается автоматически самим Vagrant-ом. Вы (при желании) можете внести в него дополнительные параметры, а можете и не вносить! Машина просто получит настройки по умолчанию. Часто этого достаточно.
Далее простой пример, как можно создать с помощью Vagrant тот же веб-сервер на базе Debian 8.
Перед тем как начать скачиваем Vagrant с официального сайта и устанавливаем его в любую папку. Важно, чтобы в пути к этой папке не было русских символов.
Открываем консоль в Windows:
Скачиваем нужный бокс и убеждаемся, что он попал в список доступных локально боксов:
Для первой команды название бокса я нашёл в списке по запросу «debian 8 lemp». Вот информация по нему, где автор советует перед использованием бокса выполнить установку плагина:
Такая команда выполняется единожды, если ранее данный плагин ещё не инсталлировался. Плагин позволяет автоматически устанавливать в виртуальную машину дополнения гостевой ОС.
Создаём каталог и переходим в него, например:
Инициализация виртуальной машины:
При этом у нас появляется в этом каталоге файл Vagrantfile . Он содержит конфигурацию будущей машины. Как я уже сказал, настройки можно оставить по умолчанию. Устанавливаем виртуальную машину:
Всё! Через некоторое время машина будет готова.
При установке машины автоматически устанавливаются все актуальные обновления Debian. При каждом старте монтируется общая папка.
Для входа по SSH используем адрес 127.0.0.1, порт 2222, пользователя vagrant , пароль vagrant .
Таким образом, всего несколько команд в консоли и у нас готовая для работы виртуальная машина.
Последующий запуск машины из консоли происходит быстро:
В VirtualBox машину тоже видно:
Docker
Это ещё один альтернативный вариант.
По своей сути Docker предлагает уже не виртуализацию, а создание изолированных контейнеров поверх вашей основной системы. Таких контейнеров на одной системе можно запускать множество. Приложения в каждом из них работают полностью независимо.
Из-за того, что здесь нет полноценной виртуализации, то нет и расхода лишних ресурсов на виртуальные операционные системы. Процессор, диск, память расходуются исключительно на установленные в контейнерах приложения.
Docker предназначен для Linux и использует для создания контейнеров специфику ядра этой операционной системы. В Windows использовать Docker можно двумя способами. Во-первых, есть Boot2docker, который автоматически создаёт, опять же, в VirtualBox виртуальную машину и уже там запускает контейнеры. Во-вторых, можно самостоятельно создать виртуальную машину с Linux и там разворачивать контейнеры.
Автоматически созданная машина Boot2docker-ом:
Помимо уже сказанного есть ещё одна очень весомая фишка.
Мы создаём для разработки сайта один или несколько контейнеров Docker. Зависит от его сложности и масштабов. Потом, когда сайт будет готов, то мы именно эти же контейнеры просто переносим на хостинг! Получается, что сайт продолжает работать в своём родном окружении, уже на совсем другой площадке.
На мой взгляд Docker интересен, но только если вы работаете именно в Linux. Использование контейнеров через виртуализацию трудно назвать изящным вариантом. Поэтому я, как пользователь Windows, отказался от Docker. Во всяком случае, нет пока необходимости.
Затея может показаться странной, ведь в Linux можно сразу очень легко настроить веб-сервер. Но иногда нужно сделать именно изолированную среду веб-разработки. Во-первых, так можно настроить её совершенно иначе. Во-вторых, это возможность легко откатываться до любого состояния, используя снимки.
В качестве основной рабочей системы у меня Elementary OS, которая постоена на базе Ubuntu. Установить в неё VirtualBox можно из штатного AppCenter, либо, если хочется новейшую версию, тогда следуя инструкциям с официального сайта. В качестве системы для веб-сервера традиционно Debian. Я использовал для установки образ debian-*-netinst.iso . Найти его или другой подходящий вам можно здесь.
В предыдущей статье я уже описывал настройку веб-сервера на Debian, установленный в VirtualBox. Тогда в качестве основной системы была Windows 10. В этой статье я не буду повторяться. Цель приследуется аналогичная. Установка Debian в виртуальную машину — один к одному. Поэтому все подробности там. Здесь я уделю внимание лишь деталям, которые имеют место именно в случае работы под Linux. Итак, порядок будет такой:
- Устанавливаем Debian на вартуальную машину. Всё как и в предыдущей статье, но немного по-другому настраиваем проброс портов. Смотрите ниже.
- Настраиваем в виртуальной машине доступ по SSH для root, устанавливаем дополнения гостевой ОС, появляется общая папка. Настраиваем веб-сервер и т.д. Внутри виртуальной машины ничего нового, всё аналогично можно делать! В том числе аналогично размещаются и настраиваются ваши локальные сайты. Едиственное, я сейчас начал использовать PHP7, вместо PHP5. Если для вас это актуально, то тоже смотрите ниже.
- Настройка основной системы Linux, чтобы в ней без шаманств открывались сайты, работающие на локальном веб-сервере виртуальной машины.
Hosts-файл
В основной системе Linux ваши локальные сайты нужно будет прописывать в файл /etc/hosts в таком виде:
Оно сразу начинает работать.
Проброс портов
В Linux не получится пробросить для web из VirtualBox порт с 80 на 80. Точнее, это можно сделать, но для этого потребуется каждый раз запускать VirtualBox с правами root. Конечно, такое нафиг не надо, поэтому пробрасываем порт с 80 на 3080:
С такими настройками сайты, работающие на локальном веб-сервере виртуальной машины, можно сразу открывать. Для этого достаточно дописать порт в конце их адреса:
Чтобы этого не делать и открывать локальные сайты просто по адресу потребуется настроить для них прокси в Nginx. Обращаю внимание, что речь идет об Nginx в основной системе, а не в виртуальной. Чтобы не мучиться с sudo сразу:
Создаём файл /etc/nginx/sites-available/webdev с настройками:
Таким образом, для всех своих локальных сайтов прописываем настройки прокси в одном файле. Подключаем настройки:
Все! Теперь локальные сайты должны открываться по простому адресу.
PHP 7
За PHP 7 будущее и сайты на нём работают гораздо быстрее. Поэтому его стоит однозначно использовать для новых сайтов и, по возможности, переводить на него старые. Сейчас актуален PHP 7.1. Эта версия ещё отсутствует в репозиториях Debian 8.7.1, поэтому его установка чуточку сложнее. Ещё я сразу предупреждаю, что в отношении других пакетов, которые вы будете ставить на веб-сервер, тоже не помешает проявлять осторожность. Связанные с PHP пакеты из репозитория актуальной версии Debian по умолчанию будут пытаться установить вам заодно PHP 5, ведь они будут видеть, что его нет в вашей системе. В приципе, таких пакетов обычно не много, и эту небольшую сложность тоже вполне можно пережить. Перед установкой:
Я не рекомендую производить установку PHP 7.1 одной командой:
Она сделает всё верно, но установит заодно и всякий хлам, типа Apache. А он нафиг не нужен на современном веб-сервере, использующем Nginx и php-fpm. Поэтому ставим только то, что реально нужно:
Требуемые дополнительно модули PHP устанавиливаются, как и раньше, просто везде добавляется 7.1, например:
Чтобы на ваших локальных сайтах работал PHP 7.1 нужно немного изменить их конфиги Nginx. Вот простейший пример из предудущей статьи:
Меняем одну строчку, было:
После не забудьте перезапустить Nginx.
SSHFS
SSHFS — это Secure SHell FileSystem, программа позволяющая монтировать удаленную файловую систему. Это можно использовать вместо «Общих папок» в VirtualBox.
Работает это очень быстро. Хотя у меня и случались проблемы, когда смонтированный каталог отваливался. Обычно это происходило, когда я начинал работать с каталогом, в котором очень много файлов. Типа проекта на 1С-битрикс, где порядка 500 тысяч файлов.
Важно указать uid — это id вашего пользователя. В данном случае нет никаких проблем с записью. В смонтированном каталоге можно спокойно работать.
NFS — это Network File System, протокол распределенной файловой системы, позволяющий получить доступ к файлам по сети. Смысл тот же. Можно использовать вместо «Общих папок» в VirtualBox.
2. Пока только скачиваем Debian (о скачивании и установке Debian можно прочесть здесь).
3. Открываем наш VirtualBox и создаем новую виртуальную машину, выставляем необходимые параметры и т. д.
Пример параметров моей виртуальной машины:
Имя: Debian_Server
Тип: Linux
Версия: Debian
Объем оперативной памяти: 512 mb
Жесткий диск: vdi, динамический, 30 gb
Подключенные носители: контроллер IDE — образ с Debian, контроллер SATA — наш жесткий диск .
Остальные параметры пока не трогаем.
4. Запускаем нашу виртуальную машину и устанавливаем Debian.
5. Debian установили, перезагружаемся и логинимся (можно под рутом).
Перед нами полноценная, рабочая ОС.
параметр -h (halt) выключение, now — сейчас.
8. Заходим в настройки виртуальной машины и в разделе «Сеть» выбираем тип подключения «Сетевой мост».
Подтверждаем нажатием ОК.
Ваш ip-адрес показан после inet addr: например inet addr: 192.168.0.7 , запомните его.
Для того, чтобы удаленно управлять сервером, нужно настроить ssh.
Так как у меня роутер (D-link), то мне необходимо пробросить 22-ой порт для SSH. Для этого нужно залогиниться в админку роутера и добавить виртуальный сервер.
Гуглите на тему «проброс портов роутер 'имя вашего роутера'".
Вот инструкция на русском языке для роутеров D-link.
Это возможно только тогда, когда вы имеете так называемый "белый" адрес, об этом Вы можете узнать у своего провайдера.
Я же покажу свои параметры:
На этом настройка сети закончена.
Проверяем наш сервер. В браузере компьютера пишем адрес вашего сервера, пример:
Сервер функционирует. У нас там пока ничего нет, поэтому идем дальше.
12. Проверяем работоспособность php.
Каталогом нашего сайта является /var/www/
В нем будет храниться все что нам нужно для сервера.
Сохраняем: Ctrl+O и выходим: Ctrl+X из nano.
13. Теперь нужно управлять нашим сервером с клиента (основной ОС). Нам нужно установить доступ по SSH.
Заходим на клиентской машине в mc.
В меню «Левая панель» выбираем Shell-соединение.
Вводим имя машины, пример: [email protected]
Жмем Enter.
Далее вас попросят подтвердить свое решение и ввести пароль.
После того, как вы ввели пароль, вы можете управлять файлами вашего сервера:
Наш файл photo.jpg , нужно скопировать в каталог /var/www/ нашего сервера.
Для этого в левой вкладке открываем директорию /var/www/ в правой каталог с нашим файлом. Жмем F5 . Подтверждаем.
Все, теперь файл у нас на сервере.
12 комментариев:
Автор красаучек, развернул тоже самое на убунтосервере.
Здорово! Доступно и понятно.
Для новичка немного недосёк какой пароль вводить "17. Устанавливаем phpMyAdmin. Выставляем пароли:". Пароль дебиан-рут, или новый создаю? Также "19. Теперь мы имеем возможность зайти на phpmyadmin". Это штука дает регистрировать пользователей, которые могут создавать свои странички на моем сервере, или рассматривается создание какой-то-там базы данных, к которой прикручивается вэб-интерфейс и теперь все те, кто работают с моим вэб-интерфейсом могут обращаться к этому серверу? А файлы базы (люди набирают данные) в каком каталоге/файле создаются?
Прошу извинить за "смешные" вопросы.
Было бы интересно продолжение вида "создаем телефонную книжку", которую могут заполнять все пользователи, использующие вэб-интерфейс (тупо браузер) заполняя "базу" созданного нами сервера. Чтобы видеть практическое применение. Вместо "книжки" каждый изобретет свое хитроумное детище , но механизм передачи данных клиент-сервер хотелось бы увидеть на самом простом. Если не сложно, пожалуйста!
Дмитрий.
>Для новичка немного недосёк какой пароль вводить
Новый.
>Было бы интересно продолжение вида "создаем телефонную книжку", которую могут заполнять все пользователи, использующие вэб-интерфейс (тупо браузер) заполняя "базу" созданного нами сервера.
Это очень просто, на php сделать за 5 минут. Гулить очень просто. Просто создаём форму и POST-запросом отправляем инфу в нашу БД.
>или рассматривается создание какой-то-там базы данных, к которой прикручивается вэб-интерфейс и теперь все те, кто работают с моим вэб-интерфейсом могут обращаться к этому серверу?
Ага
Теперь понятно. А в гугле они сразу к делу приступают и не понять, с какой целью все мутится.
Ну поставил сервер и что дальше, зачем он нужен?
Разрабатывая локальную базу данных, необходимо, чтобы 10 человек как-то сбрасывали в центральную базу все свои данные. Это можно прикрутить через импорт/экспорт (например, база написана на FoxPro). Сервер позволяет обойтись без этой приблуды. Минус в том, что если упадет сервер (всякое бывает), пропадут все данные базы. Если упадет комп одного из набиральщиков, пропадет лишь его работа. Тут можно порекомендовать сбрасывать файл общей базы с сервера каждому набиральщику данных.
Спасибо, статья отличная.
шаги 13-15 и 19 не проходят нормально, на шаге 19 вообще предлагает сменить имя ибо чего то там ему не подходит.
Что делать?
Нужно вникать, что и как делать, а не просто перебивать команды. Заметку писал давно, за это время многое могло поменяться.
ладно. но все таки что делать? у меня убунту. мс отказівается заходить да и на myadmin тоже не заходит - еррор.
воот, а как сделать теперь чтоб он по имени на страницу переходил, а не по ip?
В hosts прописать имена.
Скажите а как теперь сделать так что бы можно с любого компьютера через инет заходить на сайт?
Для этого вам нужен внешний IP-адрес, желательно статический.
Если сидите за роутером, то необходимо также пробросить порты.
Подробная инструкция по установки и настройки web сервера на виртуальную машину. Часть 1 из 3, установка и настройка VirtualBox.
В первой части подробно описано как установить VirtualBox, настроить его для виртуального веб сервера под управлением Ubuntu Server, а также настроим интернет соединение для нашего виртуального сервера
Информация! В статье используется Windows 7 как основная ОС, VirtualBox 4.3 и Ubuntu Server 14.04.2 (amd64).
Информация! Статью пришлось разбить на 3 части т.к. для наглядности пришлось сделать много скриншотов, что повлияло на общий объем страницы.
И так приступим.
Пока Ubuntu Server загружается, настроем сеть для VirtualBox.
После установки VirtualBox, в Вашей системе появится новый "Виртуальный" сетевой адаптер "VirtualBox Host-Only Enthernet Adapter". Взаимодействие между ним, и существующим сейчас интернет соединением нам и необходимо настроить.
Откройте "Центр управления сетями и общим доступом":
Затем выберите пункт "Подключение по локальной сети":
В открывшемся окне нажмите на кнопку "Свойства":
Обратите внимание флажок "VirtualBox Bridget Networking Driver" должен быть активен (отмечен), выберите вкладку "Доступ":
В открывшимся окне отметьте флажок "Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера", а в выпадающем списке "Подключение домашней сети" выберите пункт "VirtualBox Host-Only Network":
Затем нажмите кнопку "Ок". После чего появится окно с предупреждением, что адаптеру "VirtualBox Host-Only Network" будет присвоен IP адрес 192.168.137.1:
Запомните этот адрес, и нажмите на кнопку "Да". Закрывайте окно состояния "Подключение по локальной сети" и откройте свойства сети "VirtualBox Host-Only Network":
Нажмите на кнопку "Свойства" и установите флажок "VirtualBox Bridget Networking Driver" для этого сетевого адаптера:
Далее нажмите на кнопку "Ок", и закройте окно сетевых подключений.
Перейдем обратно к VirtualBox.
Откройте меню "Файл" "Настройки" или нажмите комбинацию клавиш Ctrl+G :
В появившемся окне выбираем пункт меню "Сеть" вкладку "Виртуальные сети хоста", кликаем по "VirtualBox Host-Only Ethernet Adapter" и жмем по иконке с изображением отвертки:
В открывшимся окне "Детали виртуальной сети хоста" вы увидите IP адрес хоста, и маску будущей виртуальной локальной сети:
Перейдите во вкладку "DHCP сервер" и снимите флажок с пункта "Включить сервер":
Жмите на кнопку "Ок". Закрывайте настройки.
Перейдем к настройке нашего виртуального сервера.
Будем считать, что дистрибутив Ubuntu Server уже загружен и мы готовы продолжить.
Нажимаем на кнопку "Создать" в VirtualBox:
Заполняем поле "Имя" (если в имени будет присутствовать ключевое слово, например ubuntu, то поля "Тип" и "Версия" будут установлены автоматически) и нажимаем кнопку "Next":
После чего укажите размер оперативной памяти выделяемый для данной машины и жмем кнопку "Next":
Далее укажем, что мы хотим создать новый жесткий диск жмем на кнопку "Создать":
VirtualBox предложит выбрать тип файла для создания нового виртуального жесткого диска. Выбираем пункт "VDI" и жмем на кнопку "Next":
Далее ставим флаг напротив пункта "Фиксированный виртуальный жесткий диск" и жмем кнопку "Next":
В следующем окне укажите место хранения виртуального жесткого диска и задайте его размер, после чего жмите кнопку "Создать" (Я поставил 20 Гб, но думаю и 8 Гб будет вполне достаточно):
Ждем пока VirtualBox создаст виртуальный жесткий диск:
Виртуальный жесткий диск готов, теперь в списке виртуальных машин выбираем нашу только что созданную и жмем по ней правой кнопкой миши, выбираем пункт "Настроить" или жмем по комбинации клавиш Ctrl+S :
В появившемся окне выбираем пункт "Носители", кликаем на диск с подписью "Пусто" под "Контроллер: IDE" и жмем на иконку выбора файла образа. Выбираем скачанный ранее дистрибутив Ubuntu Server:
Теперь необходимо перейти в пункт "Сеть" и в выпадающем списке "Тип подключения" выбрать пункт "Виртуальный адаптер хоста" и нажать на кнопку "Ок":
Мы публикуем только рабочие и проверенные примеры. Если у вас возникли вопросы, то задавайте их в комментариях, не стесняйтесь)
Если вам понравился опубликованный материал делитесь им и подписывайтесь на нас в соц. сетях
Подробная инструкция по установки и настройки web сервера на виртуальную машину. Часть 3 из 3, настройка Ubuntu Server.
В третьей части подробно описано как настроить Samba (пакет программ для работы с сетью), как добавлять виртуальные хосты для веб сервера, а также описано как установить дополнительные программы для удобства администратора
И так осталось проделать следующие операции:
Установка Midnight Commander
Для начала установим Midnight Commander что бы сделать нашу работу в терминале немного приятнее, для этого необходимо выполнить следующую команду:
После чего необходимо ввести пароль и подтвердить установку. По окончанию установки проверим все ли хорошо, наберем в терминале команду:
Должно появиться следующее окно:
Для выхода из Midnight Commander нажмите F10 . Продолжим.
Перейдем к настройке Samba
Samba понадобиться нам для доступа с нашего компьютера под управлением ОС Windows к файлам, которые расположены на нашем виртуальном web сервере Ubuntu.
Для начала проверим нашу текущую версию самбы. Наберем в консоле команду:
И получим примерно такой ответ:
Перед началом настройки нам необходимо узнать рабочую группу нашей Windows машины. Открываем консоль Windows ( Win + R и введите cmd ) и вводим команду:
Из ответа выбираем пункт "Домен рабочей станции", у меня это WORKGROUP :
Запомним имя рабочей станции. И вернемся к нашему виртуальному серверу. Для начала создадим папку в которой будут храниться наши проекты и к которым мы будем иметь доступ из Windows машины. Перейдем в домашнюю папку пользователя, для этого вводим в консоле команду:
Теперь откроем Midnight Commander и создадим следующие папки samba и в ней public_html . Для создания папки в Midnight Commander нажмите клавишу F7 . Выходим из Midnight Commander (клавиша F10 ) и перейдем к настройке Samba .
Для начала сделаем резервную копию файла конфигурации Samba . Удалим старый файл smb.conf , создадим новый и откроем его для редактирования:
После того как мы открыли файл smb.conf для редактирования, добавьте в него следующие настройки (измените их в соответствии с вашими пожеланиями)
Сохраняем файл Ctrl + x и перезапускаем самбу:
Установим права для записи в общую папку:
Samba готова к работе. Добавим в нее тестовый сайт. Для этого откройте "Мой компьютер" "Сеть" "Ubuntu" или Win + r и введите \\ubuntu, откроется список сетевых папок на нашем сервере. На данном этапе это одна папка MyShare , откроем ее и перейдем в папку samba/public_html ". Создадим в ней папку testsite.local , а в ней файл index.php со следующим содержанием:
Настройка виртуальных хостов
Перейдите в конец файла ( Ctrl + v несколько раз) и введите следующие настройки:
Сохраняем Ctrl + x и перезагружаем apache для того что бы изменения вступили в силу:
Теперь перейдем к настройке виртуальных хостов.
Откройте консоль сервера. Скопируем файл настроек для нашего виртуального хоста:
Откроем его для редактирования:
Файл будет выглядеть следующим образом (комментарии из файла были удалены):
Поправим его для нашего первого тестового сайта и преведем его в следующий вид:
Сохраните и закройте его Ctrl + x . Теперь необходимо включить наш новый виртуальных хост, для этого в консоле сервера вводим команду:
После выполнения команды необходимо перезапустить Apache , чтобы изменения вступили в силу:
Добавим наш сайт в hosts сервера. В консоле вводим команду:
И добавляем следующую строку:
Сохраняем и закрываем файл hosts ( Ctrl + x ).
На этом этапе с сервером закончили. Теперь необходимо открыть файл С:/Windows/System32/drivers/etc/hosts на Windows машине и добавить в конец файла следующую строку:
Сохраняем файл Ctrl + s и закрываем его.
Установка phpMyAdmin
Установим phpMyAdmin для удобства работы с MySql , в консоле вводе следующие команды:
1-я команда обновит наши пакеты, а вторая установит сам phpMyAdmin . В процессе установки Вам необходимо будет указать кто будет использовать phpMyAdmin . По старой традиции отмечаем все пункты пробелом выбираем "Ок" и жмем Enter .
Следующий вопрос будет об использовании основной конфигурации для БД phpMyAdmin . Выбираем "Да" и жмем Enter .
Далее введите пароль администратора БД.
И пароль для самого приложения phpMyAdmin :
Ну и подтверждение пароля, куда ж без него:
Вы должны увидеть стандартную страницу авторизации phpMyAdmin :
phpMyAdmin установлен и готов к работе.
На этом все, спасибо за внимание.
Мы публикуем только рабочие и проверенные примеры. Если у вас возникли вопросы, то задавайте их в комментариях, не стесняйтесь)
Если вам понравился опубликованный материал делитесь им и подписывайтесь на нас в соц. сетях
Читайте также: