Вернуть старое меню
Бесплатно, 24/7 8 (800) 775-97-42
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Выбрать VPS
Маркетплейс
О нас
Сообщество
Поддержка
Баланс:
Бонусы:
Войти
Выйти
Зарегистрироваться
ГОТОВЫЕ ТАРИФЫ
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Card icon Своя конфигурация
Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
О компании Входим в топ-15 IAAS в России
Дата-центры 17 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Поможем с гос. лицензированием
Бонусная программа Накопительная система лояльности
Card icon Пинг до дата-центров
Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Card icon Соцсети
Наш блог на Хабре, выступления, новости компании.
Присоединиться
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
Бесплатно, 24/7 8 (800) 775-97-42
Mobile menu button
Выбрать VPS
Mobile card icon
Своя конфигурация Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Ref icon
Бесплатный тест на 3 дня
Маркетплейс
О нас
Mobile card icon
Пинг до дата-центров Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
О компании Входим в топ-15 IAAS в России
Дата-центры 17 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Накопительная система лояльности
Бонусная программа Накопительная система лояльности
Сообщество
Mobile card icon
Соцсети Наш блог на Хабре, выступления, новости компании.
Присоединиться
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Поддержка
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Войти
Зарегистрироваться
Личный кабинет
Мои серверы
Домены
Баланс: Бонусы:
Заказать
Настройки
Партнеру
Выйти
Мои серверы
Домены
Заказать
Настройки
Партнеру
  • ВЫБРАТЬ VPS
  • ДАТА-ЦЕНТРЫ
  • СПРАВОЧНИК
  • ПОДДЕРЖКА
  • ВОЙТИ
RuVDS/Справочник/Развертывание ПО на VPS сервере/Как установить стек LEMP на Ubuntu 22.04

Как установить стек LEMP на Ubuntu 22.04

2713 просмотров 3 2024-03-29 2024-04-01

Стек LEMP – это сокращение, которое описывает типичную конфигурацию веб-сервера для хостинга и развёртывания веб-приложений. Как правило, LEMP включает следующие компоненты:

  • Linux – операционная система, которая обеспечивает базовое окружение для запуска веб-сервера и других компонентов стека.
  • Nginx – веб-сервер, который также широко используется и в качестве прокси-сервера, и обратного прокси. Он способен обрабатывать большое количество одновременных соединений и работать с высокими нагрузками.
  • MySQL (или MariaDB) – реляционная система управления базами данных (СУБД), использующаяся для хранения и управления данными веб-приложения.
  • PHP – интерпретируемый язык программирования, который применяется для разработки веб-приложений. В контексте стека LEMP, PHP часто используется для обработки динамических запросов и генерации содержимого веб-страниц на сервере.

В настоящем руководстве мы разберём установку данного комплекса на виртуальный выделенный сервер, работающий под управлением Ubuntu 22.04.

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

Установка Nginx

За отображение веб-страниц в стеке LEMP отвечает веб-сервер Nginx. Его установку можно произвести, используя менеджер пакетов apt. Соответственно, начать следует с обновления индекса пакетов:

$ sudo apt update

Затем запустите установку Nginx:

$ sudo apt install nginx

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

$ sudo ufw app list

Как видно из вывода команды, ufw знает о трёх профилях Nginx:

Список приложений в UFW

Если вы планируете использовать на веб-сервере доступ к страницам сайта не только через протокол HTTP, но и более защищённый протокол HTTPS, добавьте в ufw разрешающее правило для профиля Nginx Full:

$ sudo ufw allow 'Nginx Full'

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

$ sudo ufw status

Вывод команды говорит о том, что разрешающее правило в ufw, присутствует:

Статус UFW - Как установить стек LEMP на Ubuntu

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

Тестовая страница Nginx - Как установить стек LEMP на Ubuntu

Установка MySQL

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

Для установки MySQL нужно также использовать утилиту apt:

$ sudo apt install mysql-server

По завершении установки мы рекомендуем запустить скрипт настройки безопасности, который поставляется с дистрибутивом MySQL. Данный скрипт должен обеспечить по крайней мере минимальный уровень защиты базы данных и самой СУБД. Запуск интерактивного скрипта выполняется следующей командой:

$ sudo mysql_secure_installation

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

Нажмите Y для согласия или нажмите любую другую клавишу для того, чтобы продолжить без включения функции:

Запуск скрипта mysql_secure_installation - Как установить стек LEMP на Ubuntu

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

Выбор уровня проверки пароля

Затем скрипт предложит удалить анонимных пользователей, которые по умолчанию содержатся в СУБД и позволяют кому угодно подключаться к MySQL без необходимости создания пользователей сразу после установки. Для того, чтобы удалить их, нажмите y:

Удаление анонимных пользователей

Далее нажмите y, чтобы отключить удалённый вход с правами root, который по умолчанию разрешён:

Отключение удалённого доступа для пользователя root

После этого вам будет предложено удалить тестовую базу данных. Она присутствует в MySQL для удобства разработки, тестирования и демонстрации возможностей. Чтобы удалить её, нажмите y:

Удаление тестовой базы данных - Как установить стек LEMP на Ubuntu

Затем следует согласиться с перезагрузкой таблиц привилегий, которая обеспечит применение всех внесённых на данный момент изменений. Что это сделать, нажмите y:

Перезагрузка таблиц привилегий - Как установить стек LEMP на Ubuntu

После окончания работы скрипта попробуйте войти в консоль MySQL:

$ sudo mysql

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

Подключение к консоли MySQL - Как установить стек LEMP на Ubuntu

Для выход наберите:

mysql> exit

Обратите внимание, что вам не пришлось вводить пароль для подключения от имени учётной записи root. Связано это с тем, что в Ubuntu для административного пользователя MySQL методом аутентификации по умолчанию является auth_socket, но не использования пароля. На первый взгляд это может показаться проблемой безопасности, но на самом деле это делает СУБД более безопасной, поскольку единственными пользователями, которым разрешено входить в систему в качестве корневого пользователя MySQL, являются системные пользователи с привилегиями sudo. На практике это означает, что вы не сможете использовать администратора базы данных root для подключения к MySQL из PHP-приложения. Для повышения безопасности лучше всего настроить выделенные учётные записи пользователей для каждой базы данных с менее широкими привилегиями, особенно если вы планируете разместить на своем сервере несколько баз данных.

На этом установка MySQL завершена. Далее необходимо будет установить PHP – ещё один компонент в стеке LEMP.

Установка PHP

Итак, у вас установлен Nginx в качестве веб-сервера и MySQL как СУБД. Это значит, что на следующем шаге нужно будет установить PHP, который будет использоваться для обработки кода и генерации динамического контента.

В то время как Apache применяет встраивание интерпретатора PHP во все запросы, для работы Nginx необходимо наличие внешнего софта для обработки PHP. Кроме того, Nginx является своего рода мостом между веб-сервером и самим интерпретатором. В большинстве случаев это приводит к повышению общей производительности ве веб-сайтов, использующих PHP, но при этом требует проведения дополнительных настроек. Исходя из этого, на нашем VDS потребуется произвести установку приложения php8.1-fpm (PHP FastCGI process manager). Данный софт использует текущую версию PHP для того, чтобы Nginx мог передавать PHP-запросы этому менеджеру для обработки. Дополнительно нам потребуется модуль php-mysql. С его помощью PHP сможет взаимодействовать с базами данных нашего MySQL. Основные же пакеты PHP будут проинсталлированы как зависимости.

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

$ sudo apt install php8.1-fpm php-mysql

После окончания установки компонентов PHP для их дальнейшего использования следует настроить Nginx.

Настройка Nginx

При использовании Nginx мы можем создавать серверные блоки, чтобы инкапсулировать детали конфигурации и размещать более одного домена на одном сервере.

В качестве примера мы рассмотрим процесс размещения на нашем веб-сервере сайта с доменным именем your-domain.host.

По умолчанию в Nginx включен один серверный блок, и он настроен на обслуживание файлов из каталога по адресу /var/www/html/. Это хорошо работает для одного сайта, но при размещении нескольких может возникнуть сложность в управлении. Вместо того, чтобы изменять /var/www/html/, мы создадим структуру каталогов для your-domain.host внутри /var/www/, при этом оставим /var/www/html/ в качестве каталога по умолчанию. Он и будет обслуживаться, если запрос клиента не будет соответствовать каким-либо другим сайтам.

Итак, сначала создайте корневой каталог для своего сайта. Используя данную команду не забудьте заменить your-domain.host на имя вашего домена:

$ sudo mkdir /var/www/your-domain.host

Затем назначьте владельца каталога с помощью переменной окружения $USER. Таким образом данная переменная будет ссылаться на вашего текущего пользователя в системе:

$ sudo chown -R $USER:$USER /var/www/your-domain.host

Затем создайте новый конфигурационный файл. Сделать это можно, например, с использованием текстового редактора nano:

$ sudo nano /etc/nginx/sites-available/your-domain.host

Скопируйте в него следующий текст:

server {
    listen 80;
    root /var/www/your-domain.host;
    index index.html index.htm index.php;
    server_name your-domain.host www.your-domain.host;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
     }
    location ~ /\.ht {
        deny all;
    }
}

В данном случае:

  • listen — параметр определяет, какой порт будет прослушивать Nginx. В нашей конфигурации он прослушивает порт 80, то есть дефолтный порт HTTP.
  • root — параметр указывает на корневой каталог документа, в котором хранятся файлы веб-сайта.
  • index — параметр определяет то, в каком порядке Nginx будет расставлять приоритеты индексных файлов для веб-сайта. Обычной практикой является перечисление данных файлов в порядке уменьшения приоритета. Естественно, у вас есть возможность настроить этот параметр в соответствии с потребностями именно вашего приложения.
  • server_name — параметр определяет за какие доменные имена и/или IP-адреса должен отвечать данный серверный блок.
  • location / — данный блок включает директиву try_files, которая проверяет наличие файлов или каталогов, соответствующих URL-запросу. Если Nginx не сможет найти соответствующий ресурс, он вернёт ошибку 404.
  • location ~ \.php$ — данный блок указывает Nginx на файл конфигурации fastcgi-php.conf, а также на файл php8.1-fpm.sock, в котором определён связанный с ним сокет.
  • location ~ /\.ht — данный блок имеет дело с файлами .htaccess, которые Nginx не обрабатывает. В нашем примере блок содержит директиву deny all. Это означает, что файлы .htaccess, попавшие в корень не будут доступны посетителям.

При редактировании файла замените your-domain.host на имя вашего домена. Когда вы закончите работу с файлом, закройте текстовый редактор с сохранением внесённых изменений, для чего используйте комбинацию клавиш Ctrl X, затем поочерёдно нажмите Y и Enter.

Активируйте новую конфигурацию используя следующую команду, где замените your-domain.host на имя вашего домена:

$ sudo ln -s /etc/nginx/sites-available/your-domain.host /etc/nginx/sites-enabled/

После чего отлинкуйте дефолтную конфигурацию от каталога /sites-enabled/:

$ sudo unlink /etc/nginx/sites-enabled/default

Если когда-нибудь вам понадобится восстановить конфигурацию по умолчанию, вы можете сделать это, воссоздав символьную ссылку:

$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

Далее проверьте конфигурацию на наличие синтаксических ошибок:

$ sudo nginx -t

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

Проверка синтаксиса конфигурации Nginx

Если ошибок нет, запустите процесс перезагрузки конфигурации Nginx:

$ sudo systemctl reload nginx

С этого момента сайт уже активен, но он пуст, так как каталог /var/www/your-domain.host/ не содержит ничего. Следовательно, в данном каталоге необходимо создать файл сайта – index.html. Мы сделаем это для того, чтобы убедиться, что сайт действительно работает.

Итак, создайте файл index.html при помощи текстового редактора nano перейдя в каталог вашего сайта:

$ cd /var/www/your-domain.host/
$ nano index.html

В качестве примера мы внесём в него следующее содержимое:

<p>Your Nginx site - your-domain.host</p>
<p>You see your new Nginx site <b>your-domain.host</b> on Ubuntu 22.04</p>

Закройте файл index.html сохранив внесённые изменения. После чего в браузере перейдите по ссылке вида http://your-domain.host, где your-domain.host замените на имя вашего сайта.

Пробная веб-страница на Nginx

Если вы увидите страницу вашего сайта, значит серверный блок Nginx работает должным образом.

На данном этапе стек LEMP полностью настроен. Теперь мы создадим самый простой PHP-скрипт, чтобы проверить, действительно ли Nginx способен обрабатывать php-файлы на только что настроенном веб-ресурсе.

Тестирование PHP с помощью Nginx

Чтобы проверить работоспособность PHP, создайте файл index.php в корневом каталоге вашего сайта:

$ cd /var/www/your-domain.host/
$ nano index.php

Затем вставьте в него следующий текст:

<?php
phpinfo();

После чего закройте файл с сохранением изменений и в браузере перейдите по ссылке вида http://your-domain.host/index.php. В результате вы должны получить веб-страницу, содержащую подробную информацию о вашем сервере:

Информационная страница PHP - Как установить стек LEMP на Ubuntu

После этого лучше всего удалить файл index.php, поскольку он содержит конфиденциальную информацию о вашей среде PHP и сервере в целом. Для удаления используйте команду rm:

$ cd /var/www/your-domain/
$ sudo rm index.php

Заключение

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

Статья полезна?

3 Да  Нет
Похожие статьи
  • Как установить VictoriaMetrics на Ubuntu 24.04
  • Как настроить Angie в качестве обратного прокси-сервера
  • Запуск тестового сервера Django
  • Как установить Anaconda на Ubuntu 24.04
  • Как настроить HTTPS для панели Wazuh
  • Как установить Wazuh на Ubuntu 24.04
Оставить комментарий Отменить ответ

Популярные статьи
  • Как подключиться по RDP из-под MacOS
  • Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
  • Управление портами в Linux (Ubuntu/Debian/CentOS)
  • Настройка VPN с использованием WireGuard
  • Как извлекать и разархивировать файлы .tar.gz в Linux-системах
Разделы Справочника
  • Настройка VPS Сервера
  • Начало работы
  • Особенности виртуального сервера
  • Партнерам
  • Развертывание ПО на VPS сервере
  • Сетевые настройки сервера
GAME OVERNIGHT
CLOUDRUSSIA
STRATONET
SPACE DC
ARCTIC DC
VPS/VDS серверы:
Тестовый период
Дешевый VPS
VPS Старт
VPS Мощные
VPS Windows
VPS Быстрые NVMe
VPS с 1C
Форекс VPS
Игровые серверы
VPS для бизнеса
Пинг до дата-центров
Услуги:
Маркетплейс
Панель ispmanager
Антивирусная защита
Аренда лицензий
Облачное хранилище
VPS серверы с Plesk Obsidian
Колокация
Looking Glass
DNS
Клиентам:
О компании
Дата-Центры
Новости
Аттестация по ФСТЭК
Бонусная программа
Публичная Оферта
Соглашение об уровне услуг
Политика обработки персональных данных
Сувениры от RuVDS
Партнерам:
Для прессы
Партнерская программа
Отзывы
API
Помощь:
Справочник
FAQ
Созданных
серверов
231504
Huawey
Supermicro
Cisco
Intel
Microsoft
ISP
Kaspersky
RDCA Logo

«Креатив года» Премия ЦОДы.рф 2021, 2025

RDCA Logo

«Хостер года» Премия ЦОДы.рф 2023

RDCA Logo

«Человек года» Премия ЦОДы.рф 2024

RuVDS
support@RUVDS.com
8 (800) 775-97-42
+7 (495) 135-10-99
МЫ В СОЦИАЛЬНЫХ СЕТЯХ
Copyright © 2025 RuVDS. Все права защищены.
ООО "МТ ФИНАНС" | ОГРН 1157746680332
Оставить отзыв

Условия получения бонуса за оставленный отзыв:

  1. Напишите про нас на любом из специализированных сайтах для отзывов.
  2. Пришлите нам текст отзыва и ссылку на ваш отзыв.
  3. После проверки, мы опубликуем ваш отзыв у нас на сайте и также начислим бонус на ваш баланс.
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS
Оставить отзыв
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS