Поиск по сайту:

Как установить стек LEMP в Rocky Linux 8


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

Термин LEMP — это аббревиатура Linux, Nginx (произносится как Engine X, отсюда и буква E), который представляет собой веб-браузер, MariaDB или MySQL – база данных и PHP для обработки динамического контента). Стек LEMP широко используется для размещения веб-приложений и веб-сайтов с высоким трафиком и широкими возможностями масштабирования.

Из этого руководства вы узнаете, как установить стек LEMP в Rocky Linux 8.4.

Предварительные условия

Прежде чем приступить к установке стека LEMP, убедитесь, что у вас соблюдены следующие требования.

  • Экземпляр Rocky Linux 8 с настроенным пользователем sudo.
  • Доступ по SSH к экземпляру Rocky Linux.

Давайте начнем…

Шаг 1. Установите Nginx в Rocky Linux

Первым шагом является установка первого компонента стека LEMP, которым является веб-сервер Nginx. Сначала обновите пакеты.

sudo dnf update -y

После завершения обновления установите Nginx, выполнив следующую команду. При этом Nginx устанавливается вместе с другими зависимостями, необходимыми веб-серверу.

sudo dnf install nginx 

После установки Nginx включите его запуск во время загрузки и запустите демон Nginx.

sudo systemctl enable nginx 
sudo systemctl start nginx 

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

sudo systemctl status nginx

Из вывода мы можем сделать вывод, что веб-сервер запущен и работает.

Если вам достаточно любопытно, вы можете проверить версию Nginx следующим образом. Вывод показывает, что мы используем Nginx 1.14.1.

nginx -v

nginx version: nginx/1.14.1

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

http://server-ip or domain name

Если у вас возникли проблемы с просмотром страницы, рассмотрите возможность открытия порта 80 или разрешения HTTP-трафика на брандмауэре.

sudo firewall-cmd --zone=public --add-service=http --permanent 

Затем перезагрузите брандмауэр и перезагрузите страницу.

sudo firewall-cmd --reload

Шаг 2. Установите MariaDB в Rocky Linux

В этом руководстве мы установим базу данных MariaDB. Это связано с оптимизированной производительностью и богатством механизмов хранения, которые он предоставляет, что делает его намного превосходящим MySQL.

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

sudo dnf install mariadb-server mariadb

После этого включите и запустите MariaDB, как показано.

sudo systemctl enable mariadb
sudo systemctl start mariadb

Затем проверьте его статус.

sudo systemctl status mariadb

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

sudo mysql_secure_installation

Обязательно установите пароль root.

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

Чтобы войти на сервер базы данных, выполните команду:

sudo mysql -u root -p

Введите пароль и нажмите ENTER.

Шаг 3. Установите PHP в Rocky Linux

Последний компонент, который необходимо установить, — это PHP через PHP-FPM, что означает FastCGI Process Manager. Это эффективный и продвинутый процессор для PHP, который обеспечивает функции, гарантирующие оптимальную производительность и безопасность веб-сайтов с высоким трафиком.

Для начала мы установим репозиторий Remi, который представляет собой сторонний бесплатный репозиторий, предоставляющий последние версии PHP.

Чтобы включить репозиторий Remi, выполните команду:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

После включения репозитория Remi проверьте список модулей PHP, размещенных с помощью показанной команды.

sudo dnf module list php

Из вывода мы видим, что версия по умолчанию — 7.2 — с тегом [d]. Однако мы собираемся установить последний модуль — Remi 8.0.

Поэтому сбросьте модули PHP по умолчанию и включите последнюю версию модуля Remi PHP.

sudo dnf module list reset php
sudo dnf module enable php:remi-8.0

Затем обновите систему и установите PHP и PHP-FPM вместе с расширениями PHP по вашему выбору.

sudo dnf install php php-fpm php-gd php-mysqlnd php-cli php-opcache

После завершения установки включите и запустите PHP-FPM, как показано.

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

Затем проверьте статус работы PHP-FPM.

sudo systemctl status php-fpm

Обычно PHP-FPM запускается от имени пользователя Apache, но поскольку мы используем Nginx, нам необходимо установить для него значение Nginx. Итак, откройте следующий файл конфигурации.

sudo vim /etc/php-fpm.d/www.conf

Установите пользователя и группу на Nginx.

user = nginx
Group = nginx

После этого перезагрузите демон PHP-FPM.

sudo systemctl reload php-fpm

Чтобы убедиться, что мы установили последнюю версию PHP, выполните команду.

php -v

Еще один отличный способ протестировать PHP — создать простой файл PHP и поместить его в корневой каталог веб-сайта, который находится в /usr/share/nginx/html. Итак, создайте простой файл info.php в корневом веб-каталоге /usr/share/nginx/html.

sudo vim /usr/share/nginx/html/info.php

Добавьте следующий контент и сохраните файл.

<?php

phpinfo();

?>

Чтобы изменения вступили в силу, перезагрузите веб-сервер Nginx.

sudo systemctl restart nginx

Наконец, получите доступ к следующему URL-адресу.

http://server-ip/info.php

Будет отображена веб-страница с подробной информацией об установленной версии PHP, а также о других расширениях PHP.

На этом установка LEMP завершена. На следующем этапе мы собираемся разместить образец сайта, настроив блок сервера Nginx.

Шаг 3. Настройте блок сервера Nginx в Rocky Linux

Блок сервера позволяет администраторам размещать несколько веб-сайтов на одном сервере, определяя разные корневые каталоги документов сайта. Это каталоги, содержащие файлы веб-сайта.

Здесь мы создадим один файл блока сервера Nginx для размещения примера веб-сайта.

Шаг 1. Создайте каталог веб-сайтов

Прежде всего создайте каталог документов сайта, который будет содержать данные сайта, которые будут доступны посетителям сайта. Предположим, у вас есть домен example.com. Создайте каталог домена сайта следующим образом. Обязательно замените example.com на полное доменное имя вашего сайта или зарегистрированный домен.

sudo mkdir -p /var/www/example.com/html

Шаг 2. Установите права собственности и разрешения на веб-сайте

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

Чтобы изменить право собственности на файлы на текущего вошедшего в систему пользователя, используйте команду chown.

sudo chown -R $USER:$USER /var/www/example.com/html

Переменная $USER принимает значение текущего пользователя, вошедшего в систему, и предоставляет пользователю право владения HTML-файлами и подкаталогами. Кроме того, предоставьте разрешение на чтение общего корневого веб-каталога, чтобы посетители сайта могли получить доступ к страницам сайта.

sudo chmod -R 755 /var/www

Каталог сайта теперь хорошо настроен для обслуживания веб-страниц сайта.

Шаг 3. Создайте демонстрационный сайт

Давайте теперь создадим образец тестового сайта. Мы создадим очень простой файл index.html в каталоге html домена.

sudo vim /var/www/example.com/html/index.html

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

<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success! The server block is active!</h1>
  </body>
</html>

Сохраните и выйдите из HTML-файла.

Шаг 4. Создайте блок сервера Nginx для веб-сайта

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

  • /etc/nginx/sites-available – это каталог, в котором будет храниться файл блокировки сервера.
  • /etc/nginx/sites-enabled — каталог уведомляет Nginx о том, что файл блока сервера готов обслуживать запросы.

Поэтому создайте каталоги следующим образом:

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

После этого отредактируйте основной файл конфигурации Nginx.

sudo mkdir /etc/nginx/nginx.conf

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

include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;

Сохранить и выйти.

Затем создайте файл блокировки сервера.

sudo vim /etc/nginx/sites-available/example.com.conf

Вставьте содержимое ниже. Замените example.com своим полным доменным именем (FQDN) или IP-адресом сервера.

server {
    listen  80;

    server_name example.com www.example.com;

    location / {
        root  /var/www/example.com/html;
        index  index.html index.htm;
        try_files $uri $uri/ =404;
    }

    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}

Сохраните и выйдите из файла.

Шаг 5. Включите блокировку сервера Nginx

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

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Затем перезапустите Nginx, чтобы изменения вступили в силу.

sudo systemctl restart nginx

Шаг 6. Тестирование веб-сайта Nginx

Чтобы проверить конфигурацию, запустите браузер и посетите домен вашего сайта.

http://example.com

Должен отобразиться сайт блока сервера, как мы настроили на шаге 3.

И на этом все завершается. В этом руководстве мы рассказали вам об установке стека LEMP в Rocky Linux 8 и пошли дальше, создав и настроив файл блока сервера, на котором мы разместили индивидуальный веб-сайт.