Пост

Установка NGINX и PHP-FPM в Debian 10

PHP-FPM — это разновидность Server API (SAPI) для PHP, отвечающая за управление процессами PHP с целью ускорения и Improve stability при использовании в сценариях, требующих высокой производительности и масштабируемости. PHP-FPM отличается от традиционного использования PHP с Apache тем, что он работает как standalone процесс, не требующий веб-сервера для запуска. Вместо этого, он взаимодействует Directly с web-сервером Nginx или IIS для обработки запросов.

Обновляемся

1
$ sudo apt update

Устанавливаем NGINX

1
$ sudo apt install nginx

Если у вас не установлен файерволл UFW, то установим его

1
$ sudo apt install ufw

Открываем 80 порт в файерволле и перезагружаем

1
2
$ sudo ufw allow 'Nginx HTTP'
$ sudo ufw reload

Проверяем статус

1
2
3
4
5
6
7
8
$ sudo ufw status
Status: active
To                         Action      From
-- ------ ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Чтобы открыть и 80 и 443 порт, т.е. http и https надо выполнить команду

1
$ sudo ufw allow 'Nginx FULL'

Устанавливаем PHP-FPM

Поскольку Nginx не содержит нативную обработку PHP, нам нужно установить fpm, что означает «менеджер процессов fastCGI». Мы скажем Nginx передать PHP-запросы этому программному обеспечению для обработки

1
$ apt install php-fpm

Если требуются дополнительные модули, установим их

1
$ apt install php-mysql php-bcmath php-ctype php-json php-mbstring php-pdo php-tokenizer php-xml php-curl

Настраиваем Nginx

Создадим каталоги для сайта и логов

1
$ sudo mkdir -p /var/www/%site_name%/{htdocs,logs}

Теперь создадим файл с конфигурацией для виртуального хоста в Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ sudo nano /etc/nginx/sites-available/%site_name%.conf
server {
    listen 80;
    listen [::]:80;

    root $root_path;
    set $root_path /var/www/%site_name%/htdocs;
    set $php_sock unix:/var/run/php/php7.3-fpm.sock;
    index index.php index.html index.htm;

    server_name %site_name%;

    access_log /var/www/%site_name%/logs/access.log;
    error_log /var/www/%site_name%/logs/error.log;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass $php_sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Делаем сим линк, что бы подключить виртуальный хост

1
$ sudo ln -s /etc/nginx/sites-available/%site_name%.conf /etc/nginx/sites-enabled/

Проверяем конфигурацию Nginx, что бы убедиться, что в ней нет ошибок

1
2
3
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапускаем Nginx и PHP-FPM

1
$ systemctl restart nginx php7.3-fpm

Добавляем имя нашего сайта в файл /etc/hosts

1
2
$ sudo nano /etc/hosts
127.0.0.1    %site_name%
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.