Ubuntu server на виртуальной машине под windows

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

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

Скачать VirtualBox можно с официального сайта — ссылка: https://www.virtualbox.org

Выбираем тут Server install image
(Прямая ссылка:
http://releases.ubuntu.com/18.04/ubuntu-18.04.3-live-server-amd64.iso ),
выбираем путь для сохранения.
Готово.

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

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

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

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

Вам подойдет любой компьютер. Можете выдать 256 МБ ОЗУ. Этого достаточно для нашей работы. 

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

Скачать VirtualBox можно с официального сайта — ссылка: https://www.virtualbox.org

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

Нам необходимо скачать то, что на скриншоте выделено красными прямоугольниками, а именно:

  • Сам установочный файл VirtualBox: https://download.virtualbox.org/virtualbox/6.1.0/VirtualBox-6.1.0-135406-Win.exe
  • И т.н Extension Pack — пакет очень полезных расширений (общие папки, поддержка USB выше 2.0 и др.) для виртуальных машин: https://download.virtualbox.org/virtualbox/6.1.0/Oracle_VM_VirtualBox_Extension_Pack-6.1.0.vbox-extpack

2.2 Скачивание образа системы Ubuntu 18.04 Server

Пока скачивается одно, можно загрузить образ системы с официального сайта: http://releases.ubuntu.com/18.04/

Выбираем тут Server install image (Прямая ссылка: http://releases.ubuntu.com/18.04/ubuntu-18.04.3-live-server-amd64.iso ), выбираем путь для сохранения. Готово.

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

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

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

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

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

4. Настройка VirtualBox

4.1 Создание и настройка виртуальной машины.

4.1.1 Создание

  • В главном меню выбираем пункт «Создать»:

  • Указываем имя и путь до директории хранения файлов:

  • Указываем остальные параметры VM (объем ОЗУ, создавать ли новый диск):

Можете выдать и меньше. 256МБ ОЗУ достаточно. 

  • В настройках типа жёсткого диска переходим в «Экспертный режим»:

  • Тут появляется возможность изменить место хранения жёсткого диска системы, указать его тип и формат хранения данных:

  • Нажимаем на «Создать» и получаем новосозданную виртуальную машину.

4.1.2 Настройка

Переходим в её настройки:

  • В настройках указываем *.iso образ системы, который скачивали ранее:

  • Настраиваем сеть. 

Выбираем «Сетевой мост» (Bridge network) 

Виртуалка будет работать в той же сети что и ваш компьютер. Т.е. вы на своем роутере будете видеть MAC адрес и IP от вашей виртуалки. Она будет доступна с любого устройства вашей домашней сети. 

  • Базовая настройка закончена, переходим к запуску ВМ.

5. Установка ОС

В современной установке ОС на базе RedHatDebian нет никаких сложностей. Начнём с запуска виртуальной машины и дождёмся её загрузки с образа установки:

  • Подробно процесс установки рассказывать не имеет смысла, остановимся по ходу на паре моментов подробнее, процесс приведу в скриншотах:
  • Выбираем раскладку клавиатуры и установщик следующим шагом покажет текущую конфигурацию сети. На s3 — NAT, на s8 — виртуальная сеть с IP машины:

  • Выбираем виртуальный диск на который будет производиться установка:

  • Подтверждаем его форматирование на новую файловую систему:

  • Указываем имя пользователя, его пароль и hostname виртуалки, проводим установку OpenSSH сервера (для логина в ОС по ssh):

  • Появляется возможность выбрать дополнительное ПО для установки, чаще всего это не нужно и проще установить всё руками из консоли или при помощи систем автоматизации (Ansible):

  • Перезагружаем систему после окончания установки:

  • Проверяем вход под пользователем которого мы создали:

А так же пробуем логиниться через SSH по IP который установщик дал выше (если забыли выполняем в консоли ip a и получаем список IP на всех интерфейсах системы):

Готово. Установка ОС на виртуальную машину завершена.

Есть проблемы? Пиши в чат поддержки

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

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


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

Нам нужно:

VirtualBox
Ubuntu Server 16.04.3 LTS (LTS — Long Time Support)
PuTTY

Установим VirtualBox

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

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

  2. Настройки оставим по умолчанию.

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

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

  3. Установщик временно отключит нас от сети. Жмем «Yes».

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

  4. Начинаем установку.
    Установка VirtualBox. Шаг 5
  5. Финиш.

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

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

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

    VirtualBox

  3. Имя: default_server
    Тип: Linux
    Версия: Ubuntu (64-bit)
    Объем оперативной памяти: 2048 МБ

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

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

    VirtualBox
    Жмем «Создать».

  4. Сразу настроим сеть.

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

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

  5. Запускаем нашу машину.

    VirtualBox

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

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

    VirtualBox

  2. Выбираем удобный язык, у меня это русский.

    Установка Ubuntu Server 16.04.3 LTS (Шаг 1)
    Жмем «Enter».

  3. Выбираем «Установить Ubuntu Server».

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

  4. Выбираем страну.

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

    Важно: Читайте подсказку внизу экрана.

  5. Я не буду определять раскладку клавиатуры, мне это не нужно.

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

  6. Выбираем страну для которой предназначена клавиатура.

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

  7. Выбираем регион раскладки.

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

  8. Выбираем комбинацию клавиш, для переключения языка. Мне удобно через CTRL+
    SHIFT.

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

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

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

  10. Вводим имя админа.

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

  11. Вводим имя учетной записи админа (Будет использоваться как логин для входа в систему).

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

  12. Вводим пароль от учетной записи админа.

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

  13. Повторяем пароль.

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

  14. Почему бы и нет..?

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

  15. Выбираем часовой пояс.

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

  16. Пусть система автоматически использует весь диск.

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

  17. Диск для разметки, выбираем по умолчанию.

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

  18. Записываем изменения на диск.

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

  19. У нас нету прокси, оставляем поле пустым и продолжаем.

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

  20. Пусть система сама устанавливает обновления безопасности.

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

  21. Выбираем набор программ, которые будут установлены вместе с системой.
    Нам будет достаточно стандартного набора и OpenSSH Server.

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

  22. Установим GRUB главным.

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

  23. Отлично, почти готово.

    Установка Ubuntu Server 16.04.3 LTS (Шаг 22)
    Нам нужно изъять диск из привода.
    Устройства -> Оптические диски -> Изъять диск из привода

    VirtualBox
    Теперь жмем продолжить.

  24. Прекрасно, Ubuntu Server установлена.

    Ubuntu Server 16.04.3 LTS
    Вводим логин, следом пароль, попадаем в систему, все окей.
    Выключим нашу машину:
    poweroff

  25. Конкретно эту машину мы оставим в покое, и будем использовать только для клонирования.
    Клонируем нашу машину:
    Вводим имя.

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

    VirtualBox
    Жмем клонировать. У меня клонирование длилось две минуты.

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

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

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

  2. Настройки оставим по умолчанию.

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

    Установка PuTTY (Шаг 3)
    Жмем «Install».

  3. Финиш.

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

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

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


    На скриншоте я отметил место, где будет написан ваш ip адрес. У меня это: 192.168.0.103 (может смениться, пока писал статью, у меня сменился на 192.168.0.101).
    Теперь можно выйти из учетной записи, написав:
    exit

  2. Переходим в PuTTY, вводим ip адрес, и имя для сохраняемой сессии.

    PuTTY
    Жмем «Save».

  3. Теперь, при двойном клике по имени сохраненной сессии.

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

    PuTTY
    Вводим логин, после пароль.
    SSH соединение успешно настроено, теперь можно приступать к настройке (Nginx + Apache) + PostgreSQL + PHP.

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

Перейдем в режим суперпользователя
sudo su
Перейдем в корневой каталог
cd /
Добавим репозиторий PostgreSQL
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
Добавим репозиторий PHP
add-apt-repository ppa:ondrej/php
Сделаем update
apt-get update
Сделаем upgrade
apt-get upgrade
У меня upgrade длился пять минут.
У становим python, он нам позже понадобится
apt-get install python
Приступим к установке Apache, PHP и PostgreSQL
apt-get install apache2 php7.2 php7.2-cli php7.2-curl php7.2-fpm php7.2-pgsql postgresql postgresql-contrib postgresql-server-dev-10 libapache2-mod-rpaf build-essential apache2-dev
По умолчанию, в PostgreSQL нету однобайтовых и беззнаковых чисел, поэтому мы их установим.
Есть расширение для PostgreSQL, pguint — github.com/petere/pguint
git clone https://github.com/petere/pguint.git /pguint
Перейдем в созданный каталог
cd /pguint
Теперь нам нужно скомпилировать это расширение (тут понадобится python, который мы установили ранее).
make

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

CREATE EXTENSION uint;

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

a2enmod mpm_worker

a2enmod proxy_fcgi

a2enconf php7.2-fpm


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

Listen 80

на

Listen 127.0.0.1:8080

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

<VirtualHost 127.0.0.1:8080>
	ServerName domain-name.local
	ServerAlias www.domain-name.local

	ServerAdmin admin@domain-name.local
	DocumentRoot /var/www/domain-name.local

	ErrorLog ${APACHE_LOG_DIR}/domain-name.local_error.log
	CustomLog ${APACHE_LOG_DIR}/domain-name.local_access.log vhost_combined
</VirtualHost>

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

ls -F


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

<?php
	phpinfo();
?>

С этим пока закончили.
Вернемся в корневой каталог
cd /
В apache стоит rpaf 0.6 и он не передаёт/принимает порт от nginx и не работает правильно, как надо. Поэтому его надо обязательно обновить.
wget -O rpaf_v0.8.4.tar.gz https://github.com/gnif/mod_rpaf/archive/v0.8.4.tar.gz

gunzip rpaf_v0.8.4.tar.gz

tar xvf rpaf_v0.8.4.tar

cd mod_rpaf-0.8.4/


Теперь скомпилируем
make

make install


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

LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined

на

LogFormat "%v:%p %{X-Forwarded-For}i %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined

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

<IfModule rpaf_module>
	RPAF_Enable			On
	RPAF_ProxyIPs			127.0.0.1 ::1
	RPAF_SetHostName		On
	RPAF_SetHTTPS			On
	RPAF_SetPort			On
	RPAF_ForbidIfNotProxy	Off
	RPAF_Header			X-Forwarded-For
</IfModule>

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

server {
	listen 80;
	listen [::]:80;

	root /var/www/domain-name.local;

	index index.php index.html index.htm;

	server_name domain-name.local www.domain-name.local;

	location / {
		proxy_pass http://127.0.0.1:8080;
		proxy_redirect        off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_pass_header Set-Cookie;
	}

	location ~ /.ht {
		deny all;
	}

	location ~* .(ico|docx|doc|xls|xlsx|rar|zip|jpg|jpeg|txt|xml|pdf|gif|png|css|js|html)$ {
		root   /var/www/domain-name.local;
	}

	add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
	add_header Content-Security-Policy "block-all-mixed-content";
	add_header X-Frame-Options "SAMEORIGIN";
	add_header X-XSS-Protection "1; mode=block";
	add_header X-Content-Type-Options "nosniff";

	resolver 8.8.8.8;
}

Теперь создадим символьную ссылку на этот файл
ln -s /etc/nginx/sites-available/domain-name.local /etc/nginx/sites-enabled/domain-name.local
Отредактируем /etc/nginx/sites-available/default
nano /etc/nginx/sites-available/default
Уберем default_server.
И вставим перенаправление с www. и ip

server {
	listen 80;
	listen [::]:80;

	server_name www.domain-name.local;
	return 301 http://domain-name.local$request_uri;
}

server {
	listen 80;
	listen [::]:80;

	server_name 192.168.0.101;
	return 301 http://domain-name.local$request_uri;
}

Запускаем Nginx.
service nginx start
Отлично, можем проверить как оно работает.
Но перед этим отредактируем файл хоста C:WindowsSystem32driversetc
Открыть файл hosts через текстовый редактор, и в самый низ вставить:
192.168.0.101 domain-name.local
192.168.0.101 www.domain-name.local

Заменив ip и домен на свои.
В браузере перейдем по domain-name.local, и если вы делали все по этому рецепту, мы должны увидеть страницу с phpinfo.
Отлично, дело осталось за малым.
Настроим PostgreSQL.
Создадим нового пользователя PostgreSQL
sudo -u postgres createuser --superuser test-user
Войдем в СУБД
sudo -u postgres psql
И сменим новому пользователю пароль
password test-user
Теперь новому пользователю нужно сменить тип подключения, для этого нам нужно найти pg_hba.conf файл.
Пишем

SHOW hba_file;


Покидаем СУБД
q
И начинаем редактировать /etc/postgresql/10/main/pg_hba.conf
nano /etc/postgresql/10/main/pg_hba.conf
Ищем
# Database administrative login by Unix domain socket
Находим следующее:
# Database administrative login by Unix domain socket
local all postgres peer

Приводим к таком виду:
# Database administrative login by Unix domain socket
local all postgres peer
local all test-user md5

Перезагрузим PostgreSQL
service postgresql restart
Теперь войдем в СУБД через нового пользователя
psql test-user -h 127.0.0.1 -d postgres
Вводим пароль, и попадаем в СУБД.
Создадим тестовую базу данных

CREATE DATABASE test_db;

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

CREATE EXTENSION uint;

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

CREATE TABLE test_tb(
	id uint4 PRIMARY KEY,
	title TEXT
);

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

INSERT INTO test_tb(id, title) VALUES (1, 'Бла бла бла 1'), (2, 'Бла бла бла 2'), (3, 'Бла бла бла 3'), (4, 'Бла бла бла 4'), (5, 'Бла бла бла 5'), (6, 'Бла бла бла 6'), (7, 'Бла бла бла 7'), (8, 'Бла бла бла 8'), (9, 'Бла бла бла 9'), (10, 'Бла бла бла 10'), (2147483642, 'Бла бла бла 2147483642'), (2147483643, 'Бла бла бла 2147483643'), (2147483644, 'Бла бла бла 2147483644'), (2147483645, 'Бла бла бла 2147483645'), (2147483646, 'Бла бла бла 2147483646'), (2147483647, 'Бла бла бла 2147483647'), (2147483648, 'Бла бла бла 2147483648'), (2147483649, 'Бла бла бла 2147483649'), (2147483650, 'Бла бла бла 2147483650'), (2147483651, 'Бла бла бла 2147483651'), (2147483652, 'Бла бла бла 2147483652'), (4294967286, 'Бла бла бла 4294967286'), (4294967287, 'Бла бла бла 4294967287'), (4294967288, 'Бла бла бла 4294967288'), (4294967289, 'Бла бла бла 4294967289'), (4294967290, 'Бла бла бла 4294967290'), (4294967291, 'Бла бла бла 4294967291'), (4294967292, 'Бла бла бла 4294967292'), (4294967293, 'Бла бла бла 4294967293'), (4294967294, 'Бла бла бла 4294967294'), (4294967295, 'Бла бла бла 4294967295') RETURNING id, title;

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

SELECT * FROM test_tb;

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

<?php
	$dbh = new PDO('pgsql:host=localhost port=5432 user=test-user dbname=test_db password=password');
	$test = $dbh->prepare('SELECT * FROM test_tb;');
	$test->execute();
	echo "<pre>";
	print_r($test->fetchAll(PDO::FETCH_ASSOC));
	echo "</pre>";
?>

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


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

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

Установим FTP сервер
apt-get install vsftpd
Остановим vsftpd перед настройкой
service vsftpd stop
Откроем etc/vsftpd.conf
nano etc/vsftpd.conf
Установить/заменить/переключить следующие параметры:

  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
useradd -d /home/domain-name -s /sbin/nologin domain-name
Установим для него пароль
passwd domain-name
Создадим домашнюю директорию пользователя
mkdir -p /home/domain-name
Установим для нее права
chmod a-w /home/domain-name
Создадим группу для пользователя
groupadd ftps
Добавим пользователя в группу
usermod -G ftps domain-name
Поменяем владельца каталога
chown -R domain-name:ftps /home/domain-name
Создадим папку нашего сайта
mkdir /home/domain-name/domain-name.local
Сменим у нее владельца
chown -R domain-name:ftps /home/domain-name/domain-name.local
Смонтируем наши каталоги, откроем файл /etc/fstab
nano /etc/fstab
В самый низ вставим
/var/www/domain-name.local /home/domain-name/domain-name.local none bind 0 0
Добавим владельца /var/www/domain-name.local
chown www-data:domain-name /var/www/domain-name.local/ -R
Назначим права
find /var/www/domain-name.local -type d -exec chmod 775 {} ;
find /var/www/domain-name.local -type f -exec chmod 664 {} ;

И запустим vsftpd
service vsftpd start
Проверим, я буду использовать FileZilla.


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


Работает.
Настроим защищенное 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
Тут вводим все, что вшей душе угодно

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Откроем etc/vsftpd.conf
nano etc/vsftpd.conf
Установим/добавим следующие параметры:

  1. ssl_enable=YES
  2. ssl_tlsv1=YES
  3. ssl_sslv2=NO
  4. ssl_sslv3=NO
  5. rsa_cert_file=/etc/ssl/private/vsftpd.pem
  6. rsa_private_key_file=/etc/ssl/private/vsftpd.key
  7. allow_anon_ssl=NO
  8. force_local_data_ssl=YES
  9. force_local_logins_ssl=YES
  10. ssl_ciphers=HIGH

Сохраним и запустим vsftpd
service vsftpd start
Давайте испытаем

Ура, все работает, можно приступать к разработке веб приложения.

P.S. Этот рецепт не претендует на звание единственно правильного и идеального. Если что то упустил или у вас есть предложения по дополнению этого рецепта, добро пожаловать в комментарии, приму любую критику. По мере роста моих навыков, этот рецепт будет дополняться и изменяться.

Install Ubuntu server in a virtual machine

These instructions use VirtualBox as an example. Instructions for other virtual machines are likely to be similar.

There is a version of the Ubuntu server that is optimized for usage within a virtual machine. It is provided on the Ubuntu Server edition LiveCD. The LiveCD image (.iso) found here can be downloaded onto your hard drive. It can then be installed directly into your virtual machine from the hard drive. Alternatively, you can also burn the .iso image onto a CD and install Ubuntu Server into the virtual machine from the CD. Both methods work identically during the Ubuntu Server installation process.

VirtualBox supports both 32 and 64-bit guest OSs. See this list for known supported operating systems. However, if your host OS is 32-bit you cannot run 64-bit guest OSs. Other virtual machines may have similar limitations, so in general a 32-bit Ubuntu OS is safest.

Note that the «minimal virtual machine» install of Ubuntu Server 10.04 doesn’t recognize the SATA disk controller which VirtualBox 3.2.8 uses by default. If you find you can’t boot your new installation and get dropped to an initramfs prompt on first boot, stop the VM and reconfigure it to use a SCSI disk controller instead as described here.

*Start the virtual machine you created in the previous step.

Virtualbox -> Ubuntu Virtual Server (highlighted) -> Start

  • The «First Run Wizard» will prompt for the location of the installation disk -> Next ->

    CD/DVD-ROM device (ticked) ->

Media Source:

  • select the CD-ROM drive (if you burned the LiveCD (.iso) image onto a physical CD), or
  • browse for the folder where you stored the (.iso) image onto your hard drive, if you did not burn it to a physical CD

-> Next ->

* Install Ubuntu server virtual machine edition:

The First Run Wizard will automatically start the LiveCD from the location you indicated, and you will see the Ubuntu Server LiveCD screen.

  • Choose language: English ->

  • Important: note this step carefully! Select the minimal virtual machine installation mode:

  • Click the F4 (modes) key -> Install a minimal virtual machine ->

  • Install Ubuntu Server
  • Select your installation options. When asked about partitioning, use the guided partitioning method and use the entire disk. This uses the entire virtual machine disk (which is 8 GB or whatever size you created when creating the virtual machine), not the entire physical hard drive disk.

  • Task selection. A menu will appear to select options for additional packages to be installed along with the server. Make sure these packages are starred use the space button to select them and the arrow keys to go up or down the list) before completing the installation.

  • (Optional) You will be prompted to enter an MySQL root user password during the LAMP server package installation. This password becomes important later on (in some instances). Record your chosen MySQL password in a safe location. Do not use your primary user password as the MySQL password; it ought to be unique.

* Finish the remainder of the Ubuntu server installation. At the conclusion the Ubuntu system will automatically reboot within the virtual machine. When it restarts, you will then have a fully function Ubuntu Server within the virtual machine. Immediately update the operating system:

 sudo apt-get update
 sudo apt-get upgrade

Installing missing kernel modules

The kernel package installed by the «minimal virtual machine» option only contains a small number of modules. It’s possible you may need one of the «missing» modules to get extra hardware supported. (In my case I wanted to access my MacBook Pro’s internal USB Bluetooth device from Ubuntu.)

You *don’t* have to build the modules yourself, you can simply install the associated «linux-image-extra-virtual» package and all the missing modules will be installed (at the cost of some extra disk space). (The description of the package currently implies a kernel image is also installed but that’s not the case.)

# Включение роли Hyper-V

Для развертывания Ubuntu Server в виртуальной среде Microsoft Hyper-V убедитесь, что Ваше оборудование отвечает следующим требованиям:

Требования к операционной системе:

Роль Hyper-V можно включить в следующих версиях Windows 10:

  • Windows 10 Корпоративная
  • Windows 10 Pro
  • Windows 10 для образовательных учреждений

Требования к оборудованию:

Хотя в этом документе не приводится полный список оборудования, совместимого с Hyper-V, укажем следующие обязательные требования:

  • 64-разрядный процессор с поддержкой преобразования адресов второго уровня (SLAT).
  • Поддержка расширения режима мониторинга виртуальной машины (технология VT-x на компьютерах с процессорами Intel).
  • Не менее 4 ГБ оперативной памяти. Так как виртуальные машины и узел Hyper-V используют память совместно, необходимо обеспечить достаточный объем памяти для обработки предполагаемой рабочей нагрузки на виртуальной машине.

В BIOS системы необходимо включить следующие компоненты.

  • Virtualization Technology (Технология виртуализации) — может иметь другое название (VTx, Vanderpool Technology, VT Technology, Virtualization) в зависимости от производителя системной платы;
  • Hardware Enforced Data Execution Prevention (Принудительное аппаратное предотвращение выполнения данных) — может отсутствовать в настройках BIOS.

На следующем этапе включаем Hyper-V:

Hyper-V можно включить разными способами, в том числе используя панель управления Windows 10, PowerShell или с помощью средства обслуживания образов развертывания и управления ими (DISM).

Включение Hyper-V с помощью PowerShell:

1.Откройте консоль PowerShell от имени администратора.

2.Выполните следующую команду:

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

Включение Hyper-V с помощью CMD и DISM:

Система обслуживания образов развертывания и управления ими (DISM) позволяет настраивать ОС Windows и образы Windows. Помимо всего прочего, средство DISM может включать функции Windows во время выполнения операционной системы. Чтобы включить роль Hyper-V с помощью DISM, выполните указанные ниже действия.

1.Запустите PowerShell или сеанс CMD от имени администратора.

2.Введите следующую команду:

image

Включение роли Hyper-V с помощью раздела «Параметры»:

1.Щелкните правой кнопкой мыши кнопку Windows и выберите пункт «Приложения и возможности».

2.Выберите «Программы и компоненты» справа в разделе «Сопутствующие параметры» параметры.

image

3.Выберите пункт Включение или отключение компонентов Windows.

4.Выберите Hyper-V и нажмите кнопку ОК.

image

После установки компонентов перезагрузите компьютер.

Важно!

Обратите внимание, на состояние строки «Низкоуровневая оболочка Hyper-V», если она «некликабельна» (серая), еще раз убедитесь, что ваше оборудование поддерживает технологию виртуализации и она включена в BIOS машины.

# Создание виртуальной машины в Hyper-V

Скопируйте к себе с сервера \fsrvDISTRCentOS файл ubuntu-18.04.3-live-server-amd64.iso или скачайте с сайта https://releases.ubuntu.com/18.04/ к себе на компьютер образ установочного диска для сервера:

image

В поле поиска в панели задач введите Hyper-V (или через Панель управления — Администрирование — Диспетчер Hyper-V) и запустите «Диспетчер Hyper-V»

image

В диспетчере Hyper-V слева выбираем имя своего компьютера, а в правом столбце «Действия» выбираем Создать — Виртуальная машина

image

В открывшемся окне задайте произвольное имя виртуальной машины, ее расположение и нажмите Далее

image

Выберите Поколение 2 и нажмите Далее

image

Укажите размер выделяемой памяти для виртуальной машины, исходя из возможностей Вашего оборудования, но не менее 512 Мб (минимальные требования Ubuntu Server) и нажмите Далее

image

В настройках сети выберите «Default Switсh» и нажмите Далее

image

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

image

В следующем окне укажите путь к ранее загруженному файлу установочного образа и нажмите Далее

image

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

image

После окончания работы мастера откройте Диспетчер Hyper-V, выберите свою виртуальную машину из списка:

image

кликнете правой кнопкой мыши и выберите «Параметры», в открывшемся окне перейдите на вкладку «Безопасность», уберите отметку в чекбоксе «Включить безопасную загрузку» и нажмите «ОК».

image

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

# Установка Ubuntu Server

В Диспетчере Hyper-V дважды кликните на Вашу виртуальную машину и в открывшемся окне нажмите «Пуск»

image

Дождитесь инициализация виртуальной машины и начала установки Ubuntu Server 18.04. (возможен вывод лога сообщений об ошибках или из-за кортокого таймаута перед началом установки Вы сразу увидите меню выбора языка установки)

image

В открывшемся окне настройки установки в первым будет предложен выбор языка устанавливаемой ОС. Управление производится клавишами «Вверх», «Вниз» и «Enter». Выбираем «Русский».

image

В следующем окне будет предложено обновить дистрибутив установки, мы уже определились с устанавливаемой версией, выбираем «Continue without updating» и нажимаем «Enter»

image

В окне конфигурации клавиатуры выбираем «Русская» с вариантом «Русская» выбираем «Готово» и нажимаем «Enter»

image

В следующем окне выбираем сочетание клавиш для переключения раскладки клавиатуры, выбираем «ОК», «Готово» и нажимаем «Enter»

image

В открывшемся окне конфигурации сетевого соединения настраиваем динамический или статический IP адрес, в данном случае оставляем конфигурацию выбранного адаптера без изменений, выбираем «Готово» и нажимаем «Enter»

image

В следующем окне конфигурируем proxy, если Вы не используете proxy, оставляем поле «Proxy address» пустым, выбираем «Готово» и нажимаем «Enter»

image

Зеркало для загрузки пакетов тоже оставьте по умолчанию, выбираем «Готово» и нажимаем «Enter»

image

В окне «File system setup» настраиваем разметку разделов Linux, можно предоставить возможность инсталлятору сделать это по своему усмотрению (Use An Entire Disk) или настроить «Вручную». Рассмотрим вариант установки вручную. Выбираем «Вручную» и нажимаем «Enter»

image

В следующем разделе выбираем нужный диск в списке «Available Devices» и нажимаем «Enter»

image

В открывшемся контекстном меню выбираем «Add Partition» и нажимаем «Enter»

image

В следующем окне задаем размер раздела, формат и точку монтирования. Создам корневой раздел, оставляем точку монтирования в поле «Mount» в виде одного слэша » / «, или выбираем эту точку из списка. Формат файловой системы ext4. Все свободное место выделяем под корневой каталог, выбираем «Create» и нажимаем «Enter»

image

В разделе «File system summary» мы видим смонтированный нами корневой раздел с файловой системой ext4 и инсталлятор автоматически выделил место и смонтировал загрузочный раздел /boot/efi с файловой системой fat32:

Когда завершите создавать разделы, у вас должно получится два раздела. Выбираем «Готово» и нажимаем «Enter».

image

В следующем диалоге соглашаемся на начало инсталляции и внесение изменений в структуру разделов, выбираем «Продолжить» и нажимаем «Enter»

image

Следующий шаг — создание учетной записи пользователя и выбор имени сервера. Заполните такие поля:

  • Ваше имя — просто имя, можно русскими буквами;
  • Your server’s name — имя вашего сервера, только строчные латинские буквы;
  • Имя пользователя — имя пользователя для входа в систему, только строчные латинские буквы;
  • Пароль — вводится два раза, используйте сложные пароли для серверов.

image

На следующем этапе выбираем «Install OpenSSH server», выбираем «Готово» и нажимаем «Enter»

image

Когда установка Ubuntu Server 18.04 lts завершится, дождитесь установки обновлений безопасности и нажмите кнопку Перезагрузить сейчас.

image

После перезагрузки введите логин и пароль, которые вы использовали во время установки:

image

Откроется окно с готовой к работе системой Ubuntu Server

image

Так как, в дальнейшем предстоит вводить много команд через терминал, а в гипервизоре корректно не работает вставка из буфера обмена, для подключения по ssh воспользуемся сторонним клиентом. Сначала узнаем IP адрес нашей виртуальной машины, для этого вводим sudo ifconfig в терминале гипервизора, подтверждаем команду паролем и получаем вывод терминала вида:

image

Запоминаем IP адрес интерфейса eth0.

Теперь установим ssh клиент, например, Snowflake. Для этого скачаем его с GitHub https://github.com/subhra74/snowflake/releases, выбираем инсталятор для Windows snowflake.msi:

image

Сохраняем и запускаем скачанный устанвщик snowflake.msi, в открывшемся после усановки окне программы, нажимаем «New connection», задаем произвольное имя сервера, в поле «Host» вводим IP адрес виртуальной машины, порт оставляем без изменений, заполняем поля с логином и паролем, которые Вы ввели при установке Ubuntu в виртуальную машину и нажимаем «Connect»:

image

Соглашаемся с добавлением RSA ключа:

image

Откроется терминал для управления установленной Ubuntu Server по ssh:

image

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

# Установка PostgreSQL 11 на Ubuntu Server 18.04

Обновление установленных пакетов

Обновляем текущие установленные пакеты для вновь установленного сервера, для этого последовательно вводим команды:

image

image

После обновления пакетов, перезагрузите сервер

На время перезагрузки будет разорвано соединение, выждите некоторое время и нажмите «Reconnect» в красном поле справа:

image

После перезагрузки системы установите vim и wget, если они еще не установлены.

image

# Добавление репозиториев PostgreSQL 11

Перед добавлением содержимого репозитория на Ваш Ubuntu Server вам необходимо импортировать ключ подписи репозитория:

В выводе теминала будет «ОК»:

image

После импорта ключа GPG добавьте содержимое репозитория в вашу систему:

image

добавление прошло без ошибок, теперь проверим содержимое файла репозитория

В выводе терминала отобразится строка содержимого:

image

Установите PostgreSQL 11 в Ubuntu Server, для этого введите следующие две команды:

image

Разрешить доступ к PostgreSQL с удаленных хостов

По умолчанию доступ к серверу базы данных PostgreSQL осуществляется только с localhost:

image

Чтобы разрешить доступ к сети, отредактируйте файл конфигурации, для этого введите:

Откроется редактор nano, переместите курсор в раздел CONNECTIONS AND AUTHENTICATION, добавьте строку:

image

Для сохранения нажмите сочетание CTRL + X, для подтверждения введите «Y» и «Enter»

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

Убедитесь в адресе привязки для PostgreSQL:

image

Если у вас активен брандмауэр UFW, разрешите порт 5432

image

Установка пароля администратора PostgreSQL

Установите пароль для администратора по умолчанию

image

Вы также можете добавить других пользователей базы данных:

Добавить тестовую базу данных:

image

Выполните тестовую операцию, войдя в систему как dbuser1 и работая с testdb:

image

Установите пароль пользователя:

image

Создайте таблицу и добавьте какие-нибудь данные данные:

image

Просмотрите данные таблицы:

image

Удалите Вашу тестовую таблицу:

image

Удалите тестовую базу данных:

image

Выйдите из PostgreSQL

image

Вы успешно установили и протестировали сервер базы данных PostgreSQL в Ubuntu 18.04.

# Установка инструментов управления

# Создание пользователя

Для последующей работы с Ubuntu, у вас должен быть обычный пользователь без полномочий root с привилегиями sudo, настроенными на вашем сервере. Кроме того, вам потребуется включить базовый брандмауэр, чтобы блокировать второстепенные порты.

В этом примере создается новый пользователь с именем ssh_user, но вы должны заменить его на имя пользователя, которое вам нравится:

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

Введите надежный пароль и, при желании, введите любую дополнительную информацию. Это не обязательно, и вы можете просто нажать ENTER в любом поле, которое хотите пропустить.

image

Теперь у нас есть новая учетная запись пользователя с обычными привилегиями учетной записи. Однако иногда нам может потребоваться выполнение административных задач.

Чтобы избежать необходимости выходить из системы обычного пользователя и снова входить в систему как учетная запись root, мы можем настроить так называемые «суперпользовательские» или привилегии root для нашей обычной учетной записи. Это позволит нашему обычному пользователю запускать команды с административными привилегиями, помещая слово sudo перед каждой командой.

Чтобы добавить эти привилегии нашему новому пользователю, от имени пользователя root выполните эту команду, чтобы добавить нового пользователя в группу sudo:

# Включение брандмауэра

Серверы Ubuntu 18.04 могут использовать брандмауэр UFW, чтобы убедиться, что разрешены только подключения к определенным службам. С помощью этого приложения мы можем очень легко настроить базовый брандмауэр.

Различные приложения могут зарегистрировать свои профили в UFW после установки. Эти профили позволяют UFW управлять этими приложениями по имени. У OpenSSH, сервиса, позволяющего нам теперь подключаться к нашему серверу, есть профиль, зарегистрированный в UFW.

Вы можете увидеть это, набрав:

image

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

image

После этого мы можем включить брандмауэр, набрав:

image

Введите «y» и нажмите ENTER, чтобы продолжить. Вы можете видеть, что соединения SSH по-прежнему разрешены, набрав:

image

Как видим, разрешены только подключения через порт который мы добавили ранее для работы с PostgreSQL и подключения OpenSSH.

# Установка pgAdmin

Установите открытый ключ для репозитория:

image

Создайте файл конфигурации репозитория:

image

Установите pgAdmin как web сервер:

Дождитесь окончания процесса:

image

Настройте веб-сервер:

Для настройки укажите в качестве логина адрес электронной почты (можно любой) и пароль:

image

Затем согласитесь с настройкой Apache и дополнительных модулей, для чего введите «Y», также согласитесь с перезапуском службы Apache:

image

Разрешим доступ к Apache в файрволле:

image

Теперь можно подключиться к pgAdmin

# Доступ к pgAdmin

На локальном компьютере откройте веб-браузер и перейдите по IP-адресу вашего сервера:

http://IP_Вашего_сервера/pgadmin4

Вам будет представлен экран входа в систему:

image

Введите учетные данные, которые вы вводили ранее, и вы попадете на приветственный экран pgAdmin.

image

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

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

Откройте диалог добавления сервера, на первой вкладке введите имя сервера:

image

На вкладке «Соединение» введите имя сервера, порт. Базу данных и пользователя оставьте «postgres» (это пользователь с правами супервизора PostgreSQL по умолчанию) и пароль который Вы задали ранее:

image

На вкладке «SSL» выберите «допускается» (SSl еще не настроен, поэтому установив, например, «требуется» Вы не соединитесь с сервером):

image

И нажмите «Сохранить»

В левой части окна pgadmin появится обозреватель (browser) подключенных серверов:

image

Создание ролей

Создаем роли с правами админа db_owner (без права логина) и SA (обязательно в верхнем регистре), для этого в обозревателе нажимаем правой кнопкой мыши на вкладку «Роли входа/группы» и выбираем «создать роль входа/группы»:

image

В открывшемся окне на вкладке «Общие» задаем имя роли:

image

На вкладке «Определение» задаем пароль:

image

На вкладке права выставляем для db_owner права, как на скриншоте:

image

И нажимаем «Сохранить»

Повторяем действия для роли SA, с той разницей, что на вкладке «Права» разрешаем вход:

image

И нажимаем «Сохранить»

Проверить созданные роли можно также из командной строки PostgreSQL, не изменяя при этом сессии пользователя.
Чтобы получить доступ к командной строке Postgres, запустите команду psql как пользователь postgres с правами sudo:

Эта команда выполнит автоматический вход в PostgreSQL без промежуточной оболочки bash.

image

Затем введите:

В выводе терминала Вы увидите список ролей с их правами:

image

Выйдите из командной строки PostgreSQL

Создание табличного пространства и базы данных

Создайте табличное пространство (tablespace), для этого в web-интерфейсе pgAdmin, в обозревателе на вкладке «Табличные пространства» кликните правой кнопкой мыши и выберите «Создать табличное пространство». В открывшемся окне на вкладке «Общие» введите имя пространства и определите владельца dw_owner:

image

На вкладке «Определение» укажите расположение, как на скриншоте или задайте табличное пространство сообразно своей логики размещения файлов объектов базы данных в файловой системе:

image

И нажимаем «Сохранить»

Создайте базу данных, для этого в web-интерфейсе pgAdmin, в обозревателе на вкладке «Базы данных» кликните правой кнопкой мыши и выберите «Создать Базу данных». В открывшемся окне на вкладке «Общие» введите имя базы данных и определите владельца dw_owner:

image

На вкладке «Определение» выставите значения, как на скриншоте:

image

И нажимаем «Сохранить»

Выполнение скриптов

На созданной базе выполните скрипты, для этого выбираем созданную базу в списке, нажимаем правой кнопкой мыши и выбираем «Запросник» (Query tool):

image

В правой части окна pgadmin в открывшемся редакторе вводим:

image

И нажимаем F5, появится сообщение об успешном выполнении запроса.

Выполняем еще один скрипт:

image

# Установка PGagent

Для устанвки пакета вернемся в ssh клиент и введем в терминале:

Соглашаемся на установку:

image

Создаем скрипт автозапуска:

В открывшемся окне вставляем код:

Для выхода нажимаем «Ctrl + x», соглашаемся на сохранение изменений: вводим «Y» и «Enter».

Добавляем файл конфигурации:

В открывшемся окне вставляем:

image

Выполнить:

И запустить сервис:

Через web-интерфейс pgAdmin на базе postgres выполнить:

image

# Настройка заданий

Перед настройкой заданий в pgagent в файл конфигурации в строку подключения добавим password=ВашПароль пользователя posgres:

image

Настроить ежедневную задачу в pgagent с тремя запросами по шагам, для этого в левой части интерфейса pgAdmin переходим на «Задания paAgent» (если меню заданий pgAgent не отображается в браузере, нажмите правой кнопкой мыши на имя сервера и выберите в контестном меню «Обновить» (Refresh)), нажимаем правой кнопкой мыши и выбираем «Создать — Задание pgAgent»:

image

В открывшемся окне, на вкладке «Общие», задаем имя задания, выбираем класс задания «Routine Maintenance»:

image

На вкладке шаги для добавления в верхней правой части нажать «+», ввести имя:

image

Затем нажать на иконку изменения шага (слева от имени), в открывшемся окне на вкладке «Общие» свойств шага, выберите базу для которой создается задание:

image

На вкладке «Код» ввести vacuum analyze;

image

Добавить следующий шаг, нажать «+», на изменение выбрать базу и ввести код cluster;

image

Повторить дествия для третьего шага, выбрать базу и ввести код `reindex database <имя базы>;

image

На вкладке «Расписания» добавить расписание, присвоить имя, в разделе «Общие» задать дату и время начала и окончания выполнения задания:

image

В разделе «Повтор» выберите время выполнения задания:

image

Таким образом, было создано задание на ежедневное обслуживание базы данных с тремя шагами (Очистка всех таблиц, кластеризация всех таблиц и переиндексация.

Virtualbox is one of the free, open-source hypervisors that you can run on pretty much all the operating systems out there. It doesn’t matter whether you have a windows machine, mac or Linux. The VirtualBox can run on all the devices irrespective of the operating system.

We have covered how you can install Ubuntu Desktop 20.04 on Virtualbox in the last blog, In this blog, we will install the Ubuntu server 20.04 on a VirtualBox hypervisor.

After the installation is complete, we will install VirtualBox guest additions to improve the ubuntu 20.04 server operating system performance.

1. Create the Virtual machine.

Open VirtualBox and click on New to create a virtual machine in Virtualbox.

By default, you will be on the guided mode, for a simple virtual machine creation, that should be fine. However, if you want to have complete control of your virtual machine resources, you must choose the expert mode.

You will be taken to the Virtual machine creation wizard in Expert mode.

  • Name : You will have to enter the name of your VM. For example ‘Ubuntu Server 20.04’.
  • Machine folder: Location where you want to save the file.
  • By default, when we typed the name, it picked up the Type as Linux and the version as Ubuntu.
  • Configure the Memory- You could assign even 1 GB of memory. As I have close to 32GB of RAM and require good performance from the virtual machine, I am giving 4GB of RAM for the virtual machine. If you need more memory, you could add more as well.
  • Hard disk – Choose create a virtual hard disk now option and click on Create.

2. Create virtual hard disk for Ubuntu server 20.04.

The virtual hard disk creation wizard will now open.

  • Location – You will be able to see the location of your virtual hard disk on the top based on the configuration you made before.
  • File Size – By default, the virtual machine has assing 10GB of storage for the Ubuntu server, which is not enough for most of the users. Hence I am assigning 20GB of storage. Again, you could assign more storage volume depending on your usage and hard disk storage capacity.
  • Storage on Physical hard disk – Choose Dynamically allocated and click on Create.

3. Configure the CPU.

You will see the Ubuntu server VM created in the VirtualBox; by default, when we made the virtual machine, it picked up a single CPU. To get better performance, at least you should configure 2 CPUs. Since I have enough CPU on my machine, I assign about 4 CPUs.

So right-click on the VM and click on settings.

The virtual machine settings window would pop up, click on System àProcessor, Increase the CPU count as per your need.

4. Configure the Network.

You can keep the Ubuntu server 20.04 in a separate network depending on your need.

For the VM to get to the internet, there are two ways. One is through the bridged networking, and the other is through NAT.

Bridged networking – If you would like the Virtual machine to be part of the same local area network and wanted your LAN router to assign a DHCP address, you could use this option.

NAT – With the NAT, the VirtualBox will assign a NAT IP address to your Virtual machine, with which it can go out to the internet. However, the local area network devices will not talk to the Ubuntu virtual machine.

Other network options are also available for your VM to use, which I covered in detail here.

In my case, I would want my VM to be part of my local area network. Hence I am going to choose the Bridged network.

I won’t recommend this option at the office network unless you consult with your network admin. As it will get an IP address from your office DHCP server. Some companies won’t allow connecting other machines to the office network as per the policy. So, It is always better to consult with the networking team before using this option.

For office networks, you could use NAT network, as the local area network devices won’t see the virtual machine; instead, they will see the host machine IP for any traffic that is generated from the VM.

You can learn more about different types of networks in VirtualBox here.

That’s it click on Ok, and you will be back to the VirtualBox window.

5. Initiate the Ubuntu Server installation.

Right-click on the Ubuntu server 20.04 and click on start.

As soon as the booting process starts, you will be prompted to choose the Ubuntu Server 20.04 ISO image from your machine and click on the folder icon to attach the file.

You will get a prompt again. In that, click on Add.

Browse for the file and attach it here, and click on start.

The Ubuntu Server installation will now begin. In the installation wizard, choose the language of your choice.

In my case, there was an installer update that was available. At this moment, I am not going to proceed with the installer update; hence I chose to continue without updating.

Configure the keyboard layout of your choice, and choose done.

During this time, you may disconnect the virtual network adapter by right-clicking on the network icon and clicking on Connect Network Adapter. This will disconnect the VM from the network.

You can still avoid the Ubuntu update during the update, but this is the best and easiest option.

On the next screen, choose to continue without the network.

In case if you are using a proxy, you may enter them here and choose done.

If you don’t have a proxy that’s fine. You can leave it blank.

Configure the Ubuntu Archive mirror.

You can configure the Ubuntu mirror of your choice. I am just leaving the default and choosing done.

6. Storage selection.

In the storage selection, I am choosing the option Use an entire disk. If I want to, I could use the tab button on the keyboard and select the custom storage layout.

You will get a summary of your storage here. If you needed you can go back and modify. Else, you may proceed with the Done.

You will be prompted with a warning that says your storage will be formatted. Are you ok to continue? Choose continue here.

7. Ubuntu server profile setup.

You can set up your user account here along with the server profile.

  • Enter your name.
  • Provide a name for your Server.
  • Specify the username of your choice.
  • And the password, and confirm password.

This account is needed in order for you to connect to the machine again vis SSH.

8. Ubuntu server ssh configuration.

You will be asked whether you want to install OpenSSH server or not. In most scenarios, you would remote into the server using an SSH protocol; hence it is recommended to leave the ssh setting enabled.

Choose Install Openssh server and click on Done.

If you don’t require ssh access, you may unselect the option and choose done.

The installation will begin, and after sometime you will get an option that says the installation is now complete and the server is rebooting.

During the reboot, you will be asked to Remove the installation medium and then press ENTER, which is already done automatically, so you may hit Enter to proceed.

After the VM is rebooted, you will get a login screen to your virtual machine, enter the username that you set up during the installation, and the password. And you should be able to log in to the server just fine.

9. Connect the network back.

You now can connect back to the network back by right-clicking on the virtual adapter and clicking on Connect network adapter.

After you are connected to the network, you will get an IP address from your local area network, if you have chosen the bridged network, or NAtted IP if you have chosen the NAT network.

You can ping the virtual machine from your host and other devices on your local area network for Bridged network.

You can also SSH into the Ubuntu server just fine as well.

10. Virtual box guest addition installation on Ubuntu server 20.04.

Let’s go ahead and install the Virtual box guest addition on your machine.

On the Ubuntu Server terminal,  enter the below commands to install the VirtualBox guest additions.

sudo apt-get update
sudo apt-get install virtualbox-guest-dkms -y

After a few seconds, the VirtualBox additions packages and all your dependencies will be installed on the ubuntu server 20.04 and you should be ready to start using the Ubuntu server.

Ubuntu server is a server operating system. And it is not that difficult to understand the difference between the desktop and server. Both are Linux-based operating systems. The main difference is that the desktop version contains a desktop environment whereas the server version contains only the command line interface.

The hardware requirements are significantly less for the ubuntu server. As the name suggests it is mainly used as a server for hosting various services. Linux can be completely used using the command line and so ubuntu server.

If you planning to install any operating system on a machine it is a best practice to try it first in a virtual environment. In this tutorial, we will try it on Virtual Box and use the server using SSH. Virtual Box is a software application that allows you to run multiple guest operating systems on your host operating system. Assuming that your computer supports virtualization let’s begin with the tutorial.

Installing Virtual Box

For Windows users, the installation is quite easy. Just visit the downloads page here and download the executable setup file for Windows Hosts. Simply run the installer to install the virtual box.

For Linux, launch the terminal and run the below commands with respect to your distribution –

For Debian (Ubuntu, Kali Linux, etc) –

❯ sudo apt-get install virtualbox

On Ubuntu, you can also install Virtual Box from the software centre.

For Arch users –

❯ sudo pacman -S virtualbox virtualbox-guest-iso

❯ sudo gpasswd -a $USER vboxusers

❯ sudo modprobe vboxdrv

You can refer to the official website for other distributions as well.

To launch the application either search it in the applications or hit the following command in a terminal –

Downloading Ubuntu Server

Download Ubuntu Server

Download the Ubuntu Server image

Visit the official download page here to get the latest image. I am using the latest image i.e. 22.04 at this time of the article. If you are interested in any specific or old image then you should visit the releases page which contains all the releases (old & new).

Initializing Virtual Box For the Server

Now, let us launch the virtual box and create an environment for our server.

Step 1)

Virtual Box Linux

Create new machine

Click on the New icon to the right to add a new virtual machine.

Step 2)

Virtual Box Ubuntu Server

Name and Operating System

In the next section, give your machine a name for example Ubuntu Server. Keep the machine folder location to default only. Select the type of machine as Linux and the version as Ubuntu (64-bit). Click on next.

Step 3)

Ram For Ubuntu Server

Ram For Machine

Giving RAM for your machine. Please note that this RAM will be used from your host operating system. Although, ubuntu server requires very less memory. I am giving it 1 GB RAM. If you are planning to run tasks that require more memory you can choose accordingly.

Step 4)

Create Virtual Hard disk Virtualbox

Create a Virtual Hard disk

We will create a virtual hard disk for our operating system. Click create.

Step 5)

Virtual Hardisk Filetype

Virtual Hardisk Filetype

Leave the type of virtual hard disk the default for now. Click next.

Step 6)

Storage Type Virtual Box

Storage Type Virtual Box

Choose this carefully. A dynamically allocated storage will grow as the data flows in. And fixed size is a storage which is fixed and cannot be changed. A dynamically allocated storage is much slower than fixed. Fixed-size type will be a good choice for a smoother way to operate.

Step 7)

Hard Disk Size Ubuntu Server

Hard Disk Size

This OS requires very less space. For now, I am giving it 10 GB. 5 GB will also do. Simply click on create. You have successfully created a virtual environment for our server.

Step 8)

Virtual Machine Settings

Virtual Machine Settings

With your virtual machine selected on the left, go to the settings from the top.

Step 9)

Insert Iso File Virtual Box

Insert Iso File

In the settings, go to Storage and select the empty disk. Then on the right click on the CD-like icon and choose the disk file you downloaded. After selecting click on Ok to close the settings. This will insert the OS file into the machine.

Ubuntu Server Installation

It’s time to start our ubuntu server and do the initial setup.

Step 1)

Start Ubuntu Server Virtual Box

Start Ubuntu Server

It will boot with the disk file you inserted.

Step 2)

Ubuntu Server Setup Language

Setup Language

Select your preferred language and hit Enter.

Step 3)

Ubuntu Server Setup Keyboard Layout

Choose Keyboard Layout

Choose the keyboard layout you use. Use the arrow keys and enter key to move around and choose. You can identify keyboard if you are unsure. After choosing the right layout come to done and hit enter.

Step 4)

Ubuntu Server Standard Installation

Standard Installation

I am going with the standard installation as I need all normal packages. If you want a minimal installation move around with arrow keys and press Space to select the type of installation. Click done.

Step 5)

Setup Network Ubuntu Server

Setup Network

For now, I am leaving the network settings to default. I am going to configure it in the virtual machine settings later.

Step 6)

Give a proxy if you have any. Or just go next.

Step 7)

It is recommended to keep the default mirror for downloading and updating packages. You can give any of your choices. I am going with the default. It can also be changed after the installation.

Step 8)

Guided Installation Ubuntu Server

Guided Installation

This is how you want to install it on the virtual hard disk. As we have created a hard disk (10 GB) go with the entire disk. You can set up LVM if you want. Custom Storage Layout is for installing it on a specific partition.

Step 9)

Summary Of Installation Ubuntu Server

Summary Of Installation

It will now show you how the hard disk will be partitioned and formatted. Just click Done.

It will warn you as the entire virtual disk gets formatted and tuned. Simply select Continue.

Step 10)

Profile Setup Ubuntu Server

Profile Setup

Type your name, hostname and username and give your server a password. And click done.

Step 11)

Install Openssh Ubuntu Server

Install OpenSSH

Make sure to tick the Install OpenSSH Server using your Space key.

Step 12)

Additional Packages Ubuntu Server

Additional Packages

Select the packages you need now to save time after installation.

Step 13)

Installation Finished Ubuntu Server

Installation Finished

Congratulations, you have successfully installed the ubuntu server. Reboot the server.

Step 14)

Ubuntu Server Login

Server Login

You will get the above-like screen. Type your username and password you created during the profile setup. After logging in, run the following command to shut down your server because we have to tweak some virtual machine settings.

Setting Up SSH

Secure Shell or Secure Socket Shell is a command line application that lets you securely connect with different computers even in an unsecured network. We will use ssh to connect to our server making it easy to access the server using the host OS terminal.

Installation

We will need an ssh client on the host computer. We have already installed the ssh server on the ubuntu server.

For Windows 10 and above –

Launch Powershell as administrator and run the below command –

❯ Add-WindowsCapability -Online -Name OpenSSH.Client*

Installation for Linux distributions –

For Debian users (ubuntu, kali, etc) –

❯ sudo apt install openssh-client

For Arch (Arch Linux/Manjaro) –

For OpenSUSE

❯ sudo zypper install openssh

For Fedora

❯ sudo dnf install -y openssh-clients

Verify Installation

Launch cmd or terminal and execute the following command to verify –

Install Ssh On Linux

SSH

Now, head to the settings of your virtual machine.

Bridged Connection Virtual Box

Bridged Connection

Head to the Network section and change the adapter type to bridged. Refer to the above image. This will create a bridge between your host computer’s network and your virtual server.

Start your server again, log yourself in and run the below command –

Ip Ubuntu Server

IP Address

Note down the IP address. We will use this IP to connect to our server using ssh.

Launch a terminal or cmd in your host operating system. The syntax to connect to a computer is –

❯ ssh [username]@[ip address]

Therefore in my case, it will be –

❯ ssh linuxforddevices@192.168.0.103

Replace username and IP with your own.

Use Ssh To Connect To Linux

connection successful

Type your password when prompted. Now you are inside your server. For starters, run the following apt update command to update the server –

❯ sudo apt update && sudo apt upgrade

Summary

I use this method as an alternative to WSL, to run Linux on Windows as WSL has some limitations. Now you have a working ubuntu server which can be easily used using ssh. Try some features of the server then later you can install it on an actual machine.

Further Reading

  • Dual boot Windows and Ubuntu in separate hard drives
  • Network Configuration Guide for Ubuntu
  • How to install and use AnyDesk on Ubuntu 22.04LTS?

Like this post? Please share to your friends:
  • Ubuntu server ввод в домен windows
  • Ubuntu server ввести в домен windows
  • Ubuntu samba windows не может получить доступ
  • Ubuntu samba connect to windows share
  • Twin usb joystick драйвер windows 10