Ноутбук и компьютер - Информационный портал

Как настроить виртуальный сервер vps для себя. Настройка хостинга на VDS под Ubuntu. Установка и настройка LEMP

В этой статье мы разберем основные принципы настройки VPS\VDS сервера. Если у вас есть вопрос, на который статья не дает ответ - задавайте их в форме под статьей, мы постараемся ответить вам на имейл.

  • Настройка виртуального сервера

Как перезапустить VPS\VDS-сервер?

Есть два способа перезапуска виртуального сервера:

  1. Через панель управления (если она есть). Т.к. панели управления разные, мы не можем рассказать подробно как это сделать.
  2. Зайти на сервер через программу PuTTY по защищенному протоколу SSH и ввести в командной строке команду:

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

Какое ПО не работает на виртуальном сервере?

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

  • Антивирус, который будет в режиме "проактивной защиты". Рекомендуется использовать только те, которые работают в режиме сканирования.
  • Не пытайтесь создать виртуальную сетевую карту, вряд ли это получится.
  • Драйвера защиты 1С.
  • Также не получится установить драйвера, которые требуют реальных (физических) устройств.
  • Не рекомендуется использовать программы, которые помогают восстанавливать дисковую память, или производят с ней похожие действия.

Как изменить часовой пояс в Linux-сервере?

Время на сервере меняется с помощью таких команд (вводим в консоли):

rename /etc/localtime /etc/localtime.old
ln -s /usr/share/zoneinfo/Europe/Kiev /etc/localtime
hwclock --systohc --utc
ntpdate pool.ntp.org

Важно! При использовании виртуализации OpenVZ это решение (как собственно и любое другое) не сработает, т.к. в OpenVZ все виртуальные машины работают с часовым поясом физической ноды.

В данном материале я расскажу, как начать работу с VDS (Virtual Dedicated Server). Статья ориентирована на владельцев и администраторов сайтов, желающих попробовать этот вид хостинга, но не чувствующих полной уверенности в своих силах. На практике всё не так страшно, как может показаться на первый взгляд. Подразумевается, что вы имеете опыт работы с обычным хостингом и более или менее ориентируетесь в данном вопросе.

Сразу хочу обратить внимание на терминологический нюанс. Англоязычный термин «shared hosting» обычно переводят на русский как «виртуальный хостинг», что вносит путаницу. Так как и там, и там присутствует слово «виртуальный», некоторые пользователи считают, что «виртуальный хостинг» и «виртуальный выделенный сервер» это одно и то же. Нет, это совсем разные вещи.

Shared hosting , он же виртуальный хостинг, он же обычный хостинг — самый дешёвый и распространённый вид хостинг-услуг, когда множество сайтов разных клиентов размещено на одном веб-сервере. Эти сайты делят ресурсы сервера по определённым, довольно строгим правилам. Один из главных минусов shared хостинга — это то, что вы ограничены рамками того набора программного обеспечения, который предустановлен и настроен хостером, что при решении нестандартных задач может быть существенной проблемой. К тому же по мере роста вашего проекта может сложиться ситуация, когда на обычном хостинге ему банально перестанет хватать ресурсов.

VDS (Virtual Dedicated Server), он же VPS (Virtual Private Server) — более продвинутый и дорогой вид хостинг-услуг, когда клиенту выделяется отдельный сервер, полностью независимый от других клиентов данного хостинга. VDS является вашей «личной территорией» — это полноценная (хоть и виртуальная) машина, на которой вы можете использовать любое нужное вам программное обеспечение в любой конфигурации, не оглядываясь ни на кого. Аналогично обстоят дела и с использованием вычислительных ресурсов данного сервера — можно загружать его под завязку хоть все 24 часа в сутки, в рамках купленной конфигурации у вас нет никаких ограничений. В силу описанных преимуществ VDS часто оказывается золотой серединой между использованием shared хостинга и арендой/покупкой физического сервера.

Как понятно из названия статьи, речь в ней пойдёт именно про второй вариант. Сначала я расскажу о работе с сервером в общих чертах, затем кратко, в формате «вопрос-ответ» опишу способы решения некоторых типовых задач. Для примеров я буду использовать хостинг Timeweb, так как на данный момент у меня под рукой есть их сервер, куда я могу подглядывать и откуда делать скриншоты. У других хостеров всё устроено похожим образом.

Для настройки различных параметров VDS я буду активно использовать ISPmanager — программный продукт от компании ISPsystem, представляющий из себя панель управления компонентами веб-сервера с привычным большинству пользователей графическим интерфейсом. Работа через ISPmanager значительно облегчает конфигурирование системы и снижает порог вхождения для начинающих администраторов. Существуют и другие продукты с похожим функционалом, в том числе и бесплатные, однако использование именно ISPmanager обусловлено тем, что он является стандартом де-факто в данной области. Также я не обойду стороной командную строку, в Linux-системах без неё никуда.

Выбор конфигурации VDS

Итак, приступим к делу. Идём на сайт хостера в раздел VDS, выбираем нужный тариф, вводим информацию о себе или своей организации. Тут всё точно так же, как и в случае с обычным хостингом, единственное отличие — нужно дополнительно выбрать аппаратную конфигурацию сервера и операционную систему, а также определиться, нужно ли устанавливать ISPmanager. Если вы только начинаете знакомство с Linux и у вас нет специфических требований к ОС, рекомендую остановиться на Ubuntu. Выбор параметров «железа» зависит от планируемых задач, в первую очередь рекомендую ориентироваться на необходимые объёмы дискового пространства и ОЗУ. ISPmanager заказываем в версии Lite с оплатой помесячно. После того, как заказ сделан, потребуется некоторое время для развертывания сервера, после чего им можно будет начать пользоваться.

Способы управления сервером

Рассмотрим три основных элемента управления:

1. Панель управления от хостера. В случае с VDS она не сложнее аналогичной панели обычного хостинга. Более того, она даже проще, так как в ней отсутствуют некоторые привычные функции. Через панель хостера можно заказывать и оплачивать услуги, смотреть базовую статистику по работе сервера, общаться с техподдержкой. Также в данной панели присутствует весьма ограниченный набор органов управления техническими параметрами сервера. У Timeweb панель управления VDS выглядит так:

2. ISPmanager. А вот здесь в плане технических настроек уже есть где разгуляться. При помощи данного инструмента можно полноценно конфигурировать все основные компоненты веб-сервера — Apache/nginx, MySQL, PHP и другие. Через ISPmanager можно устанавливать и обновлять программное обеспечение, работать с файлами, базами данных, консолью, получать расширенную информацию о работе сервера. Выглядит ISPmanager 5 Lite так:

Чтобы зайти в ISPmanager, наберите в адресную строку браузера http://x.x.x.x:1500/, где x.x.x.x — IP-адрес вашего VDS (посмотреть его можно в панели управления хостера).

3. Командная строка, она же консоль операционной системы. Самый мощный и гибкий, но вместе с тем самый сложный для освоения и не всегда удобный интерфейс.

Основы работы с консолью

Остановимся подробнее на последнем пункте — командной строке. Обычно именно она является главным отпугивателем пользователей в деле освоения дел серверных. Но не так страшен чёрт, как его малюют. По большому счёту, поначалу можно обойтись без консоли вообще или свести общение с ней к минимуму. Однако, если вы планируете дальнейшую работу с серверами на Linux-системах, крайне рекомендуется освоить работу с командной строкой хотя бы в минимальном объёме.

Зайти в консоль можно несколькими способами:

  1. Через панель управления хостера. В таймвэбовской панели есть встроенный терминал, ссылка на который присутствует в главном меню.
  2. Через ISPmanager: Инструменты > Shell-клиент.
  3. Через SSH-клиент — например, PuTTY. Хоть этот способ и является классическим, но при наличии первых двух вариантов необходимости в нём обычно нет.

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

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

ls — показывает содержимое заданного каталога, при использовании без аргументов — текущего.

pwd — отображает полный путь к текущему каталогу.

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

Также упомяну команду сlear (горячая клавиша Ctrl+L), которая очищает окно терминала. Это бывает полезно в случаях, когда на экран выведено слишком много информации и попросту начинает рябить в глазах.

Вопросы и ответы

Перейду к ответам на вопросы, которые на первых порах могут возникнуть при работе с сервером. Совсем очевидные вещи (например, где создать FTP-аккаунт или MySQL-базу), я рассматривать не буду, с этим любой способен разобраться самостоятельно, просто пройдясь по меню в ISPmanager. Для совсем ленивых в левом верхнем углу его панели имеется форма поиска, а в самом низу меню — раздел «Справка».

Как привязать домен к сайту?

Шаг 1: Прописываем домен в панели хостера: Домены > Перенести домен. Если на данном шаге возникает сообщение, что домен уже размещён другим пользователем, необходимо сначала удалить привязку этого домена в том аккаунте, где он размещён.

Шаг 2: Заходим в ISPmanager: Домены > WWW-домены, нажимаем кнопку «Создать», задаём имя домена и его настройки.

Шаг 3: Через панель регистратора указываем для нашего домена ns-сервера хостера. В случае с Timeweb они следующие:

ns1.timeweb.ru
ns2.timeweb.ru
ns3.timeweb.org
ns4.timeweb.org

Если вам необходимо создать поддомен, это делается точно так же, но без третьего шага.

Как узнать путь к папке сайта?

Через ISPmanager: Домены > WWW-домены, столбец «Корневая директория».

Где найти менеджер файлов?

В ISPmanager: Система > Менеджер файлов.

Как узнать объём занятого и свободного места на диске?

1) Через панель управления хостера: В разделе «Список VDS» на вкладке «Главная» блок «Свободное место на диске».

2) Через ISPmanager: На вкладке «Главная» в блоке «Информация о системе» кликаем по значению справа от надписи «Размер дискового пространства».

3) Через консоль: df -h

Как узнать объём занятой и свободной оперативной памяти?

1) Через ISPmanager: На вкладке «Главная» в блоке «Информация о системе» строчка «Оперативная память».

2) Через консоль: free -m

Как узнать нагрузку на процессор?

1) Общий график доступен через панель управления хостера: В разделе «Список VDS» на вкладке «Главная» блок «Процессор».

2) Аналогичный график есть в ISPmanager: На вкладке «Главная» блок «Ресурсы сервера».

3) Распределение нагрузки по процессам можно посмотреть через консоль: top (для выхода из режима мониторинга нажмите клавишу «q»).

Как узнать размер отдельной папки?

1) Через ISPmanager: Учётные записи > Пользователи > кликаем на пользователя, нажимаем кнопку «Войти» > Статистика > Использование диска > выбираем нужную папку. После просмотра не забудьте выйти из учётной записи пользователя, выбрав в правом верхнем углу в подменю учётной записи «Вернуться в root».

2) Через консоль: du -sh dirname

Как заархивировать/разархивировать папку с файлами?

Работа с архивами в ISPmanager доступна через менеджер файлов (кнопки «Архив» и «Извлечь»). Поддерживаются форматы ZIP и tar.

Архивация через консоль при помощи архиватора tar с gzip-сжатием: tar -cvzf archivename.tar.gz dirname

Архивация через консоль при помощи архиватора ZIP: zip -r archivename.zip dirname

Распаковка архива через консоль при помощи архиватора tar: tar -xvf archivename.tar

Распаковка архива через консоль при помощи архиватора ZIP: unzip archivename.zip

Как импортировать/экспортировать базу данных MySQL?

Через ISPmanager: Доп. приложения > phpMyAdmin. Данный способ удобен, но он не всегда работает.

Импорт через консоль: mysql -u username -p database_name

Экспорт через консоль: mysqldump -h hostname -u username -p database_name > dumpfile.sql

Как настроить параметры MySQL-сервера?

Через ISPmanager: Настройки > Серверы баз данных > MySQL > Кнопка «Настройки». Во многих случаях специфическая настройка MySQL не требуется, однако, иногда «подкрутить» некоторые параметры просто необходимо. Например, если вы используете 1C-Битрикс, производительность работы с базой данных при настройках по умолчанию будет довольно низкой, о чём вам сообщит встроенный в эту CMS бенчмарк.

Как изменить версию PHP?

Через ISPmanager: Настройки web-сервера > PHP > выбираем нужную версию, нажимаем кнопку «Как модуль Apache». Если требуемой версии PHP в списке нет, переходим: Настройки > Возможности. Здесь мы видим список установленного и доступного к установке ПО. Выбираем нужную нам альтернативную версию PHP, нажимаем кнопку «Изменить», ставим галочку «ISPsystem модуль PHP для Apache версии x.x», нажимаем «Применить изменения». Ждём, когда новая версия PHP установится, после чего возвращаемся к первому шагу, где включаем её как модуль Apache. Для получения максимальной производительности рекомендуется использовать самую свежую из версий PHP, с которой ваш сайт нормально работает.

Как установить расширения PHP?

Через ISPmanager: Настройки web-сервера > PHP > выбираем нужную версию PHP, нажимаем кнопку «Расширения». Далее ищем нужное расширение и включаем или отключаем его соответствующими кнопками.

Как настроить переменные PHP?

Через ISPmanager: Настройки web-сервера > PHP > выбираем нужную версию PHP, нажимаем кнопку «Настройка». Далее ищем и редактируем нужные переменные.

Как включить PHP-акселератор?

Рекомендую использовать Zend OPcache, который входит в стандартную поставку PHP, начиная с версии 5.5. Иногда он включен по умолчанию, иногда нет. Активируется OPcache через ISPmanager: Настройки web-сервера > PHP > выбираем нужную версию PHP, нажимаем кнопку «Расширения». Далее ищем расширение «opcache» и включаем его соответствующей кнопкой. Настройка акселератора осуществляется через переменные PHP (как их менять, рассмотрено в предыдущем пункте) и зависит от конфигурации сервера, используемого ПО и задач.

Как установить и включить nginx?

Через ISPmanager: Настройки > Возможности > выбираем «Веб-сервер (WWW)», нажимаем кнопку «Изменить». Ставим галочку напротив «Nginx», нажимаем «Применить изменения».

Как настроить работу сайта по HTTPS?

Для работы сайта по HTTPS необходим SSL-сертификат. Тут возможны следующие варианты:

1) Если вы хотите приобрести платный сертификат, это можно сделать через панель хостера в разделе «Лицензии и сертификаты». После выпуска сертификата он будет автоматически установлен на сервер, после чего сайт станет доступен по HTTPS.

2) Если у вас уже имеется сертификат, его нужно установить через ISPmanager: Настройки веб-сервера > SSL-сертификаты > Кнопка «Создать», тип SSL-сертификата: существующий. Заполняем поля формы, нажимаем «Завершить». После этого переходим в раздел Домены > WWW-домены, выбираем домен, нажимаем кнопку «Изменить», в поле «SSL-сертификат» выбираем установленный сертификат. Ставим галочки напротив пунктов «Защищенное соединение (SSL)», «HSTS» и, если требуется, «Перенаправлять HTTP-запросы в HTTPS».

3) Вы можете установить бесплатный сертификат от Let’s Encrypt. Для этого заходим в ISPmanager: Интеграция > Модули, где устанавливаем модуль Let’s Encrypt. После этого в разделе Настройки веб-сервера > SSL-сертификаты появится кнопка «Let’s Encrypt», нажав на которую вы можете инициировать выпуск сертификата для нужного домена. После того, как сертификат выпущен, он будет автоматически установлен на сервер. Продление сертификата происходит автоматически, вмешательства пользователя не требуется.

Как настроить кэширование и gzip-сжатие для файлов сайта?

Через ISPmanager: Домены > WWW-домены, выбираем домен, нажимаем кнопку «Изменить», прокручиваем страницу в самый низ до раздела «Оптимизация WWW-домена». В нём ставим галочки напротив «Настроить сжатие» и «Настроить кэширование». Рекомендуемый по умолчанию уровень сжатия — 5, период кэширования — 7 дней.

Вместо заключения

В данной статье я постарался рассмотреть основные моменты, связанные с первичной настройкой VDS. Очевидно, что это только верхушка айсберга, но я и не ставил перед собой задачи написать исчерпывающее руководство по данной теме. Скорее мне хотелось сделать краткую памятку, куда удобно подглядывать на начальных этапах освоения сервера. А дальше — гугл вам в помощь.

В этой статье я расскажу как настроить свой VDS (виртуальный выделенный сервер) или просто выделенный сервер для запуска на нем своего сайта или множества сайтов. Сразу же напишу оговорки, которые стоит знать. Данный метод настройки подойдет для операционных систем Debian 7 minimal или Ubuntu 12 TLS minimal . В случае если у Вас будут более новые версии ОС, то придется исправлять имена некоторых пакетов на новые. Следующим важным моментом будет отсутствие панели управления хостингом, для новичков конечно же это может быть шоком, но фактически она и не понадобится, так как обычно на сервере после запуска сайта его можно и не трогать в течении длительного времени.
Сразу же приведу пример расчета ВДС к посещаемости сайта. У меня есть сайт с посещаемостью 18 тысяч человек в день, он отлично работает на VDS с 2 гигами оператиной памяти и 2 выделенными ядрами процессора по цене всего в 6 баксов. Вариант данного сервера можно посмотреть . Там же я брал сервер для данного мануала.

Итак. Будем считать что я настраиваю сервер для сайта с доменом сайт и форумом на его поддомене forum.сайт . Т.е. когда Вы будете настраивать под себя свой VDS по данному мануалу, то просто замените сайт на свой домен.

Допустим у Вас уже есть сервер и теперь мы подключаемся к нему через протокол SSH с помощью программы PUTTY . После запуска переходим в меню Translation и в списке выбираем кодировку UTF-8 .


Далее слева сверху нажимает на Session . Справа указываем IP адрес сервера , который указан у Вас в письме. Порт 22 оставляем по умолчанию. Можно сохранить настройки, указав имя данному соединению в окне ниже и нажать на кнопку Save . Чтобы подключиться жмем Open .


Далее перед нами появляется консоль в которой нужно ввести имя (обычно это root) и пароль. Обратите внимание что при вводе пароля ничего показываться не будет. Просто вводим пароль и нажимаем энтер.
Открывается консоль работы с сервером. Она выглядит как на картинке ниже. Если у Вас снова просят ввести пароль, но Вы не верно вводите либо имя пользователя, либо - пароль.

(cкачиваний: 1758)

Будет видео в котором я покажу пример использования данного файла в деле.
После этого Ваш веб сервер в целом готов к работе, можно конечно поправить настройки базы данных, но в целом все должно работать и так.
Для защиты протокола SSH, можно изменить порт с 22 на любой свободный или поставить пакет fail2ban , он будет защищать порт от желающих получить пароль перебором:
apt-get install fail2ban
В целом настройки fail2ban не требует, базовых параметров достаточно, но желающие могут покопаться в настройках и выставить нужное время бана, количество попыток подбора пароля до бана и все остальное.
Если по статье возникают вопросы - пишите их в комментариях к данной статье.

Осуществляется с помощью командной строки. Для этих целей удобнее всего использовать бесплатную программу PuTTy . Она не требует установки: скачав и запустив утилиту, вы можете тут же подключиться к VDS по протоколу SSH, введя IP-адрес (номер порта по умолчанию - 22) и нажав на кнопку “Open”. После этого на экране появится окно консоли с приглашением к авторизации “login as:”. Введите root, нажмите “Enter”, далее укажите полученный при заказе услуги пароль и вновь подтвердите действие клавишей ввода. Теперь можно начинать работу.

Сама процедура настройки VDS представляет собой ввод в консоль текстовых команд, с помощью которых можно осуществлять практически любые операции над сервером. Ниже рассмотрена последовательность базовых действий, которые необходимо осуществить сразу после запуска виртуальной машины, а также пошаговая установка связки программного обеспечения , необходимого для размещения веб-сайтов. Примеры адаптированы для двух наиболее распространенных семейств Линукс: Debian (к ней относится, например популярный Ubuntu) и Centos (в него входит сам Centos, Fedora и ряд других).

Внимание! Для ОС версии Bitrix 6, устанавливаемой на VDS, установка LEMP не требуется!

Первоначальная настройка VDS

Обновление программного обеспечения

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

Apt-get update && apt-get upgrade

для Centos команда иная:

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

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

Работать с сервером под учетной записью root настоятельно не рекомендуется - лучше всего создать нового пользователя и передать ему необходимые права. В Debian-подобных системах это делается командой:

Adduser username

где username следует заменить на желаемое имя пользователя. После ее выполнения вас попросят задать пароль, а затем предложат заполнить дополнительные поля (делать это необязательно - их можно оставить пустыми).

При работе с Centos также используется команда:

Adduser username

Однако пароль задается отдельно:

Passwd username

Передача привилегий root

После создания нового пользователя ему необходимо передать права суперадминистратора, в противном случае вы не сможете полноценно настроить VDS. Делается это через добавление вновь созданной учетной записи в соответствующую группу. Для Debian-подобных:

Gpasswd -a username sudo

для Centos-подобных:

Gpasswd -a username wheel

Управление SSH

В целях безопасности необходимо проделать ряд манипуляций с конфигурационным файлом sshd_config, который, как легко догадаться, отвечает за настройку удаленного подключения к серверу по SSH. В разных дистрибутивах Линукс для редактирования используются различные утилиты, соответственно, и команды для них будут несколько различаться. В Debian-подобных применяется nano:

Nano /etc/ssh/sshd_config

Для сохранения внесенных изменений необходимо нажать комбинацию клавиш Ctrl+X, затем Y и “Enter”. Centos имеет в своем составе редактор vi:

Vi /etc/ssh/sshd_config

Сохранение информации осуществляется командой:x, после чего необходимо нажать “Enter”.

В sshd_config следует запретить вход с помощью учетной записи root, заменив

PermitRootLogin yes

PermitRootLogin no

а также поменять порт SSH, используемый по умолчанию, заменив

например, на

Номер порта лучше выбирать из диапазона 49152-65535 - это позволит избежать возможных конфликтов с различными службами и сервисами Линукс. После описанных манипуляций необходимо перезапустить SSH. В Debian это делается так:

Service ssh restart

Systemctl reload sshd

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

Установка и настройка LEMP

Большинство современных CMS написаны на языке программирования PHP. Это означает, что для размещения практически любого сайта, независимо от типа и функционала, нам понадобится LEMP. Данная аббревиатура обозначает связку современного и очень быстрого веб-сервера Nginx, интерпретатора php-fpm и системы управления базами данных MySQL. Процедура установки достаточно проста и не займет много времени.

Установка Nginx

Начнем с установки Nginx. В Debian-подобных дистрибутивах это делается одной строчкой:

Sudo apt-get install nginx

после чего сервер будет автоматически запущен.

В Centos сперва необходимо добавить репозиторий EPEL:

Sudo yum install epel-release

и только после этого производить установку:

Sudo yum install nginx

Финальный этап - запуск Nginx:

Sudo systemctl start nginx

Установка MySQL

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

Sudo apt-get install mysql-server mysql-client

В процессе вас попросят задать пароль администратора MySQL.

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

Sudo yum install mariadb-server mariadb

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

Sudo systemctl start mariadb sudo systemctl enable mariadb

Настройка MySQL

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

Sudo mysql_secure_installation

После запуска вас попросят ввести пароль администратора 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 (вы можете заменить предложенные имена на любые другие).

Делается это следующим образом:

Создаем базу данных:

CRE ATE DATABASE sitedb;

Создаем пользователя (вместо password укажите уникальный пароль)

CREATE USER site_user@localhost IDENTIFIED BY "password";

Передаем права управления sitedb пользователю site_user:

GRANT ALL PRIVILEGES ON sitedb.* TO site_user@localhost IDENTIFIED BY "password";

Обновляем данные о привилегиях:

FLUSH PRIVILEGES;

По завершении всех операций выйдите из консоли MySQL:

Установка PHP

Важный этап настройки VDS - установка и конфигурирование интерпретатора PHP. Команды для разных дистрибутивов Линукс отличаются. Инсталляция в Debian осуществляется так:

Sudo apt-get install php5-fpm php5-mysql

В Centos - немного иначе:

Sudo yum install php php-mysql php-fpm

Конфигурация PHP

Первый шаг - редактирование файла php.ini. В Debian и Ubuntu он располагается здесь:

Sudo nano /etc/php5/fpm/php.ini

В Centos-подобных дистрибутивах - непосредственно в каталоге etc:

Sudo vi /etc/php.ini

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

;cgi.fix_pathinfo=1

Cgi.fix_pathinfo=0

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

Sudo service php5-fpm restart

В Centos же необходимо отредактировать и файл www.conf:

Sudo vi /etc/php-fpm.d/www.conf

Здесь требуется найти строчку

Listen = 127.0.0.1:9000

и заменить на

Listen = /var/run/php-fpm/php-fpm.sock

Также меняем

Listen.owner = nobody listen.group = nobody

Sudo systemctl start php-fpm sudo systemctl enable php-fpm

Создание директории

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

Sudo mkdir /var/www/sitename.ru/public_html

В данном примере sitename.ru необходимо заменить на доменное имя сайта. Что касается файлов CMS, их следует загрузить в папку public_html. По завершении загрузки необходимо передать права управления веб-серверу. Здесь есть различия в именах, используемых для обозначения Nginx. Для Debian-подобных дистрибутивов команда будет выглядеть так:

Sudo chown -R www-data:www-data /var/www/html/*

В Centos иначе:

Sudo chown -R nginx:nginx /var/www/html/*

Добавление нового хоста Nginx

Последний этап настройки VDS для размещения сайта - добавление виртуального хоста Nginx. Нам достаточно отредактировать файл default. В семействе Debian это делается так:

Sudo nano /etc/nginx/sites-available/default

Sudo vi /etc/nginx/conf.d/default.conf

Открыв файл, удалите из него всю информацию, заменив на код, представленный ниже (вместо sitename.ru подставьте актуальное имя сайта), и сохраните результат:

Server { listen 80; server_name sitename.ru; server_name_in_redirect off; access_log /var/log/nginx/sitename.access_log; error_log /var/log/nginx/sitename.error_log; root /var/www/sitename.ru/public_html; index index.php index.html index.htm default.html default.htm; location / { try_files $uri $uri/ /index.php?$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Осталось перезапустить Nginx. Команда для дистрибутивов Debian:

Sudo service nginx restart

Sudo systemctl restart nginx

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

Когда ваш сайт расширяется вы задумываетесь об аренде уже чего-то более серьёзного, чем просто хостинг. Выделенные сервера в наше время удовольствие дорогое и им на замену хорошо подходят VDS или VPS . Часто, если пользователь никогда не администрировал сервер такого типа, то он просто загружает на сервак свой сайт и оставляет всё как есть, думая что машину настраивать совсем не нужно, то есть, как на обычном хостинге. Это в корне не так. Если оставить нулевые настройки, а при аренде вам только установят ОС и панель управления, то ваш VDS/VPS будет работать примерно только на 1/4 своей мощности. Неопытные пользователи обычно удивляются, когда их сайт на мощной ВДСке падает даже при малейших нагрузках и бегут к администрации с просьбой объяснить почему такое происходит, на что получают шаблонный ответ, мол оптимизируйте работу скриптов. Мы сделаем всё, чтобы выжать все соки из вашего виртуального сервера .

Что имеем в качестве примера:
» VDS
» ОС - Debian
» Панель управления - ISPmanager
» ОЗУ - 4096 Мб
» Процессор - AMD 2799.999 Mhz 4 ядра
» Диск 150 Гб
Такое чудо можно арендовать у любого хостера за 1000-1500 рублей в месяц.

Настройка системы.

Все действия выполняются от root пользователя.

1. my.cnf - оптимизация mysql. Открываем файловый менеджер в панели управления, открываем etc/mysql/my.cnf и заменяем строки, которые есть у вас из списка ниже на соответствующие строчки из этого же списка. Чего нет - добавляем.


key_buffer = 16M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
query_cache_size = 128M
query_cache_limit = 16M
query_cache_type = 1
max_connections = 300
thread_cache_size = 100
myisam-recover = BACKUP
expire_logs_days = 10
max_binlog_size = 100M
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 16M
innodb_flush_log_at_trx_commit = 2
quick
quote-names
max_allowed_packet = 64M

Рестартируем мускуль в службах.

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

2. AllowOverride all - Включаем перезапись.htaccess
Заходим в /etc/apache2/sites-available/default меняем все строки с AllowOverride none на AllowOverride all
Это позволит.htaccess перезаписывать правила. По умолчанию стоит none и в большинстве случаев ваш сайт будет выдавать Internal Server Error, то есть 500-ю ошибку. Пример того, что должно получиться:

Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

3. php.ini - конфигуратор php. В нём есть много полезных параметров, которые можно изменить под себя. Находим и изменяем строки ниже под свои предпочтения. Чтобы выяснить, где лежит ваш php.ini создайте на своём сайте файл info.php с текстом и откройте его в браузере. Например, http://site.ru/info.php. В строке Loaded Configuration File будет показан путь.
// Максимальный размер загружаемых данных на ваш сервер методом POST
post_max_size = 64M
// Максимальный размер загружаемых данных на ваш сервер
upload_max_filesize = 16M
// Вывод ошибок. Если вы отлаживаете скрипты, то ставьте On
display_errors = Off
// То же что и выше, только для процесса запуска
display_startup_errors = On | Off
// Лог ошибок. если логи занимают много места, то ставьте Офф
log_errors = On
// Повтор показанных ошибок
ignore_repeated_errors = On
// Максимальный объём памяти для выполнения скрипта
memory_limit = 24M

После сохранения перезагружаем сервер.

Установка PHP модулей.

Для установки модулей нужно выполнять команды. Команды выполняются в SSH клиенте. Всё просто, если, к примеру, панель не будет открываться, или случится какой-нибудь сбой, то через ССАШ команды можно перезагрузить сервер, что-то подправить и так далее. Команды выполняются через SSH клиент. Самый популярный - Putty . Не требует установки. Открываете, пишите IP сервера (он дан вам с паролями) открывается консоль - чёрное окно. Вводите имя пользователя (root) и свой пароль. Обратите внимание, что при вводе пароля символы в целях безопасности не печатаются. И нажимаете Enter. Теперь вы можете выполнять команды. Чтобы их не писать вручную, вставка осуществляется правой кнопкой мыши.

1. eAccelerator - ставим первым делом, с его помощью вес веб-страниц становится в несколько раз меньше. Выполняем поочерёдно следующие команды.

aptitude install php5-dev make re2c
wget https://github.com/eaccelerator/eaccelerator/archive/master.zip
unzip master.zip
cd eaccelerator-master
phpize
./configure
make install
mkdir /var/cache/eaccelerator;chmod 0777 /var/cache/eaccelerator
service apache2 restart

Заходим в Расширения PHP и ищем eaccelerator. Если есть, всё правильно сделано.

2. Активация модулей - некоторые модули уже идут в комплекте, но не активированы. Выполняем команды по очереди.

a2enmod rewrite
apt-get install php5-gd

Итог.

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

Похожие публикации