Рубрики
apache \ nginx

nginx LEMP debian / ubuntu

Установка:

sudo apt update
sudo apt install nginx

apt install mysql-server
sudo mysql_secure_installation

apt install php-fpm php-mysql


Пример простого конфига:

nano /etc/nginx/sites-available/example.com
-------------------------------------------
server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name example.com;

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

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}
-------------------------------------------

listen — определяет, что будет прослушивать порт Nginx. 
         В данном случае он будет прослушивать порт 80, используемый по умолчанию для протокола HTTP.
root — определяет корневой каталог документа, где хранятся файлы, обслуживаемые сайтом.
index — задает для Nginx приоритет обслуживания файлов с именем index.php (при наличии) при запросе файла индекса.
server_name — определяет, какой серверный блок должен использоваться для заданного запроса вашего сервера. 
              Эта директива должна указывать на доменное имя или публичный IP-адрес вашего сервера.
location / — первый блок расположения включает директиву try_files, которая проверяет наличие файлов, соответствующих запросу URI. 
             Если Nginx не сможет найти соответствующий файл, будет возвращена ошибка 404.
location ~ \.php$ — этот блок расположения отвечает за фактическую обработку PHP посредством указания Nginx на файл конфигурации fastcgi-php.conf и файл php7.2-fpm.sock file, 
                    который объявляет, какой сокет ассоциирован с php-fpm.
location ~ /\.ht — последний блок расположения отвечает за файлы .htaccess, которые Nginx не обрабатывает. 
                   При добавлении директивы deny all из файлов .htaccess в корневой каталог документа они не будут выводиться посетителям.

Включение настроенного конфига на примере default:


sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx