Пример настройки VPS/VDS на Ubuntu 18.04

Редактор: Дмитрий Сокол 8756 20 мин Аудио

Начальная настройка системы

На сервере не должно быть установлено каких-либо веб-панелей для его управления. 

Для начала работы подключитесь к серверу по SSH.

1. В терминале введите команду, используя свои данные, где 123.123.123.123 адрес вашего сервера:

ssh root@123.123.123.123

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

2. Получите список обновлений, а после введите команду: 

apt update

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

Есть 6 пакетов, доступных к обновлению

3. Обновите пакеты командой:

apt upgrade

4. Для продолжения обновления введите “Y” и нажмите Enter.

После успешного обновления в терминале не отображаются ошибки, значит, терминал готов к вводу следующих команд.

Установка брандмауэра

Следующий шаг настройки вашего сервера - это установка брандмауэра.

1. Чтобы установить брандмауэр, выполните в терминале команду:

apt install ufw

Если брандмауэр уже установлен в системе, то вы увидите в терминале следующую информацию:

2. После установки проверьте состояние брандмауэра командой:

ufw status verbose

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

Перед активацией брандмауэра необходимо:

  • разрешить все исходящие соединения (чтобы сервер мог получать обновления, а приложения (сайты) имели доступ к другим серверам);
  • запретить все входящие соединения (для повышения безопасности).

Как исключение разрешите входящие соединения для 22 порта ssh или для того порта, который был переназначен для данного вида соединения.

Разрешение всех исходящих соединений:

ufw default allow outgoing

Запрещение всех входящих соединений:

ufw default deny incoming

Разрешение входящего соединений по стандартному порту SSH:

ufw allow ssh

Если стандартный порт SSH был переопределен, то номер порта нужно указать явно:

ufw allow ssh 12345

3. Теперь можно включать брандмауэр. Выполните команду:

ufw enable

В результате появится предупреждение, что выполнение данной команды может нарушить существующие ssh-соединения. Если уверены в правильности настройки, то введите “Y” и нажмите Enter. Если соединение нарушится, то потребуется обратиться в техническую поддержку хостинга за помощью.

Вывод терминала правильной начальной настройки

Чтобы полностью отключить брандмауэр достаточно использовать команду:

ufw disable

Чтобы сбросить все настройки до состояния по умолчанию, используйте команду:

ufw reset

Добавление пользователя

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

adduser

+ имя пользователя латиницей.

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

adduser testsite

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

3. Подтвердите, что информация введена корректно при помощи  Y + Enter.
4. Пользователь добавлен. Для него создается домашний каталог в /home.

Для нашего пользователя создался каталог /home/testsite.

В нем мы будем размещать файлы тестового сайта.

Если нужно предоставить созданному пользователю повышенные права (sudo), то выполните следующую команду:

usermod -aG sudo testsite

Ключ -aG указывает системе добавить пользователя в соответствующую группу.

Настройка часового пояса

1. Проверьте текущие настройки часового пояса командой:

timedatectl

В настройках указана София

2. Измените настройку на ваш город. В нашем случае - это  Киев.

Чтобы узнать правильное название зоны, выполните команду показа списка зон и сделайте фильтр по названию:

timedatectl list-timezones | grep K

3. Установите часовой пояс:

timedatectl set-timezone Europe/Kiev

4. Проверьте изменения:

timedatectl

Настройки изменились на Киев

Далее перейдите к настройке http-сервиса. В нашем примере будет использоваться Apache 2. Также для будущего веб-приложения вам понадобится PHP и MySQL. 

Установка Apache 2

Для установки Apache 2 выполните команду: 

apt install apache2

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

ufw allow http

После завершения процесса установки Ubuntu запустит Apache. Веб-сервер уже должен быть запущен. Это можно проверить командой:

systemctl status apache2

Далее нужно перейти в браузер по адресу вашего сервера. Это может быть:

  • http://IP-адрес вашего сервера;
  • http://доменное имя (если домен направлен на сервер со стороны DNS). 

Тестовая страница выглядит следующим образом:

По умолчанию Apache уже добавлен в автозагрузку при перезагрузке вашего сервера. Вы можете отключить такое поведение следующей командой:

systemctl disable apache2

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

systemctl enable apache2

Установка PHP

PHP устанавливается командой:

apt install php

После успешной установки проверьте версию.

Для проверки установленных модулей РНР выполните команду:

php -m

Установка MySQL

1. Установите пакет командой:

apt install mysql-server

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

mysql_secure_installation

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

2. Установите плагин валидации паролей (Validate Password Plugin), предложенный системой, который позволяет тестировать надежность паролей MySQL. 
3. Далее задайте пароль для пользователя root вашей установки MySQL. Выберите надежный пароль и введите его два раза. 

Если ввести такой же пароль как и root-пароль сервера, то входить в оболочку  MySQL можно будет без ввода пароля. Он будет вводиться автоматически.

Теперь вы можете выбирать Y и нажимать ENTER для всех последующих вопросов. При этом будут удалены некоторые анонимные пользователи и тестовые базы данных, будет отключена возможность удаленного входа для root-пользователей, после чего все внесенные изменения будут применены к вашей установке MySQL.

Пример входа в оболочку, если пароли совпадают:

mysql -uroot

Если не совпадают:

mysql -uroot -p

Далее вам будет предложено ввести пароль.

Чтобы проверить работоспособность MySQL, выполните команду:

systemctl status mysql.service

Если MySQL-сервис находится в неактивном состоянии, то его нужно запустить командой:

systemctl start mysql

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

Войдите в оболочку MySQL:

mysql -uroot

Команда создания базы данных:

CREATE DATABASE test_db;

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

CREATE USER 'test_user'@'localhost' IDENTIFIED BY '4MW2k24TM4f';

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

GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost';

База данных и пользователь создан.

Выйдите из оболочки MySQL:

exit

Теперь можно входить в оболочку под созданным пользователем:

mysql -utest_user -p

Добавление нового виртуального хоста

Далее добавляем виртуальный хост для нашего сайта.

1. Создайте директорию для сайта:

mkdir /home/testsite/www

2. Перейдите в директорию:

cd /etc/apache2/sites-available

3. Создайте конфиг для apache2:

nano testsite.conf

4. Откроется текстовый редактор Nano.

Пример конфига:

<VirtualHost *:80>
  ServerName testsite.localhost
  ServerAdmin info@testsite.localhost
  DocumentRoot /home/testsite/www
   <Directory /home/testsite/www>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
   </Directory>
</VirtualHost>


5. Для сохранения нажмите Ctrl+O.

6. Далее необходимо согласиться и выйти.

После этого включите созданный сайт.

7. Выполните команду:

a2ensite testsite.conf

Сайт будет включен, и система вам подскажет, что нужно перезапустить Apache 2.

8. Перезапустите Apache 2:

systemctl reload apache2

9. Перейдите в каталог с сайтом:

cd /home/testsite/www

10. Создайте индексный файл index.php:

nano index.php

Пример index.php:

<?php
  phpinfo();

Для сохранения нажмите Ctrl+O.

После этого нужно согласиться и выйти.

11. Откройте в браузере ваш созданный сайт.

Если сайт локальный, то в файл /etc/host нужно внести наш домен.

Или же, если сайт размещен на VPS, где 123.123.123.123 - ІР-адрес сервера, а testsite.localhost - имя домена сайта, то прописать следующую строчку:

123.123.123.123 testsite.loclahost

nano /etc/hosts

127.0.0.1  testsite.localhost

Если все выполнено правильно, то в браузере откроется страница с информацией про PHP:

Выводы

В данной статье мы рассмотрели базовые минимальные настройки сервера для запуска веб-приложения.  Для продвинутой настройки нужно обращаться к документации для PHP, MySQL, Apache 2, актуальные версии которых можно найти в сети Интернет.

Дмитрий Сокол
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Добавляя подтверждение "Я не робот" вы так же даете согласие получать сообщения от ru.hostings.info и принимаете его Политику конфиденциальности, позволяя ru.hostings.info хранить и обрабатывать вашу личную информацию, указанную выше, для предоставления вам запрашиваемого контента.

Рейтинги хостинг-провайдеров по задачам сайта
Апреля
Панель управления

От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Вид хостинга

Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

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

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

CMS

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

Тип виртуализации

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера.  С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Прочее

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

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

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

Бесплатный тест

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Региональные
Цена

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

Технологии и ОС

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

ASP.NET - платформа для разработки веб-приложений от Майкрософт.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

Тип диска