Настройка PHP-FPM в Nginx на Ubuntu 22.04

Скачать Настройка PHP-FPM в Nginx на Ubuntu 22.04
Сейчас ищут:

Itnull

Команда форума
Администратор
Регистрация
22.05.13
Сообщения
24.869
Реакции
8.642
Веб-сайт
itnull.me
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1
Nginx – это веб-сервер, используемый для обслуживания запросов для сайта. Он может использоваться в качестве обратного прокси, почтового прокси, HTTP-кэша или балансировщика нагрузки. Nginx – это бесплатное программное обеспечение с открытым исходным кодом, которое можно настроить с помощью PHP-модуля PHP-fpm и улучшить загрузку сайта и обработать огромное количество трафика.

Настройка PHP-fpm с Nginx на Ubuntu 22.04 – это очень простой и понятный процесс, который может занять до 15 минут. Давайте начнем!

Шаг 1. Обновление системы​

Свежая установка Ubuntu 22.04 нуждается в обновлении системы, поэтому нам необходимо выполнить следующие команды.



Код:
sudo apt update -y && sudo apt upgrade -y

Шаг 2. Установите веб-сервер Nginx​

Веб-сервер Nginx можно установить с помощью следующей команды:

Код:
sudo apt install nginx -y
После завершения установки запустите и включите службу Nginx:

Код:
sudo systemctl start nginx && sudo systemctl enable nginx

Шаг 3. Установка PHP-FPM​

Следующим шагом будет установка расширения php-fpm вместе с другими расширениями php.

Код:
sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https -y
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt update
После установки зависимостей мы готовы к установке PHP-FPM.

Код:
sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-mbstring php8.1-xml php8.1-curl
После установки запустите и включите php8.1-fpm.service

Код:
sudo systemctl start php8.1-fpm.service && sudo systemctl enable php8.1-fpm.service
Чтобы проверить, все ли в порядке, выполните следующую команду:

Код:
sudo systemctl status php8.1-fpm.service
Вы должны получить следующее сообщение:
Код:
php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
Loaded: загружен (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-09-10 15:31:29 CEST; 1min 52s ago
Docs: man:php-fpm8.1(8)
Main PID: 16869 (php-fpm8.1)
Status: "Процессы активны: 0, простаивают: 2, Запросы: 0, медленный: 0, Трафик: 0req/sec"
Задачи: 3 (limit: 4575)
Memory: 8.9M
CPU: 482ms
CGroup: /system.slice/php8.1-fpm.service

Шаг 4. Настройка PHP-FPM с Nginx​

Мы должны создать файл виртуального хоста нашего доменного имени. Зайдите в каталог конфигурации Nginx и создайте файл.

Код:
cd /etc/nginx/conf.d/ && sudo nano yourdomain.com.conf
Вставьте следующие строчки кода.
Код:
server {
         listen       80;
         server_name  yourdomain.com;
         root         /var/www/html/;

         access_log /var/log/nginx/yourdomain.com-access.log;
         error_log  /var/log/nginx/yourdomain.com-error.log error;
         index index.html index.htm index.php;

         location / {
                      try_files $uri $uri/ /index.php$is_args$args;
         }

         location ~ .php$ {
            fastcgi_split_path_info ^(..php)(/.)$;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
}
Проверьте синтаксис конфигурации Nginx, чтобы убедиться, что он в порядке.

Код:
nginx -t
Вы должны получить следующий результат:

Код:
root@vps:/etc/nginx/conf.d# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите службу Nginx.

Код:
sudo systemctl restart nginx
Далее необходимо создать пользовательский пул в конфигурации PHP8.1-FPM. Расположение конфигураций пула – * /etc/php/8.1/fpm/pool.d* Конфигурация пула по умолчанию – www.conf, но мы не будем вносить изменения в этот файл, поскольку рекомендуется использовать отдельные файлы для каждой новой конфигурации и сайта.

Сначала нам нужно создать группу и пользователя, затем добавить пользователя в группу
Код:
groupadd php_fpm_group
useradd -g php_fpm_group php_fpm_user
Следующее, нам нужно создать конфигурацию пула для сайта.

Код:
cd /etc/php/8.1/fpm/pool.d && touch yourdomain.conf
Откройте файл yourdomain.conf вашим любимым редактором и вставьте следующие строки кода:
Код:
[имя_пула]
user = php_fpm_user
group = php_fpm_group
listen = /var/run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.process_idle_timeout = 20s
Поясним параметры в созданном выше файле:

Имя пула должно быть специфичным для каждой новой конфигурации пула. user и group должны быть созданными пользователем и группой для нашего сайта, а listen.owner и listen.group – пользователем и группой, под которыми работает Nginx. listen – это путь к sock-файлу PHP8.1.

Параметр

  • pm.max_children предназначен для установки максимального количества потомков, которые могут быть запущены одновременно.
  • pm.start_servers – количество дочерних серверов, создаваемых при запуске.
  • pm.process_idle_timeout используется только в том случае, если pm установлен в значение dynamic и представляет собой число желаемых максимальных незанятых серверных процессов. Значение pm=dynamic означает, что количество дочерних процессов устанавливается динамически на основе следующих директив.
Помните, что эта конфигурация может быть другой в зависимости от ресурсов вашего сервера и потребностей сайта.

Последним шагом будет создание файла phpinfo.php в корневой директории вашего сайта.

Код:
cd /var/www/html/ && sudo nano phpinfo.php
Открыв файл, вставьте следующие строки кода:

Код:
<? php
phpinfo();
?>
Сохраните файл, закройте его и откройте следующий URL: http://yourdomain.com/phpinfo.php

В Environment и PHP Variables вы можете заметить, что USER и HOME установлены в php_fpm_user и /home/php_fpm_user, соответственно. Это является доказательством того, что PHP-FPM успешно сконфигурирован с Nginx.
 
Назад
Сверху Снизу