Linux

Установка и настройка LEMP (nginx,mysql,php-fpm)

Минимальная настройка LEMP в Debian/Ubuntu

Первое, это обновим индекс пакетов.

Проверить и если нет то дописать в файл /etc/apt/sources.list

deb https://packages.sury.org/php/ stretch main

deb-src https://packages.sury.org/php/ stretch-updates main contrib

 

Или можно выполнить командами:

wget -q https://packages.sury.org/php/apt.gpg -O- |

sudo apt-key add - echo "deb https://packages.sury.org/php/ stretch main" |

sudo tee /etc/apt/sources.list.d/php.list

 

sudo apt-get update

sudo apt-get upgrade

 

Если появилась подобная ошибка:

Reading package lists... Done

The method driver /usr/lib/apt/methods/https could not be found.

 

Выполнить команду:

sudo apt-get install ca-certificates apt-transport-https

Еще раз обновляем.

 

Установим nginx

sudo apt-get install nginx

Теперь проверим, что nginx доступен по URL, откроем в браузере наш IP адрес. Приветствие от NGINX.

Далее, установим MySQL

sudo apt-get install mysql-server

Проверим работу и доступ к MySQL

mysql -u root -p

Установим PHP-FPM и модуль для работы с MySQL

sudo apt-get install php-fpm php-mysql

На текущий момент установилась версия 7.2

Отредактируем конфиг PHP-FPM

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

Устанавливаем cgi.fix_pathinfo в 0 (устранение уязвимости исполнения файлов)

cgi.fix_pathinfo=0

Перезапустим обработчик PHP-FPM

sudo service php7.2-fpm restart

Отредактируем default config файл nginx

sudo nano /etc/nginx/sites-available/default // Редактируем:

index index.php index.html index.htm;

location ~ \\.php$

{

fastcgi_pass unix:/run/php/php7.2-fpm.sock;

include fastcgi_params;

include snippets/fastcgi-php.conf;

}

location ~ /\\.ht {

deny all;

}

// Тестируем на ошибки sudo nginx -t

// Перезапуск sudo service nginx restart

Готово.

Финальный тест. Создадим файл для проверки PHP в корневой директории сайта

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

Установить дополнительные модули К примеру, mbstring, xml и тд:

apt-get install php7.2-mbstring php7.2-xml php7.2-curl php7.2-zip php7.2-gd

Настроем ЧПУ

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

try_files $uri $uri/ /index.php?q=$uri&$args;

}

Оф. руководство Nginx + PHP-FPM + MySQL для Ubuntu

http://help.ubuntu.ru/wiki/nginx-phpfpm http://help.ubuntu.ru/wiki/mysql

Администратор

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