Установка 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
Добавить комментарий

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