Как установить стек 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 и пошли дальше, создав и настроив файл блока сервера, на котором мы разместили индивидуальный веб-сайт.