Установка:
1 2 3 4 5 6 7 |
sudo apt update sudo apt install nginx apt install mysql-server sudo mysql_secure_installation apt install php-fpm php-mysql |
Пример простого конфига:
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 26 27 28 29 30 31 32 33 34 35 |
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:
1 2 3 |
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx |