Установка WordPress через Composer на Ubuntu с Nginx

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 (отдельный разбор на сайте).

Источники и ссылки


Комментарии загружаются…