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

NGINX + PHP-FPM

PHP-FPM — это аль­тер­на­тив­ная реа­ли­за­ция PHP FastCGI с несколькими допол­ни­тель­ными воз­мож­но­стя­ми, которые обычно исполь­зу­ются для высо­ко­на­гру­жен­ных сайтов.

Обновляемся

user@debian:~# sudo apt update

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

user@debian:~# sudo apt install nginx

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

user@debian:~# sudo apt install ufw

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

user@debian:~# sudo ufw allow 'Nginx HTTP'
user@debian:~# sudo ufw reload

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

user@debian:~# 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 надо выполнить команду

user@debian:~# sudo ufw allow 'Nginx FULL'

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

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

user@debian:~# apt install php-fpm

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

user@debian:~# apt install php-mysql php-bcmath php-ctype php-json php-mbstring php-pdo php-tokenizer php-xml php-curl

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

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

user@debian:~# sudo mkdir -p /var/www/%site_name%/{htdocs,logs}

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

user@debian:~# 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;
    }
}

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

user@debian:~# sudo ln -s /etc/nginx/sites-available/%site_name%.conf /etc/nginx/sites-enabled/

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

user@debian:~# 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

user@debian:~# systemctl restart nginx php7.3-fpm

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

user@debian:~# sudo nano /etc/hosts
127.0.0.1    %site_name%

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.