WordPress
1. Проєкт і файли
- Створіть проєкт з обробником PHP, кореневий каталог
public. Домен додайте одразу — інсталятор відкривається за ним. - Завантажте WordPress у «Терміналі» (кілька секунд):
Українська збірка:curl -L -o wp.zip https://wordpress.org/latest.zip unzip -q wp.zip rm -rf public && mv wordpress public rm wp.ziphttps://uk.wordpress.org/latest-uk.zip. Або розпакуйте архів на комп’ютері і завантажте вміст папкиwordpressуpublicчерез SFTP. - Створіть базу: «Бази даних» → «База для цього проєкту» (з користувачем). Запишіть хост, порт, ім’я бази, користувача і пароль.
https://github.com/WordPress/WordPress.git, гілка версії (наприклад, 6.8-branch), каталог public. Завантаження і wp-config.php деплой не чіпає, бо їх немає в репозиторії.2. Встановлення
Відкрийте https://ваш-домен/ — запуститься інсталятор. У полі Хост бази даних укажіть хост:порт із картки бази (не localhost), далі ім’я бази, користувача і пароль. Інсталятор сам запише wp-config.php: файли належать користувачу проєкту, окремі права не потрібні.
3. HTTPS за проксі
TLS завершує проксі панелі, а до контейнера запит приходить по HTTP — але вебсервер контейнера передає PHP ознаки захищеного з’єднання ($_SERVER['HTTPS'], SERVER_PORT), тож WordPress бачить HTTPS сам: ні блоку з HTTP_X_FORWARDED_PROTO, ні плагіна для проксі не потрібно. Варто лише закріпити адресу сайту з https://, щоб вона не залежала від того, як відкривали інсталятор, — у public/wp-config.php вище рядка /* That's all, stop editing! */ (через «Файли» або SFTP):
define('WP_HOME', 'https://ваш-домен');
define('WP_SITEURL', 'https://ваш-домен');
Якщо домен за Cloudflare, у Cloudflare SSL/TLS поставте режим Full.
4. Постійні посилання, завантаження, cron
- Постійні посилання працюють одразу: неіснуючі адреси вебсервер передає в
index.php, як це робить.htaccess. Сам.htaccessне читається; правила з плагінів кешу або безпеки переносяться у власні директиви Caddy. - Завантаження — до 64 МБ за файл (межа PHP у контейнері). Більші файли — через SFTP у
public/wp-content/uploads. - Cron. WP-Cron запускають відвідувачі; щоб задачі йшли за розкладом, у «Cron і процеси» додайте
*/5 * * * *з командоюphp public/wp-cron.php, а вwp-config.php—define('DISABLE_WP_CRON', true);. - Пошта. Поштового сервера в контейнері немає — поставте SMTP-плагін і вкажіть SMTP вашого провайдера.
- Оновлення WordPress, тем і плагінів з адмінки працюють без FTP-даних: файли доступні для запису.
5. Якщо щось не так
- «Error establishing a database connection». Хост указано як
localhostабо без порту — берітьхост:портіз картки бази. - Адмінка перекидає на http або «занадто багато редиректів». Адреса сайту записана з
http://(інсталятор відкривали без HTTPS або адресу змінили в «Налаштування → Загальні») — закріпітьWP_HOMEіWP_SITEURLзhttps://(розділ 3). - Біла сторінка. «Логи» проєкту покажуть помилку PHP; часто винен плагін — перейменуйте його папку в
wp-content/plugins. - Не вистачає пам’яті.
memory_limitдорівнює половині пам’яті тарифу;WP_MEMORY_LIMITвище нього не підніме — потрібен більший тариф.