Nginx — это веб-сервер, используемый для обслуживания веб-запросов на нашем веб-сайте. Его можно использовать в качестве обратного прокси-сервера, почтового прокси-сервера, кэша HTTP или балансировщика нагрузки. Nginx — это бесплатное программное обеспечение с открытым исходным кодом, которое можно настроить с помощью PHP-модуля PHP-fpm и мгновенно улучшить загрузку веб-сайта и обработать огромный объем трафика.

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

Предпосылки

  • Сервер под управлением Ubuntu 26.04
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя.

Обновите систему

Свежая установка Ubuntu 26.04 требует обновления пакетов до последних доступных версий.

1
$ sudo apt update -y && sudo apt upgrade -y

Система может нуждаться в перезагрузке после обновления.

1
sudo reboot -f

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

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

1
sudo apt install nginx

Шаг 2. Установите PHP-FPM

Далее необходимо установить расширение php-fpm вместе с другими расширениями php.

1
sudo apt install php8.5-{cli,common,curl,fpm,gd,mbstring,mysql,xml}

Вот и все, а теперь давайте отредактируем файл php.ini.

В php-fpm этот файл находится в /etc/php/8.5/fpm/php.ini. Затем введите следующее, чтобы отредактировать его:

1
sudo nano /etc/php/8.5/fpm/php.ini

Измените следующее:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
...
file_uploads = On
...
allow_url_fopen = On
...
memory_limit = 256M
...
upload_max_filesize = 100M
...
max_execution_time = 360
...
date.timezone = Europe/Moscow
... 

И сохраните файл.

Шаг 3. Настройте PHP-FPM с Nginx

Это последний и самый важный шаг, поскольку в этом абзаце мы собираемся объяснить, как настроить PHP-fpm с ранее установленным Nginx.

Нам нужно создать файл виртуального хоста, содержащий наше доменное имя. Перейдите в каталог конфигурации Nginx и создайте файл.

1
cd /etc/nginx/conf.d/ && sudo nano example.com.conf

Вставьте следующие строки кода.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
server {
            listen       80;
         server_name  example.com;
         root         /var/www/html/;

         access_log /var/log/nginx/example.com-access.log;
         error_log  /var/log/nginx/example.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.5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
    }
        }
}

Проверьте синтаксис конфигурации Nginx, чтобы убедиться, что он в порядке.

1
nginx -t

Вы должны получить следующий вывод:

1
2
3
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.

1
sudo systemctl restart nginx

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

Сначала нам нужно создать группу и пользователя, затем добавить пользователя в группу

1
2
3
4
5
6
7
sudo groupadd php_fpm_group

sudo useradd php_fpm_user -d /var/www/html/ -s /sbin/nologin

sudo useradd -g php_fpm_group php_fpm_user

sudo passwd php_fpm_user

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

1
cd /etc/php/8.5/fpm/pool.d && touch example.conf

Откройте файл example.conf в своем любимом редакторе и вставьте следующие строки кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[pool_name]
user = php_fpm_user
group = php_fpm_group
listen = /var/run/php/php8.5-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

Поясним параметры в созданном выше файле:

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

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

Помните, что эта конфигурация может отличаться в зависимости от ресурсов вашего сервера и потребностей веб-сайта.

Последнее, что нужно сделать, это создать файл phpinfo.php в корневом каталоге вашего веб-сайта.

1
cd /var/www/html/ && sudo nano phpinfo.php

Открыв файл, вставьте следующие строки кода:

1
2
3
<? php
phpinfo();
?>

Сохраните файл, закройте его и перейдите по следующему URL-адресу: http://example.com/phpinfo.php.

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

Завершение

Вот и все. Вы успешно установили и настроили php-fpm на Ubuntu 26.04.

Если вам понравился этот пост о том, как установить PHP-FPM с помощью Nginx в Ubuntu 26.04, поделитесь им с друзьями в социальных сетях. Спасибо.