Как установить Linux, Nginx, MariaDB, PHP (LEMP stack) на Debian 10

Введение.

В качестве основных составляющих будут использоваться:

  • Linux – дистрибутив Debian 10.
  • Nginx – веб-сервер ( nginx.org ).
  • MariaDB – активный форк СУБД MySQL ( mariadb.org ).
  • PHP – интерпретатор *.php файлов.

Перед установкой необходимо обновить пакеты:

sudo apt update

Шаг первый – установка веб-сервера Nginx.

Установим веб-сервер командой:

sudo apt install nginx nginx-extras

пакет nginx-extras необходим для того чтобы можно было использовать функции замены заголовков, например с помощью add_header отдавать вместо имени вашего веб-сервера (по умолчанию отдает nginx и его версию), что-нибудь другое, например кличку вашей кошки.

Шаг второй – установка базы данных MariaDB (fork MySQL).

Установим базу данных командой:

sudo apt install mariadb-server

по окончанию установки завершим первоначальную настройку базы данных командой:

sudo mysql_secure_installation

Шаг третий – установка интерпретатора PHP.

Установим PHP для работы с Nginx и MySQL командой:

sudo apt install php-fpm php-mysql

Шаг четвертый – настроим Nginx для работы с интерпретатором PHP.

Перед тем как начать редактировать файл конфигурации Nginx давайте создадим директорию будущего корня веб-сайта, т.е. папку в которой будут лежать файлы сайта:

sudo mkdir /var/www/название_сайта

Не забываем назначить владельца, группу и права на папку и её содержимое командами:

sudo chown -R www-data:www-data /var/www/название_сайта
sudo chmod -R 755 /var/www/название_сайта

Далее создадим файл конфигурации для Nginx с помощью редактора nano следующей командой:

sudo nano /etc/nginx/sites-available/название_сайта

Далее необходимо в этот файл добавить минимальную конфигурацию для работы веб-сервера:

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

    root /var/www/название_сайта;
    index index.php index.html index.htm;

    server_name название_сайта;

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

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

Для того чтобы сохранить файл необходимо нажать CTRL + X и согласиться на сохранение изменений.

Чтобы веб-сервер подгрузил файл конфигурации необходимо выполнить два действия.

Первое действие. Добавить в файл конфигурации в активные конфигурации командой:

sudo ln -s /etc/nginx/sites-available/название_сайта /etc/nginx/sites-enabled/

Второе действие. Перезагрузить веб-сервер Nginx следующей командой:

sudo systemctl restart nginx.service

перед перезагрузкой веб-сервера можно проверить правильность его конфигурации командой:

nginx -t

в случае отсутствия ошибок вы увидите следующие строки:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Шаг пятый – установка и настройка бесплатного SSL сертификата от Lets Encrypt (опциональный шаг).

Установим certbot следующей командой:

sudo apt install -y certbot

Откроем файл конфигурации нашего сайта:

sudo nano /etc/nginx/sites-available/название_сайта

Добавим перед последней закрывающей фигурной скобкой } следующий блок:

location ^~ /\.well-known {
		allow all;
	}

В итоге у нас должен получиться такой файл конфигурации:

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

    root /var/www/название_сайта;
    index index.php index.html index.htm;

    server_name название_сайта;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
    location ^~ /\.well-known {
        allow all;
    }
}

Далее перезапустим веб-сервер:

sudo systemctl restart nginx.service

Оставьте комментарий