Web

Как установить LEMP на Debian 10 Buster

Аббревиатура LEMP расшифровывается как Linux, Nginx, MariaDB / MySQL и PHP. Все эти компоненты с открытым исходным кодом и бесплатны для использования. Набор компонентов позволяет размещать в сети веб-сайты и другие веб-приложения. В этой статье рассмотрим как установить и настроить LEMP на Debian 10 Buster.

В качестве сервера баз данных мы будем использовать MariaDB, так как она по многочисленным тестам показывает более высокую производительность. К тому же во многих новых дистрибутивах Linux по умолчанию используется именно MariaDB, в том числе и в Debian 10.

Установка LEMP на Debian 10 Buster

Перед началом установки рекомендуем обновить репозиторий и системные компоненты.

sudo apt update && sudo apt -y upgrade

Шаг 1. Установка вебсервера Nginx

Роль вебсервера в нашем стеке будет играть высокопроизводительный и нетребовательный к ресурсам Nginx. Для его установки введите следующую команду:

sudo apt install nginx

После установки сервер запустится автоматически. Проверить его состояние можно командой:

systemctl status nginx

Надпись Active: active (running) означает что сервер запущен и работает. Если по какой-то причине автозапуск не сработал, запустите его вручную:

sudo systemctl start nginx

Добавим сервер в автозагрузку, для того чтобы он запускался при загрузке ОС:

sudo systemctl enable nginx

Проверим версию:

sudo nginx -v

Вывод будет примерно следующим:

nginx version: nginx/1.14.2

Теперь введите IP-адрес вашего сервера или VPS в адресной строке браузера. Если сервер работает правильно, вы увидите приветственную надпись «Welcome to nginx». Если вы устанавливаете LEMP на локальный компьютер, в браузере нужно ввести 127.0.0.1 или localhost.

Если вы видите ошибку, возможно ваш брэндмауэер запрещает входящие запросы на TCP-порт 80. Открыть этот порт в фаерволе iptables можно следующей командой:

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Если вы используете UFW firewall, введите эту команду:

sudo ufw allow http

Теперь нам нужно пользователя Nginx по умолчанию www-data, сделать владельцем корневой директории (web root), которая находится по адресу /usr/share/nginx/html. По умолчанию владельцем этой директории является пользователь root.

 sudo chown www-data:www-data /usr/share/nginx/html/ -R

Шаг 2. Установка сервера баз данных MariaDB.

Для установки MariaDB в Debian 10, никаких дополнительных репозиториев добавлять не нужно:

sudo apt install mariadb-server mariadb-client

Как и в случае с Nginx, сервер MariaDB должен запуститься сразу после установки. Проверим его статус, он должен быть active (running):

systemctl status mariadb

Если статус отличается, запустим вручную:

sudo systemctl start mariadb

И добавим в автозагрузку:

sudo systemctl enable mariadb

Установить root-пароль можно следующей командой:

sudo mysql_secure_installation

На запрос текущего пароля нажимаем Enter. Далее дважды вводим новый. После того как пароль установлен, вам предложат удалить анонимного пользователя, отключить удалённый вход в систему и удалить тестовую базу данных. В целях безопасности на все эти вопросы лучше ответить Yes.

Проверить версию MariaDB можно следующей командой:

mariadb —version

Шаг 3. Установка PHP 7.3 на Debian 10.

На момент написания этой статьи PHP 7.3 является последней стабильной версией PHP. Установим её и несколько дополнительных компонентов:

sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

Проверим версию, запустим и добавим в автозагрузку:

php --version

sudo systemctl start php7.3-fpm

sudo systemctl enable php7.3-fpm

Создание виртуальных хостов Nginx

Процесс создания виртуальных хостов в Nginx и в Apache похож. Для начала отключим виртуальный хост по умолчанию, удалив символическую ссылку из папки sites-enabled:

sudo rm /etc/nginx/sites-enabled/default

Затем создадим конфигурационный файл для нового хоста в каталоге /etc/nginx/conf.d/ с помощью любого текстового редактора, например Nano:

sudo nano /etc/nginx/conf.d/default.conf

Примерное содержимое этого файла должно быть таким:

server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html/;
index index.php index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}

location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}

# disable access to hidden files
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
}

Сохраните файл Ctrl+O и закройте Ctrl+X. Проверить правильность конфигурации можно командой:

sudo nginx -t

Если тест прошёл успешно, перезапускаем Nginx:

sudo systemctl reload nginx

Чтобы проверить работу PHP, создадим файл info.php в корневой директории хоста:

sudo nano /usr/share/nginx/html/info.php

Добавим в него следующее содержимое, затем сохраним и закроем:

<?php phpinfo(); ?>

В адресной строке браузера наберём «ваш-айпи-адрес/info.php». Если видите следующую картину, то PHP в вашем LEMP стеке работает.

 

Не забудьте удалить файл info.php

sudo rm /usr/share/nginx/html/info.php

На этом всё. LEMP на Debian 10 установлен и функционирует.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *