Установка:
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