Встановлення та налаштування ProcessWire
При перенесенні ProcessWire на продакшен багато хто стикається з несподіваними помилками: білий екран після оновлення модуля, некоректні шляхи assets або проблеми з сесіями. Ми, як досвідчені розробники, пропонуємо встановлення та налаштування ProcessWire під ключ — від вибору хостингу до деплою. Наша команда з 5-річним досвідом та понад 30 успішних проєктів гарантує стабільну роботу та оптимізацію під ваші завдання. Замовте встановлення, і ви отримаєте готовий до роботи сайт. Зв'яжіться з нами, щоб обговорити деталі вашого проєкту.
Чому ProcessWire швидше та безпечніше?
ProcessWire — CMS з API-орієнтованим ядром, яка генерує сторінки в 2 рази швидше WordPress при однаковій конфігурації сервера. Вона не потребує постійних оновлень ядра для безпеки — фікси виходять рідше, але фундаментальні вразливості закриваються оперативно. Гнучка система полів та шаблонів дозволяє створювати контент будь-якої складності: від лендінгів до корпоративних порталів з 10 000+ сторінок. Згідно з офіційною документацією ProcessWire, використання модуля PageFinder скорочує час генерації списків на 30%.
Наприклад, нещодавно ми налаштовували ProcessWire для інтернет-магазину з 5000 товарами. Основне завдання — висока швидкість завантаження при великій кількості категорій. Ми оптимізували запити за допомогою PageFinder, налаштували Redis для кешування та досягли LCP менше 1.5 секунди. Клієнт отримав сайт, який витримує 10 000 унікальних відвідувачів на день без лагів. Використання ProcessWire дозволяє економити до 30% на хостингових ресурсах порівняно з аналогами.
Як уникнути білого екрана після оновлення модуля?
Білий екран найчастіше виникає через несумісність версій модуля з ядром. Перед оновленням завжди бекапимо базу та файли. Вмикаємо debug-режим тимчасово: $config->debug = true; у config.php. Логи помилок покажуть проблемний модуль або клас. Якщо доступ до адмінки втрачено, правимо config.php через FTP або SSH. Після фіксу debug вимикаємо — на продакшені він небезпечний.
Як ми налаштовуємо оточення?
Мінімальні вимоги: PHP 7.4+ (рекомендується 8.1+), MySQL 5.7+ або MariaDB 10.3+, Apache/Nginx з підтримкою перезапису URL. Перевірка оточення — перший етап. ProcessWire споживає на 30% менше ОЗУ, ніж WordPress при тих же функціях.
Перевірка сервера та PHP
Перевіряємо розширення: pdo_mysql, gd, mbstring, openssl. Налаштовуємо пул PHP-FPM: для проєктів до 5000 відвідувачів/день достатньо 2-3 воркерів. На Nginx або Apache — вмикаємо перезапис URL. На Nginx використовуємо конфігурацію з try_files, як у прикладі нижче.
Завантаження та встановлення
# Завантажити останній реліз curl -L https://github.com/processwire/processwire/archive/refs/heads/master.zip -o pw.zip unzip pw.zip -d /var/www/mysite cd /var/www/mysite # Встановити права chmod 755 site/assets/files site/assets/cache site/assets/logs site/assets/sessions Веб-інсталятор запускається за адресою http://yourdomain.com/install.php. Він перевіряє розширення, створює таблиці БД та генерує /site/config.php. Після завершення install.php видаляється автоматично — якщо ні, видаляємо вручну.
Конфігурація config.php
// /site/config.php $config->dbHost = 'localhost'; $config->dbName = 'mysite_db'; $config->dbUser = 'mysite_user'; $config->dbPass = 'secret'; $config->dbPort = '3306'; // Відладка — тільки на dev-оточенні $config->debug = false; // URL сайту (важливо при роботі за reverse proxy) $config->httpHosts = ['mysite.com', 'www.mysite.com']; // Шлях до файлів $config->fileContentTypes = array_merge( $config->fileContentTypes, ['svg' => 'image/svg+xml'] ); // Сесії $config->sessionExpireSeconds = 86400; Nginx-конфігурація
Apache-конфіг генерується автоматично через .htaccess. Для Nginx:
server { listen 80; server_name mysite.com; root /var/www/mysite; index index.php; location / { try_files $uri $uri/ /index.php?it=$uri&$args; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # Захист службових директорій location ~ ^/site/(assets|modules|templates)/ { deny all; } } Встановлення модулів
// Через адмінку: Modules → Install → пошук за назвою // Або вручну: скопіювати папку модуля в /site/modules/ // потім: Modules → Refresh → Install Обов'язкові модулі: MarkupPagerNav (пагінація), InputfieldTinyMCE (WYSIWYG), LanguageSupport (при необхідності). На проєктах з навантаженням від 10 000 запитів на добу ми підключаємо Redis для кешування і прискорюємо віддачу сторінок на 40%.
Рекомендовані модулі ProcessWire
| Модуль | Призначення | Коли використовувати |
|---|---|---|
| MarkupPagerNav | Пагінація сторінок | Завжди |
| InputfieldTinyMCE | WYSIWYG-редактор | Завжди |
| LanguageSupport | Багатомовність | Багатомовні проєкти |
| ProFields | Розширені типи полів | Складна структура даних |
| ListerPro | Управління списками | Адмін-інтерфейси |
Типові помилки та їх вирішення
| Помилка | Причина | Вирішення |
|---|---|---|
| Білий екран після оновлення модуля | Несумісність версій | Увімкнути debug, відкотити модуль |
| Некоректні шляхи assets | Невірний httpHosts | Перевірити config.php, додати всі домени |
| Сесії скидаються при пікових навантаженнях | GC сесій | Збільшити session.gc_maxlifetime або використовувати Redis |
Що входить у нашу послугу
| Етап | Зміст |
|---|---|
| Аналітика | Вибір хостингу, версій PHP та MySQL, профілю встановлення — з урахуванням бюджету та навантаження |
| Встановлення | Інсталяція ProcessWire, налаштування config.php та веб-сервера |
| Безпека | Захист службових директорій, налаштування прав, вимкнення debug, встановлення модуля PageAccessRestriction для захисту контенту |
| Модулі | Встановлення та конфігурація обов'язкових та кастомних модулів, інтеграція з Redis |
| Передача | Документація з доступом, навчання адміністратора, гарантія 30 днів |
Терміни та співпраця
Встановлення ProcessWire під ключ займає від 1 до 3 днів залежно від складності. Вартість розраховується індивідуально та включає всі вищезазначені етапи. Замовте консультацію — ми допоможемо підібрати оптимальну конфігурацію під ваш проєкт. Зв'яжіться з нами, щоб обговорити деталі.







