WordPress как Composer-проект даёт предсказуемые версии ядра, плагинов и тем, воспроизводимый деплой и меньше ручного копирования архивов. Ниже установка на Ubuntu с Nginx, PHP-FPM и MySQL: от пакетов до первого входа в установщик в браузере.
Зачем Composer для WordPress
Composer управляет PHP-зависимостями. Ядро можно ставить пакетом johnpbloch/wordpress, плагины через wpackagist.org. В composer.lock фиксируются версии: один и тот же стек на dev и prod. Обновления осознанные, через composer update, а не «нажал кнопку в админке и уехал в отпуск».
Подготовка Ubuntu
sudo apt update sudo apt upgrade
Nginx
sudo apt install nginx sudo systemctl enable --now nginx
PHP и расширения
Для WordPress обычно нужны FPM, MySQL-драйвер, curl, gd, mbstring, xml, zip. На актуальной Ubuntu пакеты идут без жёсткой привязки к 7.4: ставьте то, что даёт репозиторий, и смотрите сокет PHP-FPM в конфиге Nginx.
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip
Сокет обычно вида /run/php/php8.x-fpm.sock. Проверьте ls /run/php/.
MySQL и база
sudo apt install mysql-server sudo mysql_secure_installation
Создайте БД и пользователя. Пароль замените на свой, не оставляйте password на проде:
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
Установка Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
composer --version
Проект WordPress через Composer
mkdir -p ~/wordpress-site && cd ~/wordpress-site composer create-project johnpbloch/wordpress .
Структура пакета обычно кладёт ядро в подкаталог (часто wordpress/) и оставляет wp-content рядом. Уточните дерево после установки и укажите правильный root в Nginx. Права: владелец PHP-FPM (часто www-data) должен читать файлы и писать в wp-content/uploads.
Конфиг Nginx
Создайте сайт, например /etc/nginx/sites-available/wordpress:
server {
listen 80;
server_name example.com www.example.com;
root /home/username/wordpress-site;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Подставьте домен, путь к document root и актуальный сокет PHP-FPM. Активация и проверка:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Завершение в браузере
Откройте сайт по HTTP (или сразу по HTTPS, если сертификат уже есть). Мастер установки WordPress попросит данные БД, те что создавали выше. После этого имеет смысл:
- Включить SSL (certbot / acme.sh) и редирект на HTTPS.
- Настроить кеш (Nginx fastcgi_cache, Redis object cache, плагин по задаче).
- Плагины и темы подключать через Composer и wpackagist, а не только из админки.
Итог: Ubuntu + Nginx + PHP-FPM + MySQL + composer create-project johnpbloch/wordpress дают контролируемую установку. Следующий шаг управление плагинами как пакетами Composer (отдельный разбор на сайте).

