Настройка LEMP-сервера
LEMP = Linux Engine-X (nginx) MySQL PHP.
Настройка выполняется на хосте web.
Настройка NGINX
- Установите nginx:
apt-get install nginx
- Создайте директорию для размещения файлов сайта:
mkdir /var/www/web
- Создайте новый конфиг для сайта web.lab.lan:
nano /etc/nginx/sites-available/web.lab.lan
server {
listen 80;
root /var/www/web;
index index.php index.html index.htm;
server_name web.lab.lan;
location / {
try_files $uri $uri/ =404;
}
}
- Создайте символьную ссылку на новый конфиг:
ln -s /etc/nginx/sites-available/web.lab.lan /etc/nginx/sites-enabled/web.lab.lan
- Протестируйте конфиг на наличие синтаксических ошибок:
nginx -t
- Перезапустите демон nginx:
systemctl restart nginx
Настройка MySQL
- Найдите в кэше репозиториев пакет для установки сервера
mysql
и установите его. - Подключитесь к консоли СУБД командой
mysql
и задайте пароль для mysql-пользователя root.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'specialist';
mysql> quit;
- Финализируйте установку командой
mysql_secure_installation
Настройка php-fpm
- Установите пакеты:
apt install php-fpm php-mysql
- Найдите в системе файл сокета php-fpm.
find / -name *fpm.sock
- Отредактируйте конфиг nginx будущего сайта, добавив ещё одну секцию location:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:<путь к сокету php-fpm>;
}
- Создайте в директории будущего сайта файл info.php со следующим содержимым:
<?php
phpinfo();
?>
- Откройте в браузере windows-машины адрес http://web.lab.lan/info.php
Установка CMS Wordpress
- В директорию сайта скачайте последнюю версию CMS WordPress и распакуйте ее:
wget https://wordpress.org/latest.zip
unzip latest.zip
- Переместите распакованные файлы в директорию сайта и смените владельца файлов:
mv wordpress/* /var/www/web/
chown -R www-data:root /var/www/
- Добавьте в конфиг nginx (в первый блок location) сниппет для WP, после чего перезапустите nginx:
location / {
try_files $uri $uri/ =404;
if (!-e $request_filename) {
rewrite ^.+/?(/wp-.*) $1 last;
rewrite ^.+/?(/.*\.php)$ $1 last;
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
- Подключитесь к СУБД mysql и создайте пустую БД:
mysql -uroot -p
mysql> CREATE DATABASE wordpress;
mysql> quit;
- Перейдите на сайт http://web.lab.lan/ и следуйте инструкциям по установке.
Настройка работы по HTTPS
- В консоли машины web создайте самоподписанный сертификат:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/web.key -out /etc/ssl/certs/web.crt
- Отредактируйте конфиг /etc/nginx/sites-available/web.lab.lan:
listen 443 ssl;
...
ssl_certificate /etc/ssl/certs/web.crt;
ssl_certificate_key /etc/ssl/private/web.key;
- Протестируйте конфигурацию и перезапустите nginx.
- Добавьте редирект с http на https:
server {
listen 80;
server_name web.lab.lan;
return 301 https://web.lab.lan;
}