---
title: 'От нуля до героя: создание сервера LEMP на Rocky Linux 9 | Zomro'
description: 'От нуля до героя: создание сервера LEMP на Rocky Linux 9'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/dalle-2024-09-02-224641-an-abstract-rectangular-illustration-featuring-a-smooth-gradient-of-deep-purple-vibrant-pink-and-blue-representing-the-concept-of-the-lemp-stack-t_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/rus/)
  * [FAQ](https://zomro.com/rus/blog/faq/)
  * От нуля до героя: создание сервера LEMP на Rocky Linux 9 



# От нуля до героя: создание сервера LEMP на Rocky Linux 9

26-08-2024

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/dalle-2024-09-02-224641-an-abstract-rectangular-illustration-featuring-a-smooth-gradient-of-deep-purple-vibrant-pink-and-blue-representing-the-concept-of-the-lemp-stack-t_q50.jpg)​​​​​​​

LEMP-стек (**Linux, Nginx, MySQL и PHP**) — это набор открытого программного обеспечения, который позволяет разрабатывать и размещать динамические веб-приложения на сервере. В состав стека входят Linux в качестве операционной системы, Nginx как веб-сервер, MySQL (или MariaDB) для управления базами данных и PHP (или Python/Perl) для серверного программирования. Эти компоненты взаимодействуют друг с другом, создавая мощную, эффективную и масштабируемую среду для веб-разработки.

В этой статье описывается процесс установки **LEMP-стека** на **Rocky Linux 9** и настройка сервера для развертывания веб-приложений.

**Установка Nginx**

Nginx доступен в стандартных репозиториях Rocky Linux 9. Выполните следующие шаги, чтобы установить веб-сервер Nginx с использованием менеджера пакетов DNF.

Установите Nginx:
    
    
    sudo dnf install nginx

  
Проверьте установленную версию Nginx:
    
    
    nginx -v

  
Результат:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/01_U1YTTa3_q50.jpg)

Включите автозапуск Nginx при загрузке системы:
    
    
    sudo systemctl enable nginx

Запустите Nginx:
    
    
    sudo systemctl start nginx

  
Проверьте статус службы Nginx:
    
    
    sudo systemctl status nginx

Результат:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/02_8zcvBPs_q50.jpg)

**Установка MySQL**

MySQL также доступен в стандартных репозиториях Rocky Linux 9. В зависимости от ваших потребностей, вы можете выбрать между MySQL и MariaDB. Ниже описан процесс установки сервера базы данных MySQL и настройки безопасной аутентификации для всех пользователей базы данных.

Установите MySQL:
    
    
    sudo dnf install mysql-server

  
Проверьте установленную версию MySQL:
    
    
    mysql --version

Результат:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/03_N39l87h_q50.jpg)

  
Включите автозапуск MySQL при загрузке системы:
    
    
    sudo systemctl enable mysqld

  
  
Запустите MySQL:
    
    
    sudo systemctl start mysqld

Проверьте статус службы MySQL:
    
    
    sudo systemctl status mysqld

Результат:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/04_4xAvIep_q50.jpg)

Запустите скрипт **mysql_secure_installation** для настройки аутентификации и отключения небезопасных настроек по умолчанию:
    
    
    sudo mysql_secure_installation

Примеры ответов при выполнении скрипта:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/05_q50.jpg)

  
Войдите в консоль MySQL как пользователь root:
    
    
    mysql -u root -p

Просмотрите все доступные базы данных:
    
    
    SHOW DATABASES;

  
Результат:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/06_0yCRHXK_q50.jpg)

Выйдите из консоли MySQL:
    
    
    EXIT;

**Установка PHP и настройка PHP-FPM**

PHP обрабатывает динамический контент веб-приложений, а PHP-FPM (FastCGI Process Manager) обеспечивает его выполнение с оптимизацией производительности. Выполните следующие шаги для установки PHP и настройки PHP-FPM для работы с Nginx.

**Установите PHP и PHP-FPM:**
    
    
    sudo dnf install php php-fpm

Установите необходимые расширения PHP:
    
    
    sudo dnf install php-mysqlnd php-gd php-mbstring php-xml

**Эти расширения обеспечивают:**

  * php-mysqlnd: подключение PHP к MySQL.
  * php-mbstring: работу с многобайтовыми строками.
  * php-xml: работу с XML.
  * php-gd: обработку изображений.



Проверьте установленную версию PHP:
    
    
    php -v

Результат:

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2024/09/02/07_DZS3otE_q50.jpg)

Включите автозапуск PHP-FPM при загрузке системы:
    
    
    sudo systemctl enable php-fpm

**Запустите PHP-FPM:**
    
    
    sudo systemctl start php-fpm

Откройте конфигурационный файл www.conf и измените параметры пользователя и группы с apache на nginx:

  

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

  * **user = nginx**
  * **group = nginx**



Сохраните и закройте файл.

Перезапустите PHP-FPM:  

    
    
    sudo systemctl restart php-fpm

**Настройка Nginx с PHP-FPM**

Nginx подключается к PHP-FPM через Unix-сокет или порт 9000. Для корректной работы Nginx и PHP-FPM должны использовать одного и того же пользователя и группу. Следуйте этим шагам для настройки:

Создайте файл info.php в корневой директории веб-сервера **/var/www/html** :
    
    
    sudo vim /var/www/html/info.php

Добавьте следующий код:
    
    
    <?php
    
    phpinfo();
    
    ?>

  
Сохраните и закройте файл. Этот код выводит информацию о текущей версии PHP и доступных модулях.

Создайте новый конфигурационный файл виртуального хоста Nginx, например, example.com.conf в /etc/nginx/conf.d:
    
    
    sudo vim /etc/nginx/conf.d/example.com.conf

Добавьте следующие настройки, заменив example.com на ваш домен:
    
    
    server {
        listen 80;
        server_name example.com;
        root /var/www/html;
        index info.php index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_index info.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
    

Сохраните и закройте файл.

Эта конфигурация создаёт новый виртуальный хост, который принимает запросы на HTTP-порту 80 для домена app.example.com, обслуживая файлы из корневой директории /var/www/html и передавая PHP-запросы на PHP-FPM через Unix-сокет.

Проверьте конфигурацию Nginx на ошибки:
    
    
    nginx -t
    

  
Перезапустите Nginx для применения изменений:
    
    
    sudo systemctl restart nginx

Назначьте пользователю и группе nginx права на корневую директорию веб-сервера:
    
    
    sudo chown -R nginx:nginx /var/www/html/

Установите права доступа для файла info.php:
    
    
    sudo chmod 755 /var/www/html/info.php

Настройте контекст SELinux для веб-директории:
    
    
    sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
    sudo restorecon -Rv /var/www/html

Проверьте контекст безопасности:
    
    
    ls -Z /var/www/html

  
Разрешите HTTP-соединения через брандмауэр:
    
    
    sudo firewall-cmd --zone=public --permanent --add-service=http
    sudo firewall-cmd --reload

Перейдите на ваш домен в браузере, чтобы убедиться, что информация о PHP отображается:

  

    
    
    http://example.com

​​​​​​​  
**Заключение**

**​​​​​​​**

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

  


Похожие статьи

[Настройка firewall UFW в Ubuntu 20.04](https://zomro.com/rus/blog/faq/343-ufw-firewall-setup-on-ubuntu-2004) [Сброс пароля администратора WordPress через консоль в Linux Ubuntu или CentOS 7](https://zomro.com/rus/blog/faq/335-resetting-wordpress-admin-password-via-console-in-linux-ubuntu-or-centos-7) [MacOS: Как выполнить проверку MTR](https://zomro.com/rus/blog/faq/101-macos-kak-vypolnit-proverku-mtr) [Как включить микрофон на VPS с Windows Server 2012, 2016, 2019](https://zomro.com/rus/blog/faq/270-kak-vkljuchit-mikrofon-na-vps-s-windows-2012-2016-2019) [Как переустановить ОС на выделенном сервере](https://zomro.com/rus/blog/faq/122-kak-pereustanovit-os-na-vydelennom-servere)

[ Выделенные серверы от €88.80/мес ](/rus/dedicated-servers)
