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