Найти в Дзене

Debian 9: полная настройка веб-сервера. Часть 1: Установка NGINX, PHP-FPM, Maria DB

Всем привет. В данном руководстве хочу подробно описать процесс настройки LEMP стэка на базе VDS под управление Debian 9 Что такое LEMP? Да тоже самое, что и LAMP, только вместо apache стоит nginx(читается, как EnginX). На самом деле инструкций по установке и настройке очень много, есть годные, а есть и не очень. Я просто собрал все понравившиеся мне способы в один поток данных. Для удобства чтения я разбил данную статью на 3 части: Часть 1: Установка NGINX, PHP-FPM, Maria DB Часть 2: Настройка nginx, php-fpm, создание виртуальных хостов Часть 3: Установка phpMyadmin, webmin, composer, git. Настройка ssl, Приступим к установке. Начнем с того самого nginx: Если выполнить apt-get install nginx будет произведена установка веб-сервера nginx. Вот только версия может оказаться очень старенькой. Узнать, какая версия nginx будет установлена, можно выполнив команду apt-cache policy nginx Добавим репозиторий nginx в sources.list echo "deb http://nginx.org/packages/debian/ stretch n
Оглавление

Всем привет.

В данном руководстве хочу подробно описать процесс настройки LEMP стэка на базе VDS под управление Debian 9

Что такое LEMP?

Да тоже самое, что и LAMP, только вместо apache стоит nginx(читается, как EnginX).

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

Для удобства чтения я разбил данную статью на 3 части:

Часть 1: Установка NGINX, PHP-FPM, Maria DB

Часть 2: Настройка nginx, php-fpm, создание виртуальных хостов

Часть 3: Установка phpMyadmin, webmin, composer, git. Настройка ssl,

Приступим к установке.

Начнем с того самого nginx:

Если выполнить apt-get install nginx будет произведена установка веб-сервера nginx. Вот только версия может оказаться очень старенькой.

Узнать, какая версия nginx будет установлена, можно выполнив команду

apt-cache policy nginx

Добавим репозиторий nginx в sources.list

echo "deb http://nginx.org/packages/debian/ stretch nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/debian/ stretch nginx" >> /etc/apt/sources.list

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

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
rm nginx_signing.key

Обновите пакеты и выполните установку

apt-get update
apt-get install nginx

Проверьте, что nginx запущен

service nginx status

Вы должны увидеть

Active: active (running)

Создание конфигов и настройка виртуальных хостов будет описана ниже, после установки основных компонентов веб-сервера

Установка php-fpm

Проверяем, какая версия доступно в текущих репозиториях

apt-cache policy php-fpm

В моем случае, для установки доступна версия 7.0, а актуальная версия на данный момент 7.4

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

apt -y install lsb-release apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
apt-get update
apt-get install php7.4-fpm
apt install php7.4-mbstring
apt install php7.4-mysql
apt install php7.4-gd
apt install php7.4-bcmath
apt install php7.4-ctype
apt install php7.4-json
apt install php7.4-pdo
apt install php7.4-tokenizer
apt install php7.4-xml
apt install php7.4-curl

Установка Maria DB

Запустим скрипт установки

curl https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash

Для информации:

Данный скрипт проанализирует вашу систему, установит GPG-ключи и добавит репозиторий в файл /etc/apt/sources.list.d/mariadb.list

Скрипт является официальным и поддерживает дистрибутивы: RHEL/CentOS 6 & 7, Ubuntu 16.04 LTS (xenial) & 18.04 (bionic), Debian 8 (jessie) & 9 (stretch) и SLES 12 и 15

Скрипт так же поддерживает установку репозиториев для разных версий MariaDB, MaxScale и MariaDB Tools, Вы можете скачать его и посмотреть все опции запуска:

./mariadb_repo_setup --help

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

3. Обновляем список пакетов:

apt-get update

4. Устанавливаем последнюю версию MariaDB 10.4.x:

apt-get install mariadb-server -y

Теперь запустим мастер настройки безопасности:

mysql_secure_installation

На вопрос: Enter current password for root (enter for none):

нажимаем Enter, текущий пароль root у нас пустой.

Далее вопрос: Switch to unix_socket authentication [Y/n]

вводим Y, если мы хотим оставить возможность аутентификации через unix-сокет — это нововведение появилось именно в 10.4, плагин позволяет использовать присутствующие в системе учётные записи для подключения к СУБД при помощи локального unix-сокета.

Далее вопрос: Change the root password? [Y/n]

вводим Y, да мы хотим поменять пароль root

и далее придумываем СЛОЖНЫЙ пароль root

Далее вопрос: Remove anonymous users? [Y/n]

вводим Y, мы хотим удалить анонимного пользователя.

Далее вопрос: Disallow root login remotely? [Y/n]

вводим Y, да мы хотим запретить подключаться под пользователем root с удаленных машин.

Далее вопрос: Remove test database and access to it? [Y/n]

вводим Y, да мы хотим удалить тестовую базу test

И последний вопрос: Reload privilege tables now? [Y/n]

вводим Y, да мы хотим перезагрузить таблицу привилегий для вступления их в силу.

На этом установку основных частей можно считать оконченной. В следующей части разберем настройки nginx и php-fpm, а так же конфигурирование виртуальных хостов