Настройка vps сервера ubuntu

Обновлено: 04.07.2024

Мы продолжаем цикл статей о настройке VDS с операционной системой Ubuntu 14.04.
Первая часть нашего цикла, напомним, описывает подготовку к работе с сервером: установку необходимого ПО для подключения по SSH, установление удаленного SSH-соединения с VDS, создание RSA-ключей на локальном компьютере (сегодня мы как раз расскажем о том, как скопировать созданные ключи на Ваш сервер).
Эта статья будет посвящена основным действиям, которые потребуется произвести на сервере сразу после установки операционной системы для обеспечения безопасности сервера и последующей комфортной настройки.

$
user - Ваше имя пользователя;
после @ - имя хоста (сервера);
после двоеточия - текущий адрес (например,

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

После обновления дистрибутива рекомендуем Вам установить нужный часовой пояс (например, Europe/Moscow) и настроить автоматическую синхронизацию времени на сервере (NTP). Для этого введите следующие команды:

ОБРАТИТЕ ВНИМАНИЕ! Если Вы решили установить панель управления сервером, пропустите указанные ниже действия, чтобы избежать конфликта при установке панели. Установку панели управления сервером рекомендуется выполнять на “чистую” ненастроенную операционную систему.

В связи с особенностями устройства операционной системы Linux, работа от суперпользователя root не рекомендуется, так как при ошибке в команде могут произойти необратимые повреждения файлов и системы. Поэтому мы настоятельно рекомендуем Вам создать дополнительного пользователя-администратора VDS, например, admin (Вы можете указать любое другое имя пользователя, в командах ниже мы будем использовать admin для примера).
Для этого необходимо выполнить следующее:

1) Создать новую группу:

2) Добавить пользователя, предоставив ему возможность выполнять действия от root:

3) Установить пользователю пароль:

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

в Linux и MacOS: выполните в терминале команду, указав вместо admin имя созданного пользователя, а вместо server-host - IP-адрес Вашего сервера.

В Windows: соединитесь с сервером, используя PuTTY, и при запросе логина в консоли login as - укажите имя созданного пользователя.

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

Если имя пользователя сменится на root, значит, созданный пользователь работает корректно, можно продолжать настройку. Если нет, необходимо изучить причину возникновения ошибки.
Чтобы закрыть сеанс работы от root, введите команду exit. Имя пользователя сменится на текущего пользователя.

Далее отключаем дистанционный доступ для суперпользователя в файле /etc/ssh/sshd_config, открыв файл командой:

В файле необходимо найти строку PermitRootLogin и заменить ее текущее значение на: PermitRootLogin no

Перезапускаем службу SSH:

Копирование RSA-ключей на сервер

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

Копирование ключей из операционных систем Linux и MacOS

указав вместо admin Ваше имя пользователя, а вместо server-host - IP-адрес Вашего сервера.

Готово. В результате содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл

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

Копирование ключей из операционной системы Windows

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

Откройте созданный файл с помощью текстового редактора:

Вставьте в него скопированный ранее текст public key из окна PuTTYgen и сохраните файл.

Теперь нам потребуется утилита pageant, которую можно скачать с сайта PuTTY.
Запустите pageant - его иконка появится в трее. Щелкните по ней правой кнопкой мыши и выберите Add Key. В открывшемся окне укажите путь к приватному ключу mykey.ppk, сохраненному ранее, и нажмите Open. (Если при создании ключа Вы указывали кодовую фразу, pageant запросит ее на данном этапе.)

Готово. Для проверки работы авторизации по ключу снова запустите утилиту PuTTY и подключитесь по SSH к Вашему серверу. Если все настроено корректно, Вы увидите подобный вывод в окне консоли:

Защита сервера от атак

Для защиты VDS или VPS сервера от атак, нацеленных на получение доступа к серверу методом перебора пароля, рекомендуем Вам установить приложение fail2ban.

Для установки fail2ban выполните следующую команду:

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

Просмотреть настройки Вы можете в файле /etc/fail2ban/jail.conf. Если Вы решите вносить какие-либо изменения, необходимо создать дублирующий файл с настройками - jail.local. Сделать это можно следующей командой:

Внести изменения можно через текстовый редактор:

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

Однако перебор паролей - только один из вариантов возможных атак на Ваш сервер. Для фильтрации запросов и защиты сервера рекомендуем Вам использовать firewall. Наиболее часто используемым в Ubuntu является UFW.
Установить его можно при помощи следующей команды:

Для дальнейшей работы по SSH перед включением файрвола необходимо разрешить доступ по SSH:

После этого Вы можете включить его:

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

Подробное рассмотрение настройки UFW может стать темой для отдельной статьи, поэтому здесь мы остановимся на нескольких базовых моментах.

Запрет входящих соединений выполняется командой:

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

Включить логи (журналирование) можно следующей командой:

Проверить статус сетевой защиты:

Отображение более подробной информации о статусе:

Открыть порт (например, 22):

Удалить существующее правило (на примере правила выше):

Открыть определенный порт для определенного IP:

Сбросить все установленные правила:

Открыть доступ для определенного IP:

Коротко дополнительная информация о UFW представлена в соответствующем разделе справки Ubuntu; также рекомендуем Вам обратиться к мануалу приложения для более подробного изучения команд и алгоритмов. Для этого выполните команду:

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

  • wget и curl - позволяют скачивать файлы из командной строки, выполнять запросы и посылать информацию;
  • git - система управления версиями. Часть бесплатного программного обеспечения доступна через него;
  • mc - псевдографический файловый менеджер с широким функционалом (например, FTP-клиентом);
  • unzip и unrar - распаковка архивов.

Установить любое из приложений можно следующим образом:

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

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

  • скопировать RSA-ключи на сервер и начать безопасно авторизовываться на сервере по ключу;
  • обновить дистрибутив и произвести настройки времени на сервере;
  • создать пользователя-администратора, от чьего имени будет производиться работа на VDS;
  • обезопасить сервер от атак, установив fail2ban и файрвол UFW;
  • установить дополнительные приложения для последующей удобной работы с сервером.

Если у Вас возникли какие-либо вопросы, мы будем рады Вам помочь.

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

Школа хостинга Редактор: Дмитрий Сокол 963 20 мин Аудио

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

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

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

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

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

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

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


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

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


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

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


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

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

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

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


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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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


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

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

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

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

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


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

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

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

timedatectl list-timezones | grep K


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

timedatectl set-timezone Europe/Kiev

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


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

Установка Apache 2

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

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

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

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


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

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

Установка PHP

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


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

Установка MySQL

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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. Выполните команду:

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

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

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

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

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

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

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


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

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

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


Выводы

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

Дмитрий Сокол

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







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

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

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

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

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

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

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

  • Облачный хостинг
  • Виртуальный хостинг
  • VPS/VDS
  • Выделенный сервер
  • Размещение сервера
  • CDN

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

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

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

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

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

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

  • Абузоустойчивый хостинг
  • Безлимитный хостинг
  • Безопасный хостинг
  • Черный список
  • Защита от DDOS
  • Конструктор сайтов
  • Партнерские программы
  • Реселлинг хостинга

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

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

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

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

  • Дешёвый хостинг
  • Дешевый VPS-хостинг
  • Цена-Качество
  • Дорогой хостинг
  • Бесплатный хостинг
  • VPS/VDS посуточно

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

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

Данное руководство предназначено для развертывания и настройки VDS сервера на примере Ubuntu 20.04 с установкой веб-сервера nginx, php 7 и сервера базы данных MySQL.

Автор материала

Артем. Веб-разработчик, создатель проекта Лектория, эксперт MODX Revolution, директор веб-студии OpenColour. Youtube-канал OpenModx.

Для чего?

Вы уже получили навыки в создании web приложений и хотите разместить созданный сайт в интернете, но как это сделать? Все просто! Есть хостинг провайдеры, которые, как раз и предоставляют услуги, по размещению сайтов в сети. Заходя на страничку к провайдеру, вы видите, что можно взять в аренду виртуальный хостинг или VDS.

В чем разница? Давайте рассмотрим эти продукты и избавимся от боязни их использовать. Начнем по порядку от общего к частному.

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

  1. размер дискового пространства;
  2. количество месячного трафика;
  3. количество сайтов, которые можно разместить в рамках хостинга как одной услуги;
  4. количество баз данных и количество места под базы данных;
  5. количество почтовых ящиков и FTP-аккаунтов;
  6. ресурсы CPU;
  7. количество оперативной памяти.

Примеры тарифов (хостинг timeweb)

Примеры тарифов (хостинг timeweb)

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

Альтернативой виртуального хостинга является использование VDS\VPS (Virtual Dedicated\Private Server) — это, виртуальный выделенный или приватный сервер, который предоставляется хостинг провайдером в аренду заказчику.Чтобы не вводить в заблуждение, сразу отмечу, что разницы между аббревиатурами VPS и VDS нет никакой. Дело в том, что два этих понятия появились практически одновременно и параллельно развивались.

Что же такое VDS? Говоря простым языком, поставщик услуг на своем оборудовании, с помощью средств виртуализации разворачивает несколько виртуальных (программных) серверов. С точки зрения функциональности такой сервер ничем не отличается от физического, на него также устанавливаются операционная система и программное обеспечение, он также расположен в сети и управляется, как и остальные ПК, средствами удаленного администрирования. При этом данный сервер находится на удаленной площадке провайдера, которая защищена от сбоев и оптимизирована под работу 24/7/365. В свою очередь хостинг провайдер берет на себя все обязательства по обслуживанию и сопровождению оборудования и системы виртуализации. Но соответственно цену на эту услугу несколько выше чем на виртуальный хостинг.

Примеры тарифов VDS

Примеры тарифов VDS

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

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

Исходные данные

Определим, что у нас есть некоторый сайт, работающий на php+MySQL под управлением некой CMS (в нашем случае это будет MODX Revolution, но на процесс настройки VDS это не влияет), а это значит, что помимо развертывания CMS необходимо установить и настроить основные модули php, nginx, mysql. Для этого определим следующую последовательность наших действий:

В руководстве будем пользоваться услугами компании timeweb. Переходим на вкладку VPS / VDS, из предлагаемых тарифов выбираем тот, который нам подходит по характеристикам и нажимаем кнопку заказать. После этого попадаем в окно регистрации и выбора параметров виртуального сервера.

В текстовые поля вводим свою фамилию, имя и отчество, и адрес электронной почты. В выпадающем списке меняем операционную систему на Ubuntu 20.04

Данное руководство описывает полный процесс настройки VPS под ваши сайты, на вашем виртуальном сервере под Linux, используя Apache, PHP 7, MySQL, phpmyadmin, vsftpd как FTP, и другие мелкие утилиты. Все что я нашел в интернете или не полное, или местами не подходило к современным реалиям. Я переносил с обычного виртуального хостинга свой сайт, так как уперся в ограничения большинства хостеров.

Если вы планируете продавать хостинг или устанавливать панель управления (ISP Manager, cPanel, Plesk и т.п.), данный метод настройки не подойдет. Настройки для такого развертывания иные. PHP7 имеет ряд серьезных преимуществ в быстродействии и оптимизации по сравнению с PHP 5. Мои проекты на WordPress, к примеру, заметно быстрее работают. Важно знать: если у вас не сильно известная CMS с последними обновлениями, а какой-то самописный проект, не оптимизированный под PHP7, то возможны нестыковки.

Настраиваем

Итак, у нас есть свежеустановленная на VPS система и доступ по SSH. Логинимся на сервер под рутом.

2. Добавляем нашего созданного пользователя в группу sudo, дабы выполнять команды из-под рута:

Плюс, добавим самого себя в группу администраторов:

3. Выходим из системы (logout) и логинимся под своим новым созданным пользователем на SSH. С этого момента, если нам нужно выполнить команду от имени рута, мы используем операнд sudo перед остальными операндами команды (примеры ниже).

4. Стоит вам только опубликовать ваш сайт-адрес сервера VPS, как всяческие хакинговые боты начнут стучаться к вам на терминальный порт 22. Поэтому, обезопасим терминал VPS, сменив порт с 22 на чтото другое. Как новый порт, вводим любое число от 1 до 65535. Нельзя использовать для этого порты 80, 443, 3306, 22, 21 и 8080. Они заняты под другие сервисы нашего VPS.

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

5. Разлогинтесь из терминала (logout), и подключитесь к серверу заново, используя новый порт.

6. Обновим источники приложений и сами приложения:

Соглашаемся на установку обновлений нажав Y и Enter.

7. Если у вас не самой последней версии система, имеет смысл обновить дистрибутив до последнего подрелиза (необязательный шаг):

Далее, нужно включить Prelink:

9. C системными предустановками пока закончим, ставим апач:

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

10. Далее, MySQL-сервер:

MySQL сервер последних версий корректно настроен для работы в нашем окружении, принимает запросы только от localhost. Поэтому, не лезем в конфиг.

11. Ставим php7. На момент написания статьи, файловые репозитории Ubuntu не содержат PHP7, поэтому нам нужно будет добавить неофициальный репозиторий и из него поставить php7:

По окончанию добавления, спросит у вас окончательного согласия, подтверждаем на Y и Enter. Далее обновим список приложений и установим нужное:

Набор модулей тут мной определен эксперементально. Во всех источниках указаны разные, где-то нет mbstring, но он нужен для phpmyadmin, админки для MySQL. Где-то отсутствует curl и gd, но они нужны для капчи и некоторых плагинов CMS. В любом случае, дополнительные модули можно всегда доставить после.

12. Поднастроим Apache. Перейдем (cd) в каталог с настройками апача:

Отредактируем главный конфигурационный файл:

Уже установленные переменные не трогаем, проматываемся в конец файла. Там добавляем каждую команду с новой строки:

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

13. Поднастроим PHP.

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

Раздвинем ограничения по памяти и загрузке файлов:

14. Установим phpmyadmin. Это графическая панель управления базами данных MySQL. Первый раз когда я его ставил из apt репозитория, он не взлетел. Оказалось, репозитории ubuntu не содержат последней версии phpmyadmin, которая понимает PHP7, так как и самого PHP7 в этих репозиториях тоже нет.

Качаем, на момент написания, последняя версия 4.6.0:

Установим unzip, он понадобится:

Отредактируем конфиг-файл апача, чтобы он знал, гдеи скать наш phpmyadmin:

Все готово, перезапустим апач:

16. Создадим старницу phpinfo для проверки работы сервера:

Вставляем такой код в Nano и сохраняем:

VPS Phpinfo

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

17. Поставим FTP. Используем vsftpd:

После этого, можно логиниться на сервер по FTP, используя логин и пароль от системы. C этим конфигом, у вас будет доступ ко ВСЕЙ операционной системе. Если вам нужно ограничить доступ к папкам, поищите в интернете руководства.

18. Резервное копирование. Альфа и Омега администрирования VPS. Бэкапы надо делать хотя бы раз в неделю. Следующий скрипт создает архив с бэкапом папок /var/www (где обычно лежат сайты), /etc, /var/log и /root. Также бэкапит все базы MySQL. Скрипт следует исполнять от имени рута из папки, в которой будут хранится бэкапы. Также, желательно внести файл скрипта в cron. Собственно, скрипт:

Обратите внимание, верхние несколько строчек скрипта нужно изменить в соответствии с вашей конфигурацией MySQL.

Допустим, у нас в корне будет папка /backup и в ней будет и скрипт, и сами резервные копии. Переходим в корень файловой системы:

И вставляем туда скрипт выше. Сохраняем, назначаем его исполняемым:

Мы запустим процесс бэкапа. Для среднего сайта на средней мощности VPS это занимает 5-10 минут. После окончания процесса, в папке /backup будут несколько архивов с резервными копиями. Как я говорил выше, лучше всего этот скрипт запихнуть в cron. Погуглите, как это сделать.

Полезные утилиты

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

WP-CLI

Это командная утилита для администрирования WordPress из терминальной консоли Linux. Умеет очень много, бэкапить, копировать данные в базе данных, отключать и включать плагины и так далее. Очень полезно, в случаях если у вас конфликт плагинов, или вы где-то накосорезили и админка сайта у вас отвалилась. Подробнее тут.

Multitail

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

Htop

И вызывается (кто бы думал) командой:

Выбор VPS

Если вы ищите подходящий VPS/VDS хостинг, могу порекомендовать HexCore, которым сам и пользуюсь. По условиям все можете посмотреть сами у них на сайте. Меня лично подкупило наличие возможности поставить туда любую свою систему (позволяют загрузить свой .ISO образ); и регулярные полные бэкапы делаются автоматом.

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