АКТУАЛЬНО:

Разворачиваем свой VPS-сервер за 5 минут – пошаговый мануал по установке VestaCP

Практически всю последнюю неделю я был занят настройкой и тестированием VPS, а поэтому долго не выходил на связь и не создавал новые посты. Сегодня я наконец-то хочу поделиться небольшим руководством, как быстро и качественно развернуть свой VPS-сервер с перспективой разместить на нем несколько сайтов, а может и целый мини-хостинг ;) Так, что поехали.

Что такое VPS?

Немного теории:

VPS (сокращено от Virtual Private Server. Также VDS – Virtual Dedicated Server) – это полноценный отдельный виртуальный сервер с выделенным IP (IPv4, IPv6), операционной системой, модулями и программным обеспечением. Работает на виртуальной машине, которая запущена на реальном физическом носителе (hardware). Важно отметить, что на этом железе может быть установлено множество других виртуальных машин, но каждая из них получает конкретно определенную долю ресурсов. На VPS отсутствуют какие-либо ограничения в использовании или администрировании сервера. Есть возможность полностью настроить сервер под себя, установить дополнительные модули, ПО и т.д.

А теперь, что такое VPS простыми словами

На обычных shared-хостингах на одном IP,  как правило, располагаются десятки разных сайтов, никак не связанных между собой. Иногда это могут быть сайты не очень хорошего качества и абсолютно противоположной вашему сайту тематики. И вы не сможете на это как-то повлиять. В то время, как на VPS – у вас собственный IP и вы сами решаете какие сайты будете создавать и размещать на нем. Все решения принимаете вы и только вы  – у вас “права Бога” и Администратора сервера. Можете создать один сайт, а можете создать неограниченное количество. Делаете что хотите. Но и отвечать за свои действия будете тоже только вы. В случае какой-то ошибки никто вам тут не поможет и если плохо разбираетесь – можно запросто угробить все сайты одним махом. На обычном хостинге – такого нет. Заботливые админы все делают за вас, создают бекапы. Но не вы хозяйничаете в “своем доме”, а админ. Фактически посторонний человек, действия которого и уровень знаний которого вы не сможете оценить. Вы с этим человеком не знакомы, но должны доверять ему, т.к. именно от него будет зависеть вся стабильность сервера и вашего сайта вместе с ним. И тут важно задуматься. Все зависит от вас и от уровня важности ваших проектов, ваших навыков. Меня лично это не всегда устраивает и у меня есть свои конкретные проекты, цели, поэтому я полез разбираться с VPS, чтобы ни от кого не зависеть в будущем. Но и тут масса плюсов и минусов. Главный недостаток – VPS не панацея, а постоянная трата времени и ресурсов, а также нервов. VPS – это администрирование сервера 24/7, профессиональный аудит и мониторинг. Если вы к этому не привыкли, не готовы, не умеете – тогда ищите качественный хостинг и не морочьте себе голову.  Только поймите, что на shared-хостинге все “соседские” сайты “жрут” ресурсы друг-друга, создавая дополнительную нагрузку на сервер. Если сервер слабенький и у кого-то из “соседей” будет резкий скачек трафика (например, email или facebook рассылка), или кого-то задидосят (DDos-атака) –  ляжет весь сервер и ваш сайт вместе с ним. В лучшем случае, будете получать ошибки 500 время от времени. В электрике существует удачный термин для этого явления – “перекос фаз”, когда у одного соседа более высокое напряжение, чем у других. Чтобы от этого всего избавиться, единственный выход – VPS.

Регистрация на VPS-хостинге: выбор конфигурации сервера

Для своих задач я выбрал недорогой VPS-сервер с минимальными характеристиками:

  • Тип виртуализации – OpenStack KVM // существуют два типа – софтовая OpenVZ и физическая KVM. Физическая лучше.
  • Количество ядер: одноядерный процессор (CPU) // чем больше ядер, тем лучше.
  • Тактовая частота: CPU 2 GHz //
  • Оперативная память: 2 GB ОЗУ // чем больше, тем лучше. Но минимально будет хватать даже 1 Гб оперативки.
  • Место на диске: 20 GB SSD // SSD – это тип носителя. SSD намного лучше и быстрее чем HDD. Минимально можно брать и 10-15 Гб.
  • Траффик: неограниченный траффик // это большой плюс. Так как, не у всех эта опция доступна.
  • Страна размещения // рекомендуется размещать в непосредственной близости со странами посетителей.

Есть один неплохой онлайн-сервис, который сканирует и ищет VPS под заданную конфигурацию и бюджет: https://poiskvps.ru/

Выбор ОС

В качестве операционной системы я себе установил Ubuntu 18.04 LTS – это самая стабильная на данный момент и оптимальная версия Linux для новичков (не только на мой взгляд) с поддержкой PHP 7.2, которая увеличит производительность сайта в 2 раза. До этого я уже успел опробовать Debian 8, но на нем по умолчанию установилась старая версия PHP 5.6.30, в итоге мне не совсем понравился данный дистрибутив, хотя говорят, что Debian использует меньше ресурсов, чем Ubuntu. Но Ubuntu все-таки более продвинутая ОС, тем более основана на том же движке Debian, поэтому я выбрал ее.

Вы также можете попробовать и другие ОС, например: Fedora, CentOS, RedHat, FreeBSD, Windows Server.

Как устанавливать Linux я в этой статье отдельно рассказывать не буду, тем более в 90% случаях при заказе VPS у вас будет возможность установить любой дистрибутив Linux полностью автоматически.

Вернемся к теме.

Установка SSH-клиента, настройка и подключение к VPS

После того как Ubuntu проинсталлировалась на вашем сервере, нам нужно подключиться к нему через командую строку (терминал Linux) с помощью SSH-клиента – PuTTY или Bitvise. Они оба бесплатные и стабильные. PUTTY – более примитивен, подойдет классическим программистам, а у Bitvise просто суперская оболочка, поэтому рекомендую новичкам. Кроме этого есть еще форк PUTTY – KITTY с расширенными функциями. Так что скачиваем SSH-клиент на выбор, устанавливаем и вводим свои данные для подключения. Обычно, все данные вы получите от хостера сразу после установки дистрибутива Linux.

В моем случае, это:

  • IP-адрес сервера
  • Порт сервера (обычно 22)
  • Имя сервера (hostname)
  • Имя админа
  • Пароль админа

Эти данные вбиваем в SSH-клиент, как показано ниже на скриншоте, и подключаемся:

** Если будут какие-то проблемы с подключением: отключите ваш брандмауэр Windows, файрволл и антивирус. Также можно попробовать подключиться через другого интернет-провайдера, например через мобильный интернет с помощью Android-устройства.

Знакомство с терминалом Linux

При первом подключении к серверу сперва появиться диалоговое окно с предупреждением о подключении к неизвестному серверу – нажимаете ДА, добавить данный хост в список подтвержденных. После этого появиться долгожданная командная строка (терминал) с требованием ввести имя и пароль. Вводим вручную и жмем Enter. Если все ОК – стартовое приветствие UBUNTU.

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

Вбиваем команду:

apt update

Linux скачает все пакеты.

Далее нужно их установить:

apt dist-upgrade

Можно также просто обьеденить эти две команды в одну и вбить:

apt update && apt dist-upgrate

Начнется установка. Когда установка закончится нужно перезагрузить ОС, вбиваем команду:

reboot

Произойдет дисконнект. Закройте консоль и через 1-2 минуты повторно подключитесь к VPS через SSH.

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

0 packages can be updated.
0 updates are security updates.

Примечание: все приведенные мною команды Linux будут работать, если вы залогинитесь в консоль как root. Если вы не root по умолчанию (такое бывает на бесплатных VPS), тогда добавляем к каждой команде sudo. Например, вместо apt update набираем sudo apt update и так далее. В дальнейшем, после установки контроль-панели Vesta и настройки сервера – вы автоматически получете еще одну учетную запись админа (admin). Работайте по SSH только в нем. Учетную запись root’a используйте только в редких случаях – так сможете избежать банальных, роковых ошибок, поломок и других действий.

Подготовка к установке Vesta CP

Далее можем устанавливать контроль-панель Vesta CP – это бесплатная админ-панель вашего сервера, аналог cPanel и ISPmanager. Очень удобная и шустрая. Фактически, в дальнейшем через нее будет построен весь процесс Администрирования вашего VPS-сервера. При желании, с помощью этой умницы опытный веб-мастер может построить целый бизнес по предоставлении услуг хостинга.

Официальный русскоязычный форум Vesta: https://forum.vestacp.com/

1. Итак, набиваем в терминале команду для скачивания Vesta CP:

curl -http://vestacp.com/pub/vst-install.sh

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

2. Далее вбиваем уже заранее подготовленную команду установки с заданной конфигурацией панели Vesta. Я ее немного адаптировал под себя. Старенький Apache мне не нужен, вместо него буду использовать быстрый и популярный Nginx + PHP-FPM (обработчик скриптов), а дальше все, впринципе, стандартно. Для наглядности перечислю и дам описание того, что я рекомендую включить в пакет:

  • nginx – фронтенд веб-сервер;
  • php-fpm – бекенд веб-сервер, обработчик скриптов;
  • named – DNS-сервер BIND9;
  • mysql – база данных;
  • vsftpd – модуль поддержки FTP;
  • exim + dovecot – отправка/прием писем по протоколам IMAP, POP, SMTP (можно использовать в связке);
  • spamassasin + clamav – проверка спама на почте;
  • iptables + fail2ban – файерволы;

Конечная команда выглядит так:

bash vst-install.sh --nginx yes --phpfpm yes --apache no --vsftpd yes --proftpd no --exim yes --dovecot yes --spamassassin yes --clamav yes --named yes --iptables yes --fail2ban yes --mysql yes --postgresql no --remi no --quota no --email вашмайл@gmail.com --password вашпароль

* Команду запускаем из-под root’a.
** Перед запуском команды внимательно проверяем правильно ли заданы email и пароль.

Примечание: Эту конфигурацию вы можете сами подкоректировать для своих целей. Также вы можете в дальнейшем отключить или вообще удалить некоторые службы, которые были включены в пакет. Если у вас стоит задача просто оперативно перенести сайты с хостинга, работающего на Apache, на свой VPS, и вы еще учитесь – лучше с nginx не эксперементировать (оставьте на потом) и установите вместо него старый, но проверенный Apache, или добавьте их оба в пакет. Нужно понимать, что файл .htaccess в Nginx недействителен. Все директивы, редиректы потом придется переносить вручную в файл конфигурации nginx.conf, а это совсем другой синтаксис.

P.S. На всякий пожарный предоставлю команду конфигурации VestaCP, по умолчанию, на базе Nginx + Apache:

bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi no --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota no --exim yes --dovecot yes --spamassassin yes --clamav no --softaculous no --mysql yes --postgresql no --email youremail --password yourpassword

В этой конфигурации “дед” Apache (backend-сервер) будет поддерживаться “молодым и перспективным” Nginx (frontend-сервер). Неплохой “переходной” вариант. Есть время новичку “пристреляться”, разобраться с Nginx, не отказываясь при этом от старого доброго Apache. А потом в будущем уже можно полностью перейти на Nginx+PHP.

P.P.S. Также вы можете САМОСТОЯТЕЛЬНО сгенерировать конфигурацию своего веб-сервера здесь -> http://vestacp.com/install/:

Инсталяция пакета VESTA CP на сервер

Ну что, теперь самое интересное. После выполнения команды, Vesta попросит подтвердить операцию. Внимательно еще раз ознакомьтесь со списком install-пакета и введите Y.

Далее нужно будет указать хост (hostname) – просто жмем Enter (Vesta сама возьмет хост по умолчанию). Если сайт планируется на VPS только один (например, один большой трафиковый веб-сайт) – введите основной домен.

В итоге, на выходе я получил сервер с конфигурацией: NGINX + PHP-FPM со всеми стандартными модулями и компонентами. На многих форумах пишут, что это самая выгодная конфигурация, которая существенно улучшает производительность сервера и быстродействие сайтов. Я ее уже успел немного ощутить на разных хостингах, но “прощупать” смогу только сейчас, на собственном VPS. Так что вперед!

Итак, после запуска команды появится текстовая картинка, оформлена в ASCII-коде – жмем ОК и запустится инсталяция пакетов на ваш сервер. Процесс может занять от 5 до 15 минут. Тут важно проследить за инсталяцией пакетов, чтобы не возникало никаких ошибок (а они у меня появлялись, и я не успел их задокументировать) или проблем с интернет-подключением (из-за слабого wi-fi некоторые пакеты у меня не установились). Все должно установиться корректно, иначе потом правок не избежать.

Вконце VESTA поздравит с успешной установкой и предоставит данные для доступа к заветной админ-панели:

  • URL-адрес админ-панели (на порту 8083)
  • Имя администратора
  • Пароль администратора

Некоторые веб-разработчики рекомендуют еще доустановить php-модули, якобы нужные для WordPress. Я прислушился к совету и выполнил команду:

apt install php-curl php-gd php-mbstring php-xml php-xmlrpc

После всего этого (и вообще любых установок) желательно перезапустить сервер.

На заметку. Проверить версию прошивки Vesta CP в консоле можно с помощью команды:

v-list-sys-vesta-updates

Рекомендация: Поставьте себе еще в придачу Midnight Commander – замечательнейшая незаменимая вещь сисадмина, старый добрый Norton Сommander, только под Linux. Значительно упростит вашу жизнь, когда придется редактировать системные файлы. Поддерживается управление курсором мыши. Устанавливается одной командой: apt install mc

Первый вход и базовая настройка контроль-панели Vesta

Перейдеи по URL-адресу и залогинимся в панели Веста. Для меня стало сюрпризом то, что данный url-адрес был заблокирован браузером как ненадежный, то есть незащищенный. А все благодаря URL с https-протоколом – в Весте по умолчанию SSL отсутствует.

Но не отчаивайтесь, его можно установить. Итак, заходим в админ-панель:

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

  • Пакеты – Веста содержит разные пакеты (настройки хостинга) для лимитирования параметров сервера. Фактически, с помощью данных пакетов вы сможете развернуть свой мини-хостинг. Можно добавитьнового пользователя и выдать ему определенный пакет с индивидуальными параметрами сервера под его сайт (трафик, php-конфигурация, количество доменов, email и т.д. и т.п.);
  • IP – здесь показаны привязанные к серверу IP-адреса;
  • Графики – графики нагрузки сервера;
  • Статистика – статистика всех операций на сервере за последние месяцы;
  • Логи – действия пользователей в админке;
  • Обновления – обновления ПО и модулей сервера. По умолчанию, включено автообновление;
  • Файрволл – отвечает за безопасность сервера;
  • Apps – автоустановщик скриптов Softaculos;
  • Сервер – доступ к конфигурации и физическим характеристикам сервера, возможность редактировать, перезапускать, останавливать сервер и его компоненты.

Первым делом переходим в меню СЕРВЕР, чтобы просмотреть конфигурацию, все ли там ОК:

У нас все по плану. ВЕСТА установилась с нужной нам конфигурацией Nginx + PHP-FPM, как и планировалось.

Далее перейдем в настройки своей учетной записи (admin) и при желании выставим язык интерфейса, на котором будет отображаться Vesta-панель, а также другие настройки, например доступ по SSH – поставим bash:

Следующим пулом действий будет:

  1. создать нового пользователя (отдельно от админа)
  2. добавить новый домен (сайт) в систему
  3. настроить домен и подключить SSL-сертификат (бесплатныЙ Lets Encrypt)
  4. создать MYSQL базу данных
  5. установить WordPress через FTP или скопировать в домашнюю директорию уже готовый сайт
  6. настроить конфигурационный файл сервера Nginx, использовав готовые шаблоны

Для добавления нового юзера находим на основном дашбоарде, возле admin, кнопку + (“Добавить нового пользователя”) и кликаем по ней :

Задаем ему настройки на свое усмотрение:

  • Имя профиля
  • Пароль (есть возможность сгенерировать сразу в Весте)
  • Электронная почта
  • Пакет (по-умолчанию стоит default, но можно выбрать и другие – gainsboro, palegreen, slategrey. Подробнее о них читайте в оф. документации Весты)
  • Язык (в списке доступны практически все европейские страны)
  • Имя
  • Фамилия

Таким образом мы отделили “свежеиспеченную” VESTA CP от пользователя и всего связанного с ним (включая сайты, настройки, операции и т.д.). Это очень важно. Если пойдет что-то не по плану (что обычно бывает при редактировании файлов конфигурации Nginx или PHP) – мы всегда сможем удалить учетную запись и начать все сначала, сохраняя при этом саму панель в целостности и сохранности. Раньше я этого не осознавал и создавал все домены в учетной записи по умолчанию admin – потом пришлось сносить вместе с сайтами и саму Весту.

Новый пользователь готов. Залогиньтесь под ним и перейдите в раздел WEB и нажмите плюсик для добавления нового домена на сервер (фактически, создание нового сайта):

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

Указываем домен, выбираем из списка IP-адрес нашего сервера. Галочки DNS Support и Mail Support оставляем, но их можно исключить, если не планируете пользоваться встроенными серверами DNS и MAIL. Далее нажмите по ссылке “Дополнительные опции” и появится возможность указать алиасы (зеркала) сайта, расположение и установить бесплатный Lets Encrypt SSL-сертификат для домена:

Алиасы и директорию оставляем по умолчанию, а SSL включаем и ждем 5-10 минут. За это время Веста сгенерирует ключи SSL.

Примечание: Пользователи Vesta CP неоднократно замечали глюк с выдачей SSL-сертификата. Я его словил тоже. Поэтому, если SSL не сгенерировался, перейдите в редактирование домена еще раз и повторно включите Lets Encrypt, затем сохранитесь. Если и это не помогло, перезагрузите VPS-сервер и повторите действие.

Скролим вниз. Статистику Webalizer или Awstats не включаем (дополнительная нагрузка на сервер), добавляем FTP-аккаунт (можно добавить несколько и назначить отдельный путь к директории) и нажимаем кнопку “Добавить”:

Хочу отметить, что перед тем, как производить данные манипуляции, ваш домен должен быть предварительно направлен на IP-адрес вашего VPS-сервера (иначе домен открываться не будет, а ключи SSL не сгенерируются). Делается это у регистратора вашего домена – нужно перейти в редактирование DNS-зон и изменить A-запись.

Тем временем перейдем в меню БД и создадим новую базу данных:

Осталось перевести на HTTPS саму Весту.

Залогиниться под админом, перейти в раздел WEB. Открыть редактирование технического домена (hostname самого VPS-сервера по умолчанию), и также как для простого домена, сгенерировать для него SSL-сертификат.

Когда SSL-будет выдан, перейти в раздел СЕРВЕР и в настройках сервера включить там опцию – “Использовать Lets Encrypt основного домена”. И выбрать домен из списка. Все. Это значит, что теперь админка будет использовать сертификат домена (на котором она и стоит по умолчанию. не путайте с другими доменами).

Сохраняемся. Перезапускаем Vesta panel и теперь уже не должно быть никаких предупреждений о не защищенном соединении.

Настройка Nginx под WordPress

Когда ваш домен и админ-панель получили SSL, база данных для сайта создана, а WordPress установлен (залит) в нужную директорию – необходимо произвести обязательную настройку веб-сервера Nginx, что включает в себя все нужные редиректы с http на https-протокол, активация http/2 соединения и многое другое. Если до этого у вас стоял сервер Apache с файлом конфигурации .htaccess, то сайт на WordPress на сервере Nginx работать не будет (страницы будут отдавать 404). Я долго мучался с этой проблемой, пытался что-то прописывать вручную, искал файл конфигурации Nginx. Но на самом деле проблема решается одним кликом – с помощью  готовых шаблонов в Весте!

Вам нужно всего лишь залогиниться под админом, перейти в раздел USERS и нажать на кнопку “Залогиниться под пользователем”. Дальше перейдите в раздел WEB и откройте настройкт (редактирование) интересующего вас домена. Там найдете 2 новых опции (недоступных простому пользователю) – шаблон веб-сервера Nginx и шаблон бекенд-сервера PHP-FPM:

Для корректной работы WordPress, рекомендуется выбирать шаблоны WordPess 2 и Socket соответственно. Но разработчики Весты не включили в шаблон WordPress 2 поддержку http/2, а поэтому мне пришлось самому создать себе новый шаблон (на базе WordPress 2) и залить его (состоит из 2-х файлов) в папку /usr/local/vesta/data/templates/web/nginx/php-fpm. После этого опять перейти в редактирование и уже выбрать свой шаблон из выпадающего списка (в моем случае, wordpress 3). Затем перезапустить VPS-сервер. Вы можете воспользоваться моими шаблонами, скачать тут.

Сервер фактически готов к работе. Остается произвести еще парочку других интересных настроек (например, установка и включение memcached). Ну, а об этом читайте в следующих статьях.

Так что пробуйте, дерзайте!

Оценка:
( 1 оценка, среднее 5 из 5 )
Подписка на KRASHENININ.TECH

Получайте регулярные обновления на почту!


Виталий Крашенинин/ автор статьи
Основатель блога, публицист, IT-специалист. Предоставляю услуги по администрированию, техническому обслуживанию, поисковой оптимизации и продвижению веб-сайтов.
Не забудьте поделиться материалом в соцсетях:
KRASHENININ.TECH - блог о веб-технологиях, и не только
Подписаться
Уведомление о
guest
0 Комментарий
Встроенные отзывы
Просмотреть все комментарии
0
Есть мысли? Прокомментируй!x
()
x
Читайте ранее:
Сергей Ковалев – Базовое продвижение сайтов (SEO)

Купил сегодня книжку Сергея Ковалева - "Базовое продвижение сайтов" и захотел поделиться с вами, ребята. Когда-то я хотел написать подобную...

Закрыть