Как настроить VPS сервер на Linux Debian для хостинга сайта
Не устраивают возможности виртуального хостинга? Развивающийся веб-проект требует больше ресурсов? Оптимальное решение для молодых, но весьма перспективных сайтов, набирающих популярность в сети – переход с обычного хостинга на VPS.
VPS/VDS (англ. Virtual Private/Dedicated Server) – виртуальный сервер. Как правило, в рамках подобной услуги в распоряжение клиент получает часть аппаратных ресурсов физического сервера (конфигурация и производительность зависит от выбранного тарифа). Это качественный скачок в развитии онлайн ресурса.
VPS/VDS хостинг сочетает гибкую настройку выделенного сервера. Отдельный IP-адрес, порты, возможность самостоятельно выбирать программное обеспечение, средства разработки. Все это предоставляется по доступной цене, немногим большей, чем стоимость виртуального хостинга.
Однако, аренда виртуального сервера – это и самостоятельная настройка, и оптимизация программного обеспечения. Не стоит пугаться, не так страшен черт, как его малюют. В этой статье вы узнаете, как правильно установить нужное ПО и обеспечить стабильную работу веб-сервера. Все настройки приведены для платформы Linux Debian — одной из самых надежных операционных систем, способной обеспечивать высокую производительность при минимальном потреблении ресурсов.
Оптимальная конфигурация VPS сервера для сайта
Основная проблема виртуальных хостингов заключается в том, что на одном физическом сервере может располагаться сразу до 50-100 сайтов. Расчет делается на то, пользователи посещают веб-сайты в разное время, и нагрузка равномерно распределяется на протяжении дня. Теоретический каждый сайт должен успешно справляться с несколькими тысячами пользователей в день, однако, достаточно часто на практике дела обстоят иначе.
Популярные ресурсы занимают оперативную память, а некоторые веб-приложения могут отобрать существенную часть вычислительных ресурсов, в результате существенно увеличивается время загрузки малоактивных проектов. Когда же наступает час-пик, сервер попросту не справляется с резко возросшей нагрузкой и, в лучшем случае, большинство, а в худшем – все сайты и веб-приложения, расположенные на данном сервере, оказываются недоступны.
Аренда виртуального сервера решает данную проблему. Вы получаете часть ресурсов оборудования, на которые не может претендовать никто кроме вас, а значит даже в час пик сайт будет стабильно работать, а во время простоя оперативную память или процессорное время не займет другое приложение. Но какую конфигурацию выбрать?
Небольшой развивающийся проект
Если вы переходите с виртуального хостинга или только запускает проект, к которому выдвигаются высокие требования в плане надежности, достаточно минимальных характеристик:
- 512 Мб оперативной памяти;
- 5 — 10 Гб свободного дискового пространства;
- 1,5 — 2 ГГц вычислительной мощности.
Ресурсов достаточно для эффективной обработки до 10 000 пользователей в сутки. Впрочем, при грамотной оптимизации многим вебмастерам удается добиться результата в 20-25 тысяч посетителей. В дальнейшем с ростом числа пользователей можно перейти на более дорогой тариф, существенно расширив возможности системы.
Активно развивающийся портал, форум, небольшой интернет-магазин
Решение для популярных сайтов, новостных порталов, блогов с количеством посетителей до 20-30 тысяч пользователей в сутки.
Успешный сайт, небольшой игровой сервер (Minecraft, Mu, Lineage и др.)
Оптимальное решение для успешных веб-проектов с количеством посетителей, достигшим 50 тысяч пользователей. Аппаратной части достаточно для обработки мультимедиа контента, создания серверов для онлайн-игр.
Характеристики приведены для дистрибутивов Linux Ubuntu и Debian. Они отличаются стабильной работой, обеспечивают высокую производительность при минимальном потреблении ресурсов.
Подключение к серверу по SSH
Для подключения к VPS-серверу используется протокол SSH. Это защищенный протокол (Secure Shell – защищенная оболочка), предназначенный для удаленного управления операционной системой, программным обеспечением и передачи файлов. SSH использует надежные алгоритмы шифрования данных, обеспечивая безопасное соединения с сервером.
Для работы протокола SSH необходим сервер, устанавливаемый на управляемой машине, и клиент. Управление VPS/VDS сервером осуществляется посредством командной строки.
Существует достаточно много клиентских программ для различных операционных систем. Самые простые, надежные и популярные: Bitvise SSH Client и PuTTY. На примере последней мы и разъясним процесс подключения.
Для начала нужно скачать на свой компьютер клиент (в нашем случае PuTTY). Русскоязычная версия доступна здесь. Приложение имеет приблизительно такой вид:
В соответствующем поле («Host Name» или «Имя хоста») вводим предоставленный IP-адрес виртуального сервера, устанавливаем переключатель «connection type» возле SSH, «PORT» оставляем 22, «Saved Sessions» — произвольное название сессии. Теперь нужно нажать внизу окна кнопку «OPEN» (или «Соединиться»).
Открывается консоль, напоминающая командную строку Windows. Система просит ввести логин, по умолчанию – root.
Обратите внимание! Root – это суперпользователь с наивысшими правами доступа в Linux, аналог администратора в Windows. В дальнейшем для каждого сайта можно создать отдельного пользователя с ограниченными правами.
Теперь вводим пароль (можно вставить заранее скопированный (в PuTTY – щелчок правой кнопкой мыши), нажимаем Enter .
В целях безопасности, создаем нового пользователя с ограниченными правами, с которым и будем работать дальше. Для этого вводим команду:
Где polzovatel – имя, которое можно задать произвольно.
В открывшемся диалоге вводим новый пароль, чем сложнее, тем лучше, главное, чтобы вы его не забыли. По желанию можно ввести дополнительную информацию о пользователе, заполнив соответствующие поля.
Теперь нужно разрешить новому пользователю выполнять команды с правами суперпользователя с помощью утилиты sudo , однако, сначала данную утилиту необходимо установить.
Обратите внимание! sudo – утилита, позволяющая обычному пользователю заниматься администрированием системы с правами суперпользователя (root). Вводится sudo в начале команды.
Установка любого программного обеспечения в Linux-операционных системах начинается с обновления индекса пакетов. В процессе обновления индекса пакетов ваша операционная система связывается с репозиторием (хранилищем большинства программного обеспечения для вашего дистрибьютива) и «узнает» о последних версиях программного обеспечения и взаимозависимостях различных программных пакетов.
После обновления индекса устанавливаем утилиту sudo :
Теперь непосредственно наделяем polzovatel правом применять команду sudo :
Теперь можем войти и продолжить настройку системы под новым пользователем. Вводим команду:
Где хх.ххх.xx.xx – IP адрес сервера.
Нас спрашивают, желаем ли мы соединиться. Набираем в консоли yes , жмем Enter .
Полезные команды, которые пригодятся в работе с командной консолью:
- ls –lha – показать список имеющихся файлов, загруженных на сервере, включительно с данными о размере и правах доступа;
- cd [имя каталог] – перейти к указанному каталогу;
- mv – изменить имя/переместить;
- rm – удалить;
- cp – копировать;
- chmod – установить права доступа к фалу или каталогу;
- cat – показать содержимое файла;
- mc – запустить встроенный менеджер файлов, напоминающий Нортон.
- mkdir [произвольное_имя] – создать новый каталог.
Теперь можно приступать к установке необходимого программного обеспечения.
Установка и настройка LAMP
Чтобы запустить и настроить веб-сервер необходимо установить базовый набор программного обеспечения: LAMP (Linux+Apache+MySQL+PHP). Запускаем инсталляцию пакета LAMP и панели phpMyAdmin:
Откроется диалог, в котором нам попросят подтвердить начало установки указанных пакетов, подтверждаем – жмем клавиши Y и Enter .
В очередном диалоге задаем пароль для базы данных MySQL (в дальнейшем его можно изменить):
Для подтверждения вводим повторно пароль:
Дальше система запрашивает тип веб-сервера для автоматической настройки phpMyAdmin – выбираем apache2:
При открытии очередного диалога соглашаетесь ( Y и Enter ) с применением стандартных настроек phpMyAdmin и автоматическим созданием служебной базы данных:
Задаете пароль для phpMyAdmin и повторяете ввод:
Теперь нужно откорректировать конфигурацию Apache. Открываем файл с настройками:
После открытия на новой строке в конце документа вводим:
Теперь для выхода из редактора нажимаем Ctrl+X , потом соглашаемся сохранить изменения — Y и Enter .
Добавляем сайты на VPS сервер: настройка Apache и DNS
Apache позволяет создать бесконечное количество виртуальных хостов, вследствие к одному IP можно привязать множество сайтов. Но не стоит забывать об аппаратных ограничениях. Процесс размещения нескольких сайтов на одном VPS/VDS сервере разделяется на несколько этапов.
Первый этап: создаем отдельные каталоги для сайтов
Создаем каталоги, к которым будет обращаться Apache. В них будут храниться файлы ваших сайтов и веб-приложений. Вводим в командной консоли:
mkdir – команда «создать каталог (папку), параметр «-p» задается для рекурсивного создания папок: сначала появляется каталог «mysitename1.org», потом каталог «public» – в нем и будет храниться контент веб-ресурсов, которые вы планируете разместить. «/var/www/» — путь, по которому будут создаваться новые директории. Название папок можно задать произвольное.
Обратите внимание, Apache имеет доступ только к каталогу /var/www, а также ко всем вложенным в него папкам и файлам.
Второй этап: устанавливаем права
По умолчанию права на директории принадлежат root-пользователю. В целях безопасности, а также если сайт создается для сторонних лиц, нужно обозначить владельцев. Для этого вводим команды:
polzovatel – это имя пользователя, которому присваиваются права доступа к каталогам public_html, содержащим файлы сайта.
Редактируем права доступа:
Обратите внимание! В Linux-системах права доступа задаются цифрами для всех типов пользователей: создателя файла/директории, пользователей группы владельца, других пользователей.
Например, 755 означает:
7 | 5 | 5 |
Все права: чтение, выполнение и запись | Чтение и выполнение | Чтение и выполнение |
В таблицы приведены варианты присвоения прав:
ЗначениеПрава доступа к файлуПрава доступа к каталогу
Нет | Нет | |
1 | Выполнение | Чтение файлов, просмотр свойств |
2 | Запись | Нет |
3 | Запись, выполнение | Все, за исключение просмотра списка файлов |
4 | Чтение | Просмотр имен файлов |
5 | Чтение, выполнение | Доступ, чтение |
6 | Чтение, запись | Доступ, чтение |
7 | Полные права | Полные права |
Третий этап: создаем проверочные страницы
Чтобы проверить правильность конфигурации сервера, создаем демонстрационные страницы. Приведем пример для первого сайта. Процедура аналогична для всех устанавливаемых на сервере веб-ресурсов.
Формируем index.html:
В файле создаем простой html-документ:
Повторяем процедуру для других сайтов. Можно ускорить процесс, скопировав содержимое первого документа в каталог второго сайта:
Четвертый этап: настройка виртуальных хостов Apache
В поставке веб-сервера Apache уже есть стандартный файл default с конфигурацией виртуального хостинга. Нам нужно немного отредактировать исходный документ.
Редактируем файл с root-правами:
Заменяем содержимое файла следующей минимальной конфигурацией:
Сохраняемся, аналогичные операции выполняем для последующих доменов.
Пятый этап: включаем хосты
Чтобы подключить домены, в консоли задаем:
Перезапускаем сервер для активизации внесенных правок:
Шестой этап: настраиваем NS записи доменов
Не забудьте сменить NS записи для ваших доменов. Наиболее простой способ – привязать доменное имя к IP-адресу VPS-сервера у регистратора имен. Для этого необходимо прикрепить домен к серверу регистратора, а затем в разделе «Управление DNS-зоной» (или аналогичном) создать три записи типа А с именами: *, @ и www. В поле IP указать выделенный адрес VPS-сервера. Обратите внимание! Изменение NS записей может занять до 24 часов.
Если вы используете тестовый, незарегистрированный домен, то для проверки работоспособности только что настроенного веб-сервера нужно внести изменение в файл hosts на локальном компьютере. В Windows он расположен в папке C:\Windows\System32\Drivers\etc.
Открываем файл в блокноте с правами Администратора. В конце файла прописываем IP адрес сервера и «тестовые» домены ваших сайтов:
Сохраняем документ. хх.ххх.хх.ххх – IP-адрес VPS-сервера.
Веб-сервер настроен!
При вводе адреса mysitename1.org в строку адреса вашего браузера на экране появится надпись: Виртуальный хостинг работает.
Все готово для загрузки и установки работающего проекта.
Инструкция по настройке VDS: базовая конфигурация и работа с LEMP
Управление виртуальным сервером осуществляется с помощью командной строки. Для этих целей удобнее всего использовать бесплатную программу PuTTy. Она не требует установки: скачав и запустив утилиту, вы можете тут же подключиться к VDS по протоколу SSH, введя IP-адрес (номер порта по умолчанию — 22) и нажав на кнопку “Open”. После этого на экране появится окно консоли с приглашением к авторизации “login as:”. Введите root, нажмите “Enter”, далее укажите полученный при заказе услуги пароль и вновь подтвердите действие клавишей ввода. Теперь можно начинать работу.
Сама процедура настройки VDS представляет собой ввод в консоль текстовых команд, с помощью которых можно осуществлять практически любые операции над сервером. Ниже рассмотрена последовательность базовых действий, которые необходимо осуществить сразу после запуска виртуальной машины, а также пошаговая установка связки программного обеспечения, необходимого для размещения веб-сайтов. Примеры адаптированы для двух наиболее распространенных семейств Линукс: Debian (к ней относится, например популярный Ubuntu) и Centos (в него входит сам Centos, Fedora и ряд других).
Первоначальная настройка VDS
Обновление программного обеспечения
Начинать настройку VDS необходимо с глобального обновления. Запустить апдейт в Debian-подобных операционных системах можно следующим образом:
В процессе обновления вас спросят о том, хотите ли вы установить новые пакеты. Отвечайте утвердительно, используя клавишу Y, и подтвердите свой выбор, нажав “Enter”.
Добавление нового пользователя
Работать с сервером под учетной записью root настоятельно не рекомендуется — лучше всего создать нового пользователя и передать ему необходимые права. В Debian-подобных системах это делается командой:
где username следует заменить на желаемое имя пользователя. После ее выполнения вас попросят задать пароль, а затем предложат заполнить дополнительные поля (делать это необязательно — их можно оставить пустыми).
При работе с Centos также используется команда:
Однако пароль задается отдельно:
Передача привилегий root
После создания нового пользователя ему необходимо передать права суперадминистратора, в противном случае вы не сможете полноценно настроить VDS. Делается это через добавление вновь созданной учетной записи в соответствующую группу. Для Debian-подобных:
Управление SSH
В целях безопасности необходимо проделать ряд манипуляций с конфигурационным файлом sshd_config, который, как легко догадаться, отвечает за настройку удаленного подключения к серверу по SSH. В разных дистрибутивах Линукс для редактирования используются различные утилиты, соответственно, и команды для них будут несколько различаться. В Debian-подобных применяется nano:
Для сохранения внесенных изменений необходимо нажать комбинацию клавиш Ctrl+X, затем Y и “Enter”. Centos имеет в своем составе редактор vi:
Сохранение информации осуществляется командой :x, после чего необходимо нажать “Enter”.
В sshd_config следует запретить вход с помощью учетной записи root, заменив
а также поменять порт SSH, используемый по умолчанию, заменив
Номер порта лучше выбирать из диапазона 49152-65535 — это позволит избежать возможных конфликтов с различными службами и сервисами Линукс. После описанных манипуляций необходимо перезапустить SSH. В Debian это делается так:
Теперь необходимо переподключиться к серверу через назначенный порт под новой учетной записью, после чего настройку VDS можно продолжать.
Установка и настройка LEMP
Большинство современных CMS написаны на языке программирования PHP. Это означает, что для размещения практически любого сайта, независимо от типа и функционала, нам понадобится LEMP. Данная аббревиатура обозначает связку современного и очень быстрого веб-сервера Nginx, интерпретатора php-fpm и системы управления базами данных MySQL. Процедура установки достаточно проста и не займет много времени.
Установка Nginx
Начнем с установки Nginx. В Debian-подобных дистрибутивах это делается одной строчкой:
после чего сервер будет автоматически запущен.
В Centos сперва необходимо добавить репозиторий EPEL:
и только после этого производить установку:
Финальный этап — запуск Nginx:
Установка MySQL
В Debian-подобных операционных системах сервис баз данных устанавливается командой:
В процессе вас попросят задать пароль администратора MySQL.
В Centos-подобных дистрибутивах вместо MySQL используется форк MariaDB, обладающий теми же функциональными возможностями. После его установки:
сервер баз данных необходимо запустить, а также добавить в список автозагрузки:
Настройка MySQL
Первичная настройка сервера баз данных осуществляется с помощью специального скрипта, идущего в комплекте с основным ПО:
После запуска вас попросят ввести пароль администратора MySQL, который мы задали на предыдущем этапе, а затем зададут ряд вопросов, отвечать на которые необходимо кнопками Y (да) и N (нет), подтверждая выбор клавишей “Enter”:
- Хотите ли вы сменить пароль? (Change the root password?) — Нет (N)
- Удалить анонимных пользователей? (Remove anonymous users?) — Да (Y)
- Запретить удаленную авторизацию с правами суперпользователя? (Disallow root login remotely?) — Да (Y)
- Удалить тестовую базу данных? (Remove test database and access to it?) — Да (Y)
- Перезагрузить таблицу привилегий? (Reload privilege tables now?) — Да (Y)
Добавление новой базы данных
Управление базами данных осуществляется через консоль MySQL. Чтобы в нее войти, необходимо ввести команду:
после чего авторизоваться, используя пароль администратора.
Для размещения динамического сайта необходимо создать базу данных, с которой будет работать движок. Обычно для каждого проекта создается отдельная БД и отдельный пользователь, который может ей управлять. Давайте создадим базу данных sitedb, пользователя site_user, а затем передадим последнему права на управление sitedb (вы можете заменить предложенные имена на любые другие).
Делается это следующим образом:
Создаем пользователя (вместо password укажите уникальный пароль)
Передаем права управления sitedb пользователю site_user:
Обновляем данные о привилегиях:
По завершении всех операций выйдите из консоли MySQL:
Установка PHP
Важный этап настройки VDS — установка и конфигурирование интерпретатора PHP. Команды для разных дистрибутивов Линукс отличаются. Инсталляция в Debian осуществляется так:
Конфигурация PHP
Первый шаг — редактирование файла php.ini. В Debian и Ubuntu он располагается здесь:
В Centos-подобных дистрибутивах — непосредственно в каталоге etc:
В обеих системах сперва необходимо раскомментировать и поменять значение в следующей строчке:
Таким образом, мы закрыли важную уязвимость, с помощью которой злоумышленники могли бы получить несанкционированный доступ к сайту. На этом настройка интерпретатора на Debian завершена, осталось перезапустить PHP-процессор:
В Centos же необходимо отредактировать и файл www.conf:
Здесь требуется найти строчку
Далее запускаем интерпретатор, а также вручную добавляем его в автозагрузку:
Создание директории
Теперь необходимо создать каталог, в котором будут располагаться файлы вашего ресурса. В любой операционной системе Линукс это делается следующей командой:
В данном примере sitename.ru необходимо заменить на доменное имя сайта. Что касается файлов CMS, их следует загрузить в папку public_html. По завершении загрузки необходимо передать права управления веб-серверу. Здесь есть различия в именах, используемых для обозначения Nginx. Для Debian-подобных дистрибутивов команда будет выглядеть так:
Добавление нового хоста Nginx
Последний этап настройки VDS для размещения сайта — добавление виртуального хоста Nginx. Нам достаточно отредактировать файл default. В семействе Debian это делается так:
Открыв файл, удалите из него всю информацию, заменив на код, представленный ниже (вместо sitename.ru подставьте актуальное имя сайта), и сохраните результат:
Осталось перезапустить Nginx. Команда для дистрибутивов Debian:
Теперь виртуальный сервер полностью готов к эксплуатации, и можно начинать работу непосредственно с веб-ресурсом. Дальнейшие шаги зависят от выбранной CMS.