Для установки WordPress необходимо чтобы на сервере установлены следующие компоненты:
- PHP версии 8.2 или выше
- MySQL 8.0, 8.4 или MariaDB 10.11, 11.4
- Web-Сервер Nginx или Apache
Установить данные компоненты можно с помощью следующей команды:
apk add php84-fpm php84-cgi php84-mysqli php84-curl php84-dom php84-exif php84-fileinfo php84-pecl-imagick php84-mbstring php84-zip php84-gd php84-iconv php84-intl php84-xml php84-cli php84-simplexml pcre nginx certbot certbot-nginx mariadb mariadb-client
После этого необходимо настроить php-fpm таким образом, чтобы его запуск осуществлялся из под пользователя Nginx. Сделать это можно, изменив группу и пользователя в файле /etc/php84/php-fpm.d/www.conf, необходимо изменить данные строчки:
user=nobody
group=nobody
на эти:
user=nginx
group=nginx
Далее добавляем Nginx и php-fpm в автозапуск:
rc-update add nginx
rc-update add php-fpm84
И запускаем их:
rc-service nginx start
rc-service php-fpm84 start
Для запуска базы данных MariaDB необходимо сначала создать её файлы. По документации Alpine Linux сделать это можно с помощью данной команды:
mariadb-install-db --user=mysql --datadir=/var/lib/mysql
После данных действий запускаем добавляем MariaDB в автозапуск и запускаем её:
rc-update add mariadb
rc-service mariadb start
В директории /etc/nginx/http.d/ создаем конфигурационный файл wordpress.conf со следующим содержимым:
server {
listen 80;
server_name example.ru www.example.ru;
root /var/www/wordpress;
index index.php;
location / {
try_files $uri $uri/ /index.php$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
location ~ /\. {
deny all;
}
location ~ \.(js|css|png|jp?eg|gif|ico)$ {
expires 30d;
}
}
Где вместо example.ru используем своё доменное имя. Данный пример конфигурациооного файла был взят из официальной документации WordPress. Необного о правилах, используемых в конфигурационном файле. Следующее правило необходимо для запрета выполнения скриптов в директориях uploads и files:
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
Правило ниже действует аналогично и запрещает доступ к скрытым файлам (которые начинаются с точки):
location ~ \.(js|css|png|jp?eg|gif|ico)$ {
expires 30d;
}
Следующий блок указывает, сколько будут кэшироваться в браузере файлы формата js, css, png, jpeg, gif, ico:
location ~ \.(js|css|png|jp?eg|gif|ico)$ {
expires 30d;
}
После создания файла /etc/nginx/http.d/wordpress.conf перечитываем все конфигурационные файлы Nginx с помощью следующей команды:
nginx -s reload
Далее переходим в директорию /var/www, скачиваем дистрибутив WordPress и распаковываем его:
wget https://wordpress.org/latest.zip
unzip latest.zip
Меняем владельца всех файлов WordPress с root на nginx, чтобы WordPress мог их читать и менять в случае необходимости:
chown -R nginx:nginx /var/www/wordpress
Следующим шагом необходимо создать базу данных для WordPress. Для этого подключаемся к серверу баз данных:
mariadb
После чего создаем пользователя базы данных:
create user 'wordpress'@'localhost' IDENTIFIED BY 'password';
Где вместо password — ваш пароль. Далее создаем саму базу данных:
create database wordpress;
И предоставляем доступы к базе данных пользователю wordpress@localhost:
grant all on wordpress.* to 'wordpress'@'localhost';
После отключаемся от сервера баз данных. Сделать это можно введя в командной строке MariaDB \q.
Далее необходимо проверить, что по вашему домену открывается WordPress. Для этого введите в браузере ваш домен и если вы видите установку WordPress как на изображении, значит всё сделано верно.

После этого можно выпустить бесплатный SS Let’s Encrypt сертификат с помощью команды:
certbot --nginx -n -m admin@example.ru --agree-tos -d www.example.ru -d example.ru
Данная команда выпустит SSL-сертификат и автоматически сделает перенаправление с HTTP на HTTPS. Сертификат действует 90 дней, после чего его необходимо будет перевыпустить с помощью команды:
certbot renew --nginx
В качестве альтернативы вы можете настроить Crontab таким образом, чтобы сертификат выпускался автоматически каждые 2-3 месяца. Информацию про настройку Crontab вы можете прочитать в официальной Wiki Alpine Linux.