Nginx, MySQL, PHP (LEMP) в Ubuntu

NGINX

$ sudo apt-get update
$ sudo apt-get install nginx

Проверяем:

http://192.168.0.1

Должны увидеть:

Welcome to nginx!
If you see this page, the nginx web server is successfully installed and 
working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.
Thank you for using nginx.

MySQL

apt install mysql-server

После установки выполняем

mysql_secure_installation

плагин VALIDATE PASSWORD PLUGIN можно не включать, а на все вопросы ответить Y – при этом удалятся тестовые базы и пользователи, удаленный вход для рута.

PHP-FPM

apt install php-fpm php-mysql

После установки компонентов PHP настроим их для повышения безопасности нашего веб-сервера.

Откроем конфигурационный файл php-fpm с привилегиями root:

sudo nano /etc/php/7.0/fpm/php.ini

Найдём в этом файле параметр cgi.fix_pathinfo. Он будет закомментирован точкой с запятой (;) и будет иметь значение “1” по умолчанию.

Эти настройки по умолчанию очень небезопасны, потому что благодаря им PHP попытается исполнить ближайший файл, который сможет найти в случае, когда запрашиваемый PHP файл не может быть найден. Это позволит пользователям сформировать PHP запросы таким образом, чтобы запускать скрипты, к которым у них не должно быть доступа.

Мы можем предотвратить такое поведение раскомментировав эту строку и изменив её значение на “0“.

Перезапускаем

systemctl restart php7.1-fpm

Настройка Nginx для работы с PHP-FPM

Настроим Nginx для использования нашего обработчика PHP для отображения динамического контента.

Мы сделаем это на уровне серверных блоков (серверные блоки являются приблизительным аналогом виртуальных хостов в Apache). Откроем серверный блок Nginx сервера по умолчанию:

sudo nano /etc/nginx/sites-available/default

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name 192.168.0.1;

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

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

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

Проверьте ваш файл конфигурации на наличие ошибок командой:

sudo nginx -t

и перезапускаем

sudo systemctl reload nginx

ПРОВЕРКА

Создадим файлик

sudo nano /var/www/html/info.php

<?php
     phpinfo();
?>

И проверяем набрав в браузере:

http://домен_или_IP_адрес_сервера/info.php

 

 

image_pdfimage_print

Leave a Reply

Your email address will not be published. Required fields are marked *