Как установить WordPress на сервере
Краткое руководство по поднятию WordPress на сервере, основанное на моих личных шагах. Включая настройку https протокола и базовых 301 редиректов в Nginx конфигах.
Подключение к серверу
ssh root@IP_СЕРВЕРА
Установка необходимых компонентов
apt update && apt upgrade -y
apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip unzip wget curl -y
Создаем базу данных для WordPress — подключение с localhost
Заходим в mysql
mysql -u root
По очереди указываем команды (заполните своими данными)
CREATE DATABASE название_базы DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'пользователь_базы'@'localhost' IDENTIFIED BY 'указываем_пароль_от_базы';
GRANT ALL PRIVILEGES ON название_базы.* TO 'пользователь_базы'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Если нужно, чтобы подключиться к базе можно было с любого IP, создаем пользователя с @’%’
CREATE DATABASE название_базы DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'пользователь_базы'@'%' IDENTIFIED BY 'указываем_пароль_от_базы';
GRANT ALL PRIVILEGES ON название_базы.* TO 'пользователь_базы'@'%';
FLUSH PRIVILEGES;
EXIT;
Далее открываем /etc/mysql/mysql.conf.d/mysqld.cnf и правим
bind-address = 0.0.0.0
После выполняем
systemctl restart mysql
Скачивание wordpress и настройка папки (может попросить установить unzip)
cd /var/www
wget https://wordpress.org/latest.zip
unzip latest.zip
mv wordpress твой_домен.ru
chown -R www-data:www-data /var/www/твой_домен.ru
chmod -R 755 /var/www/твой_домен.ru
Настройка и создание конфига Nginx
nano /etc/nginx/sites-available/твой_домен.ru
Далее вставляем дефолтный конфиг
server {
listen 80;
server_name твой_домен.ru твой_домен.ru;
root /var/www/твой_домен.ru;
index index.php index.html;
access_log /var/log/nginx/твой_домен.access.log;
error_log /var/log/nginx/твой_домен.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Уточни версию PHP
}
location ~ /\.ht {
deny all;
}
}
Активируй сайт и перезапусти Nginx
ln -s /etc/nginx/sites-available/твой_домен.ru /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Теперь установим SSL сертификат
apt install certbot python3-certbot-nginx -y
certbot --nginx -d твой_домен.ru -d www.твой_домен.ru
Финальный конфиг с учетом 301 редиректов и https должен выглядеть как-то так.
server {
listen 80;
server_name твой_домен.ru www.твой_домен.ru;
return 301 https://твой_домен.ru$request_uri;
}
server {
listen 443 ssl http2;
server_name твой_домен.ru;
root /var/www/твой_домен.ru;
index index.php index.html;
access_log /var/log/nginx/твой_домен.access.log;
error_log /var/log/nginx/твой_домен.error.log;
# SSL от Let's Encrypt
ssl_certificate /etc/letsencrypt/live/твой_домен.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/твой_домен.ru/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
На всякий случай еще раз перезапустить Nginx
nginx -t && systemctl reload nginx
Теперь нужно зайти на сервер в директорию var/www/твой_домен.ru и найти файл wp-config-sample.php. Скопировать этот конфиг и переименовать в wp-config.php
Заполнить данные от БД и сохранить
/** The name of the database for WordPress */
define( 'DB_NAME', 'название_базы' );
/** Database username */
define( 'DB_USER', 'пользователь_базы' );
/** Database password */
define( 'DB_PASSWORD', 'указываем_пароль_от_базы' );
Теперь нужно перейти по адресу: твой_домен.ru/wp-admin/install.php и заполнить все необходимое.
Установка WP завершена =)