Введение.
В качестве основных составляющих будут использоваться:
- 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