• Каждый пользователь который проходит регистрацию, проходит проверку у Администраций форума.
    Если ваш аккаунт был отклонен, узнать причину можно тут: Volshebnik

Статья Как установить LEMP на CentOS Stream 9

LEMP — это стек программного обеспечения, используемый для разработки и развёртывания веб-приложений. Он обеспечивает высокую производительность и способен обрабатывать множество одновременных соединений благодаря использованию Nginx. LEMP широко используется для создания как статических, так и динамических сайтов, обеспечивая гибкость в выборе языков программирования и инструментов.

LEMP является альтернативой стека LAMP и включает в себя следующие компоненты:

  • Linux — операционная система, на которой будет работать стек;
  • Nginx — веб-сервер, который обрабатывает HTTP-запросы и отвечает на них;
  • MariaDB или MySQL — системы управления базами данных (СУБД), используемые для хранения данных веб-приложений;
  • PHP (или другие языки программирования, такие как Python или Ruby) — язык программирования, который обрабатывает динамический контент веб-приложений.

Как установить LEMP на CentOS Stream 9​

В статье разберём, как установить LEMP на виртуальный выделенный сервер, работающий под управлением CentOS Stream 9, и разместить на нём сайт. В нашем примере стек LEMP будет состоять из Linux, Nginx, MariaDB и PHP.

Установка Nginx​

Перед установкой нового программного обеспечения рекомендуется обновить список установленных пакетов до их последних доступных версий в репозиториях:
Bash:
Expand Collapse Copy
sudo dnf update
После чего установите веб-сервер Nginx:
Bash:
Expand Collapse Copy
sudo dnf install nginx
Когда установка закончится, запустите веб-сервер:
Bash:
Expand Collapse Copy
sudo systemctl start nginx
Затем установите службу Nginx в автозагрузку, чтобы веб-сервер автоматически стартовал при загрузке системы:
Bash:
Expand Collapse Copy
sudo systemctl enable nginx
Состояние Nginx можно проверить при помощи следующей команды:
Bash:
Expand Collapse Copy
systemctl status nginx
Вывод данной команды, как правило, выглядит примерно так, как на скриншоте ниже:
1-12.png


Чтобы получить доступ к сайту, размещённому на сервере, необходимо добавить в брандмауэр разрешающее правило для протокола HTTP.
Список всех настроек и правил брандмауэра можно отобразить, выполнив команду:
Bash:
Expand Collapse Copy
sudo firewall-cmd --permanent --list-all
По умолчанию протокол HTTP отсутствует в списке разрешённых сервисов.
Чтобы добавить его туда, запустите следующую команду:
Bash:
Expand Collapse Copy
sudo firewall-cmd --permanent --add-service=http
Для применения изменений, внесённых в настройки брандмауэра, перезагрузите его конфигурацию:
Bash:
Expand Collapse Copy
sudo firewall-cmd --reload
После этого вы сможете проверить работоспособность установленного веб-сервера, набрав в навигационной строке браузера адрес вида , где замените X.X.X.X на IP-адрес виртуального сервера.
Поскольку никакой сайт на сервере пока не размещён, браузер должен отобразить тестовую страницу веб-сервера.
1-9.png

Установка MariaDB​

Следующий шаг — установка и первоначальная настройка СУБД. Чтобы установить MariaDB, выполните команду:
Bash:
Expand Collapse Copy
sudo dnf install mariadb-server mariadb
После того, как установка завершится, запустите MariaDB:

Bash:
Expand Collapse Copy
sudo systemctl start mariadb
Затем установите MariaDB в автозагрузку:
Bash:
Expand Collapse Copy
sudo systemctl enable mariadb
Проверить состояние службы СУБД можно при помощи команды:
Bash:
Expand Collapse Copy
systemctl status mariadb
1-10-1024x386.png

Также, проверить корректность установки можно с помощью команды, которая должна вывести версию MariaDB:
Bash:
Expand Collapse Copy
mysql -V
1-11.png

Далее следует повысить уровень безопасности установки MariaDB. Следующая команда запускает пошаговый скрипт, который помогает настроить безопасные параметры СУБД.
Во-первых, если не был задан пароль для административного пользователя СУБД, которым является [COLOR=rgb(226, 80, 65)]root[/COLOR], скрипт предложит его установить.
Если пароль уже существует, вы сможете изменить его. Во-вторых, скрипт предложит удалить анонимных пользователей, поскольку это представляет риск безопасности.
Далее скрипт предложит отключить возможность подключения к СУБД для пользователя [COLOR=rgb(226, 80, 65)]root[/COLOR] с удалённых хостов, а также удалить тестовую базу данных и перезагрузить таблицы привилегий, чтобы изменения сразу вступили в силу.
Bash:
Expand Collapse Copy
sudo mysql_secure_installation

Установка PHP​

Следующий этап — установка последней версии PHP. Для этого в нашем примере мы используем репозиторий Remi. Сначала установите пакет EPEL — репозиторий, содержащий дополнительные пакеты, которые не входят в стандартные репозитории Red Hat.
Bash:
Expand Collapse Copy
sudo dnf install epel-release
Затем установите пакет репозитория Remi:
Bash:
Expand Collapse Copy
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Для управления версиями PHP с использованием репозитория Remi установите утилиту dnf-utils:
Bash:
Expand Collapse Copy
sudo dnf install dnf-utils
На момент написания статьи актуальной версией PHP является версия 8.3.
Для её установки сначала сбросьте текущие настройки модуля PHP:
Bash:
Expand Collapse Copy
sudo dnf module reset php
После сброса активируйте нужную версию. В нашем случае — это PHP 8.3:
Bash:
Expand Collapse Copy
sudo dnf module enable php:remi-8.3
Затем установите непосредственно PHP:
Bash:
Expand Collapse Copy
sudo dnf install php php-fpm php-mysqlnd
Поскольку PHP работает через PHP-FPM, следующей командой запустите службу PHP-FPM:
Bash:
Expand Collapse Copy
sudo systemctl start php-fpm
Затем установите её в автозапуск:
Bash:
Expand Collapse Copy
sudo systemctl enable php-fpm
Состояние службы можно посмотреть с помощью команды:
Bash:
Expand Collapse Copy
systemctl status php-fpm
1-13.png


Следующей командой можно вывести на экран версию PHP:
Bash:
Expand Collapse Copy
php -v
1-2.png

Тестирование работы PHP​

Чтобы протестировать работу PHP, перейдите к директории /usr/share/nginx/html/:
Bash:
Expand Collapse Copy
cd /usr/share/nginx/html
И там создайте файл info.php:
Bash:
Expand Collapse Copy
sudo touch info.php
После чего откройте созданный файл при помощи текстового редактора vi:
Bash:
Expand Collapse Copy
sudo vi info.php
И внесите в него следующий текст:


PHP:
Expand Collapse Copy
<?php
phpinfo();
?>
Затем закройте файл, сохранив внесённые в него изменения, после чего проверьте конфигурацию Nginx на наличие ошибок:
Bash:
Expand Collapse Copy
sudo nginx -t
Если ошибок нет, вывод команды будет выглядеть следующим образом:
1-14.png

После чего перезапустите Nginx:
Bash:
Expand Collapse Copy
sudo systemctl restart nginx
Затем откройте браузер и перейдите по адресу , где замените X.X.X.X на IP-адрес своего сервера. В результате браузер должен отобразить тестовую страницу PHP.
1-3.png

После тестирования рекомендуется удалить файл info.php по соображениям безопасности:
Bash:
Expand Collapse Copy
cd /usr/share/nginx/html
sudo rm info.php

Запуск сайта​

Чтобы разместить на сервере страницу сайта, перейдите в каталог /etc/nginx/conf.d/:
Bash:
Expand Collapse Copy
cd /etc/nginx/conf.d
Где создайте новый конфигурационный файл Nginx. В данном случае замените your-domain.host на доменное имя своего сайта:
Bash:
Expand Collapse Copy
sudo touch your-domain.host.conf
Откройте созданный файл для редактирования
Bash:
Expand Collapse Copy
sudo vi your-domain.host.conf
После чего добавьте в файл следующий блок, где также замените your-domain.host на доменное имя сайта:
Код:
Expand Collapse Copy
server {
    listen 80;
    server_name your-domain.host www.your-domain.host;

    root /var/www/your-domain.host;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}
Сохраните внесённые в файл изменения, закройте его и перейдите в директорию /var/www/:
Bash:
Expand Collapse Copy
cd /var/www
В данной директории создайте каталог с именем, соответствующим доменному имени размещаемого сайта:
Bash:
Expand Collapse Copy
sudo mkdir -p your-domain.host
Установите права доступа на созданный каталог:
Bash:
Expand Collapse Copy
sudo chown -R nginx:nginx your-domain.host
sudo chmod -R 755 your-domain.host
Затем перейдите в данный каталог:
Bash:
Expand Collapse Copy
cd /var/www/your-domain.host
И там создайте файл стартовой страницы сайта:
Bash:
Expand Collapse Copy
sudo touch index.php
Откройте файл index.php для редактирования:
Bash:
Expand Collapse Copy
sudo vi index.php
В нашем примере стартовая страница будет сформирована при помощи следующего кода:
PHP:
Expand Collapse Copy
<p>Ваш сайт - your-domain.host</p>
<p>Сайт <b>your-domain.host</b> размещён на CentOS Stream 9</p>
После чего закройте файл, сохранив изменения, и проверьте синтаксис Nginx:
Bash:
Expand Collapse Copy
sudo nginx -t
Перезапустите службу Nginx, если предыдущая команда не выявила никаких ошибок:
Bash:
Expand Collapse Copy
sudo systemctl restart nginx
В итоге вы уже сможете открыть страницу сайта, перейдя по адресу http://your-domain.host, где замените your-domain.host на имя своего сайта.

Установка SSL-сертификата (опционально)​

Чтобы обеспечить безопасность сайта, рекомендуется настроить для него SSL-сертификат. Для получения бесплатного сертификата можно использовать Let’s Encrypt. Для этого установите пакет Certbot, который позволяет автоматизировать получение SSL-сертификата, и плагин python3-certbot-nginx:
Bash:
Expand Collapse Copy
sudo dnf install certbot python3-certbot-nginx
Выполните следующую команду для получения сертификата для вашего домена, где замените your-domain.host на доменное имя своего сайта.
Во время выполнения Certbot попросит вас выбрать вариант перенаправления HTTP на HTTPS.
Рекомендуется выбрать вариант с автоматическим перенаправлением.
Bash:
Expand Collapse Copy
sudo certbot --nginx -d your-domain.host -d www.your-domain.host
Сертификаты Let’s Encrypt действительны 90 дней, но их можно автоматически обновлять с помощью cron:
Bash:
Expand Collapse Copy
sudo crontab -e
Для автоматического обновления вставьте следующую строку:
Bash:
Expand Collapse Copy
0 0 * * * /usr/bin/certbot renew --quiet
После чего добавьте в брандмауэр разрешающее правило для протокола HTTPS:
Bash:
Expand Collapse Copy
sudo firewall-cmd --permanent --add-service=https
Затем перезапустите конфигурацию брандмауэра:
Bash:
Expand Collapse Copy
sudo firewall-cmd --reload
На данном этапе вы уже сможете протестировать доступность страницы сайта при помощи подключения с использованием протокола HTTPS.
1-4.png

Теперь, когда мы разобрали, как установить LEMP на CentOS Stream 9, вы можете загрузить файлы вашего сайта в директорию, соответствующую каталогу /var/www/your-domain.host в нашем примере. Для загрузки контента на сервер используйте SFTP, SCP или другие методы.
Об авторе
Volshebnik
Не чего не скажу

Информация о статье

Автор
Volshebnik
Время прочтения статьи
6 мин. чтение
Просмотры
30
Последнее обновление

Подробнее в Общее

Поделиться этой статьей

Назад
Верх