Как установить ubuntu server на virtualbox

Обновлено: 07.07.2024

Практически любому веб-разработчику, рано или поздно, приходится сталкиваться с веб серверами. Даже если Вы работаете в достаточно крупной компании и за работу с сервером отвечает специально обученный человек, знать как устроен сервер все равно не будет лишним.

Сегодня мы установим сервер Ubuntu на виртуальную машину и у Вас появиться возможность с ним поэкспериментировать. Установить, например, Node.js или базу данных. Установить NGINX, Apache, изменить настройки и т.д.

Для этого совершенно не обязательно тратить деньги и покупать место у хостера.

1. Подготовка к установке.

Ссылки на скачивание:

Для начала скачаем и установим виртуальную машину VirtualBox, сам сервер Ubuntu и программы для связи с нашим сервером. Если у Вас система Windows и установлен PowerShell, то достаточно скачать и установить WinSCP, если PowerShell не установлен, то нужно будет скачать PuTTY. Для систем Linux дополнительных программ не требуется. К сожалению для MacOS подсказать не смогу.

Здесь будет рассмотрена установка и настройка Ubuntu Server 18.04 на Windows. Однако установка и настройка на другие системы отличается только способом подключения к SSH серверу.

Какой сервер Ubuntu выбрать, решать Вам. !8.04 устанавливают абсолютно все хостеры, 20.04 – не факт. Но на Ubuntu Server 20.04 без танцев с бубнами по умолчанию ставится Python 3.8. И устанавливается MySQL 8. Хотя для тренировки подойдет любая.

2. Установка Ubuntu Server

Запускаем VirtualBox, заходим в "Файл" -> "Менеджер сетей хоста" и проверяем, чтобы настройки совпадали с теми, что на скриншоте ниже. По умолчанию они должны быть именно такими. Если нет - настраиваем.



Нажимаем кнопку "Создать", называем ubuntu, выбираем разрядность как у Вашей системы и соглашаемся со всем, что предложено по умолчанию.





Теперь нужно указать место хранения виртуальной машины. Я предпочитаю хранить подобные вещи не на системном диске. Жмем на иконку папки и выбираем желаемый диск и директорию. Имя оставляем по умолчанию ubuntu.

Ниже предлагается указать максимальный размер виртуального диска. Дело в том, что динамический виртуальный диск подразумевает не бесконечное расширение, а то, что занимать он будет столько, сколько в нем записано. Но не больше, чем мы укажем при его создании. Поэтому зададим нашему диску гигов 20. Для обучения, думаю, хватит. Можете задать больше.

Нажимаем "Создать". Далее жмем кнопку "Настроить" и выбираем вкладку Сеть. Первый адаптер оставляем без изменений. Заходим во вкладку "Адаптер 2", включаем его и выбираем "Виртуальный адаптер хоста". Жмем "ОК".



Теперь нажимаем кнопку "Запустить". Появмться окно выбора установочного диска. Жмем на кнопку с папкой, далее "Добавить" и выбираем скачанный образ Ubuntu Server. Жмем "продолжить".



Начнется установка сервера. Выбираем Английский язык, выбираем обновление во время установки и затем везде кликаем [Done].





Для перехода между пунктами используем клавишу Tab. Для выбора "Continue" используем стрелку вниз.



Указываем свое имя, имя сервера, имя пользователя, под которым будете заходить и пароль пользователя. Подтверждаем пароль пользователя. Далее обязательно отмечаем установку OpenSSH Server. Для этого нажимаем клавишу Пробел. В поле установки дополнений ничего не выбираем и не нажимаем "Cancel update and reboot". Установка обновлений может занять достаточно много времени. Ждем.





Дожидаемся надписи "Reboot" и жмем Enter. Затем установщик просит изьять установочный диск. Заходим в "Устройства" -> "Оптические диски" и кликаем по ubuntu 18.04 (или 20.04 в зависимоти от того, какую редакцию устанавливаете). Снова заходим в "Устройства" -> "Оптические диски" и нажимаем "Изъять диск из привода". Жмем Enter, дожидаемся перезагрузки сервера и когда потребует - вводим логин и пароль. Пароль при вводе не отображается!





На этом установка Ubuntu Server закончена. Дальше будем настраивать.

3. Настраиваем подключение по SSH

Для начала создадим пароль для пользователя "ROOT". Это пользователь Ubuntu, который имеет расширенные права (аналогично пользователю "Администратор" в Windows). Для этого вводим:

Необходимо будет ввести свой пароль, затем ввести новый пароль для рута и подтвердить новый пароль.


Теперь разрешим руту входить по SSH. Для этого отредактируем файл sshd_config. Вводим:

sudo nano /etc/ssh/sshd_config

разрешим руту входить по SSH

Нажимаем CTRL-X -> Y -> Enter. Перезапускаем SSH сервер:

sudo service ssh restart

Теперь временно настроим сетевое подключение для SSH. Временно потому, что после перезагрузки такая настройка уже работать не будет и придется вводить комманду заново. Набираем:

sudo ifconfig enp0s8 192.168.56.101

Проверяем. Набираем ifconfig и видим подлючение enp0s8

подлючение enp0s8

Теперь открываем PowerShell и подключаемся к нашему серверу (если PowerShell то устанавливаем PuTTY и используем его):

В перый раз при входе на незнакомый адрес, PowerShell спросит разрешения. Пишем Yes. Вводим пароль рута и заходим на сервер.

PowerShell подключаемся к серверу

Дальше настроим подключение с помощью WinSCP. Открываем программу, выбираем "Новое подключение", протокол передачи SFTP, Имя хоста вводим 192.168.56.101, порт оставляем 22, имя пользователя - root, пароль - наш пароль рута. Нажимаем "Сохранить", ставим галку "запомнить пароль" вводим имя подключения или оставляем как есть и жмем "ОК". Дальше нажимаем "Войти" и как и в PowerShell при первом запуске спросит разрешение для подключения к неизвестному серверу. Разрешаем.

подключение с помощью WinSCP

Теперь настроим для WinSCP внешний редактор кода. Для этого заходим "Параметры" -> "Настройки" -> "Редакторы" и нажимаем "Добавить". Выбираем "Внешний редактор -> "Обзор" и находим свой редактор кода. Я для этих целей использую VS Code (C:\Program Files\Microsoft VS Code\code.exe). Вы можете использовать любой, к какому привыкли. Например Notepad++ или Sublime Text. Не советую для этих целей использовать IDE. Слишком долго грузиться будет. Выбираем, нажимаем "ОК", смотрим, чтобы редактор появился в списке, перемещаем его вверх одноименной кнопкой и снова "ОК".

внешний редактор кода WinSCP

Теперь увеличим время жизни сессии SSH. Если определенное время, при подключении по SSH, не производить никаких действий, то подключение прерывается. И потом приходится подключаться заново. Порой это раздражает. Поэтому время жизни сессии я рекомендую увеличить.

При входе на сервер мы попадаем в директорию "root". Выходим из нее (кликаем по папке с двумя точками), заходим в папку "etc" -> "ssh" и открываем файл sshd_config.

Пролистываем файл вниз и добавляем следующие строчки:

TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60

Как на изображении ниже.

увеличим время жизни сессии SSH

Сохраняем файл и закрываем редактор. Возвращаемся в PowerShell и перезапускаем SSH сервер:

sudo service ssh restart

Если мы вошли как root пользователь то слово sudo можно не писать.

Следующим шагом мы настроим постоянное подключение enp0s8. Для этого возвращаемся в WinSCP, выходим из папки ssh и заходим в netplan (/etc/netplan). Открываем файл 00-installer-config.yaml и прописываем следующие строчки:

enp0s8:
dhcp4: no
addresses: [192.168.56.101/24]

В результате файл должен выглядеть так:

настроим постоянное подключение enp0s8

Сохраняем файл и закрываем редактор. Закрываем WinSCP. Возвращаемся в PowerShell и набираем reboot чтобы перезапустить наш сервер. Позле перезапуска снова входим по SSH для проверки.


На момент написания статьи актуальна версия VirtualBox 6.0

Шаг 2 - Запускаем VirtualBox и создаем виртуальную машину.

В основном окне программы нажимаем кнопку "Создать".


В появившемся окне указываем имя виртуальной машины (любое), указываем расположение файлов виртуальной машины, тип выбираем Linux, версию Ubuntu (64-bit), нажимаем "Далее".


В следующем окне указываем объем оперативной памяти, выделяемый виртуальной машине. По умолчанию предлагаемся 1024 Мб, я оставлю это значение. Если собираетесь "ворочать" что-то серьезное, то выделяйте больше. Нажимаем "Далее".


Далее выбираем пункт "Создать новый виртуальный жесткий диск", жмем кнопку "Создать".


В появившемся окне выбираем тип виртуального диска VDI, жмем кнопку "Далее".


Далее выбираем формат хранения данных. Подробнее о них можете почитать в описании. Я использую динамический виртуальный жесткий диск.


Далее выбираем размер диска в зависимости от потребностей, я выбрал 40 Гб, нажимаем кнопку "Создать".


Готово. Виртуальная машина создана.


Шаг 3 - Настройка виртуальной машины.

Прежде чем приступать к установке операционной системы виртуальную машину нужно немного настроить.

Выделяем виртуальную машину в списке слева и нажимаем кнопку "Настроить".


В появившемся окне устанавливаем порядок загрузки, как на картинке. Такой порядок позволит до установки ОС загружаться с виртуального CD/DVD-привода, а после с жесткого диска.


На вкладке "Система" указываем количество ядер, которые готовы выделить для виртуальной машины и ставим галочку "Включить PAE/NX".


На вкладке "Аудио" отключаем аудио, на сервере оно не нужно.


На вкладке "Сеть" выбираем тип подключения "Сетевой мост". Так наша виртуальная машина попадет в ту же локальную сеть, что и компьютер, на котором она запущена. Если в сети есть DHCP сервер, например, роутер, то виртуальная машина автоматически получит IP- адрес.


На вкладке носители выбираем дисковод и выбираем скачанный образ Ubuntu Server.



Шаг 4 - Установка Ubuntu Server 18.04

Двойным кликом запускаем виртуальную машину и приступаем к установке Ubuntu Server.

После запуска виртуальной машины мы увидим следующую картинку:


Далее увидим загрузку установщика Ubuntu Server:


По окончании загрузки необходимо выбрать язык устанавливаемой системы. Я выбрал Русский.
Внизу есть подсказка, что для управления необходимо использовать клавиши ВНИЗ, ВВЕРХ и ENTER.


На следующем шаге можно выбрать настройки клавиатуры, я всё оставил без изменений.


Далее можно выбрать настройки сети, т.к. в моей сети есть DHCP сервер я оставил настройки без изменений, виртуальная машина уже получила IP-адрес автоматически.


Далее указываем прокси-сервер если он есть. У меня его нет, оставляем всё без изменений.


На следующем шаге можно указать дополнительные зеркала репозиториев. Я всё оставляю без изменений.


Далее выбираем способ разбивки жесткого диска на разделы - "Use An Entire Disk", т.е. будем использовать всё дисковое пространство.


На следующем шаге указываем какой именно жесткий диск мы будем использовать (в данном случае он у нас один).


Далее установщик покажет, как именно он собирается разбить диск на разделы. Выбираем "Готово" и двигаемся дальше.


Затем установщик предупредит, что все данные на диске будут уничтожены. Выбираем пункт "Продолжить", двигаемся дальше.


На следующем шаге заполняем все поля: Ваше имя, имя сервера, логин и пароль.


На следующем шаге отмечаем (с помощью клавиши пробел) пункт "Install OpenSSH server". Это позволит нам подключаться к серверу по протоколу SSH.


Далее сервер предложит установить дополнительные пакеты, если Вам что-то из этого нужно, то отметьте эти пункты с помощью клавиши пробел. Выбираем "Готово" и двигаемся дальше.


Далее запустится непосредственно установка системы, необходимо дождаться её завершения.


В завершении установки система начнет устанавливать обновления. На этом этапе можно установить установку обновлений и перезагрузить систему, но делать этого не нужно, дождитесь завершения установки обновлений.


Установка завершена, можно перезагружаться, выбираем "Reboot"


Затем установщик попросит извлечь установочный диск и нажать ENTER. Просто нажимаем ENTER, виртуальная машина перезагрузится и запустится установленная Ubuntu Server.


По завершении загрузки Вы увидите примерно такое окно с приглашением ввести логин и пароль.


Введите данные, указанные Вами при установке.
При вводе пароля символы не отображаются.

При успешном логине Вы увидите примерно следующее окно с информацией о системе и доступных обновлениях.


На этом экране указан IP-адрес машины, его мы будем использовать для подключения к системе по протоколу SSH. Также, узнать IP-адрес можно с помощью команды ifconfig.

На этом установка Ubuntu Server 18.04 завершена, можно приступать к её настройке или изучению.

Шаг 5 - Подключаемся к серверу по SSH с помощью программы PuTTY

Для полноты картины подключимся к серверу по SSH с помощью программы PuTTY. Скачайте её с официального сайта и запустите.

В поле Host name (or IP adress) введите адрес Вашей виртуальной машины:


В появившемся окне нажмите "Да"


Программа предложит ввести логин и пароль. Введите Ваши данные.


Готово. Мы подключились к серверу.


В следующей статье я расскажу о том, как установить на Ubuntu Server 18.04 веб-сервер на основе связки Nginx+PHP+MySQL+phpMyAdmin. Также Вы можете скачать образ уже готового сервера под VirtualBox.

1. Вступление
В рамках этой статьи рассмотрим подробную установку средства виртуализации Oracle VM VirtualBox (далее просто VirtualBox) и создания виртуальной машины под управлением Ubuntu 18.04 Server.

Почему будем использовать именно VirtualBox?
Причин несколько:

1) Он прост в установке на любую операционную систему (Windows, MacOS, Linux);
2) Имеет обширное комьюнити пользователей, а значит - можно найти ответ на любой вопрос;
3) Поддерживает создание множества виртуальных машин под разными ОС (Windows, FreeBSD, Ubuntu, CentOS, RedHat и др.);
4) Создание отдельных виртуальных сетей между виртуальными машинами;
5) Cоздание и восстановление снимков системы (снапшотов) и довольно обширную интеграцию с ОС хоста;
6) Бесплатный;

Зачем это нужно?

1) Для обучения;
2) Для тестирования каких-то программ, сборки пакетов под определённую конфигурацию системы;
3) Для решения задач "домашнего сервера" при наличии мощной машины хоста;

Версии ПО используемые для установки в данном руководстве:
- Windows 10, версии 1903;
- VirtualBox 6.1;
- Ubuntu 18.04 Server LTS;

2. Подготовка

2.1 Скачивание, установка и настройка Oracle VM VirtualBox

Нажимаем большую синюю кнопку Download и переходим на следующую страницу:



3. Установка VirtualBox

Установка самого VirtualBox
не сложна и заключается, в основном,
в "Далее-Далее-Принять-Готово",
(кроме двух моментов о которых
расскажу далее),
подробно расписывать его
установку смысла не имеет,
но скриншоты процесса приложу ниже.

Два "сложных" момента заключаются в следующем:

1) Необходимо включить в BIOS
ПК на который устанавливается
средство виртуализации,
настройку Virtualization Technology.
2) При установке кратковременно
пропадёт сеть на ПК, VirtualBox
об этом любезно предупредит.

На просторах интернета не нашел единого рецепта по установке и настройке такого, довольно нестандартного сервера. Решил написать свой рецепт.

Принцип работы следующий:



Статические данные (файлы) отдает Nginx, а динамикой занимается Apache.
Начнем.

Установим VirtualBox

    Запустим установщик VirtualBox.

Установка VirtualBox. Шаг 2

Подготовим VirtualBox к установке Ubuntu Server 16.04.3 LTS

  1. Загрузим образ ubuntu-16.04.3-server-amd64.iso
  2. Создадим виртуальную машину.

Важно: У меня 8 ГБ оперативной памяти, и в моем случае, двух гигабайт будет достаточно. У вас может быть иначе.

VirtualBox


Размер жесткого диска: 15 ГБ
Другие параметры оставим по умолчанию.

VirtualBox


Сменим тип подключения с NAT на Сетевой мост.

Установка Ubuntu Server 16.04.3 LTS

    Выберем загрузочный диск с образом Ubuntu Server 16.04.3 LTS.

Установка Ubuntu Server 16.04.3 LTS (Шаг 3)

Установка Ubuntu Server 16.04.3 LTS (Шаг 22)


Нам нужно изъять диск из привода.
Устройства -> Оптические диски -> Изъять диск из привода

VirtualBox


Продолжаем.
Выбираем полное клонирование.

Установим PuTTY, для доступа через SSH

    Запустим установочный файл.

Установка PuTTY (Шаг 2)

Подключение через SSH к серверу

    Запустим клон нашей машины, что бы узнать ее ip адрес.
    Напишем команду:
    ifconfig

PuTTY


Мы должны наблюдать следующее:

Установка и настройка (Nginx + Apache) + PostgreSQL + PHP

make install
Теперь, на сервер PostgreSQL, в нужную базу данных, где хотим использовать беззнаковые и однобайтовые числа, отправим:

Вернемся в корневой каталог
cd /
Установим Nginx, но перед этим остановим Apache, дабы он не занимал порт 80, иначе Nginx не установится.
service apache2 stop
Установка Nginx
apt-get install nginx
Отлично, теперь остановим и Nginx
service nginx stop
Настройка Apache
a2dismod mpm_event

a2enconf php7.2-fpm
Сменим порт Apache
nano /etc/apache2/ports.conf
Заменить

127.0.0.1 — означает то, что к Apache можно обратиться только по локальному адресу.
8080 — можете поставить любой свободный порт.
Перейдем в папку с доступными сайтами
cd /etc/apache2/sites-available
Создадим конфигурационный файл нашего сайда
nano domain-name.local.conf
И привести его к такому виду:

Посмотрим, что у нас лежит в /var/www
cd /var/www/

ls -F
Папка html, нам более не нужна, удалим ее вместе с содержимым
rm -R html
Создадим свою папку, со своим сайтом
mkdir domain-name.local/
Перейдем в папку с нашим сайтом
cd domain-name.local/
Создадим документ index.pnp
nano index.php
В него запишем:

tar xvf rpaf_v0.8.4.tar

cd mod_rpaf-0.8.4/
Теперь скомпилируем
make

make install
Выходим в корневой каталог
cd /
Хорошо, продолжим настройку Apache.
nano /etc/apache2/apache2.conf
Заменить

Приведем в порядок rpaf.conf
nano /etc/apache2/mods-available/rpaf.conf
Приведем его к такому виду:

Включим наш сайт в Apache.
a2ensite domain-name.local.conf
И запустим наш Apache.
service apache2 start
C Apache закончили.
Настроим Nginx
nano /etc/nginx/sites-available/domain-name.local
Привести к такому виду:

И сразу перейдем в нее
\c test_db
Подключим расширение pguint

И создадим тестовую таблицу

Заполним таблицу тестовыми данными

Посмотрим содержимое таблицы test_tb

Теперь попробуем вывести эти данные из php.
Закрываем соединение с СУБД
\q
Откроем /var/www/domain-name.local/index.php
nano /var/www/domain-name.local/index.php
И приведем к следующему виду:

Теперь проверим, и убедимся, что это работает



Отлично, мы настроили (Nginx + Apache) + PostgreSQL + PHP и он исправно работает.

Настроим FTP доступ к сайту

  1. listen=YES
  2. listen_ipv6=NO
  3. local_enable=YES
  4. write_enable=YES
  5. chroot_local_user=YES
  6. pam_service_name=ftp



Все хорошо, попробуем создать каталог.



Работает.
Настроим защищенное FTP соединение.
Остановим vsftpd
service vsftpd stop
Сгенерируем сертификат
openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem
Тут вводим все, что вшей душе угодно

Читайте также: