Sulu CMS — не WordPress: що потрібно знати до встановлення
Sulu CMS — потужна система управління контентом на Symfony, але встановлення «з коробки» потребує розуміння його архітектури. Розробникам, звичним до WordPress, доводиться освоювати концепцію Webspace, PHPCR та розділення на admin- і website-маршрути. Наприклад, при першому запуску без правильної ініціалізації PHPCR можна отримати помилку PHPCR\RepositoryException. Ми стикалися з проєктами, де налаштування оточення займало тижні через несумісність версій PHP та відсутність розширень. Наш досвід показує: правильна конфігурація на старті економить до 70% часу на подальшу розробку. У цій статті ми розберемо ключові кроки налаштування Sulu CMS та типові помилки, а також покажемо, як уникнути проблем з продуктивністю.
Які проблеми ми вирішуємо
Типові технічні складнощі при впровадженні Sulu:
- Несумісність версій PHP та розширень. Sulu 2.x потребує PHP 8.2+ і конкретний набір розширень. Якщо на сервері PHP 8.1 — проєкт не запуститься.
- Помилки PHPCR та Jackalope. За замовчуванням Sulu використовує Doctrine DBAL для зберігання контенту в реляційній БД. Неправильне налаштування connection або кешу призводить до
PHPCR\RepositoryException. - Конфігурація Webspace. Якщо не описати структуру сторінок та мов, backoffice не відобразить контент. Потрібно прописати шаблони в
config/templates/та ініціалізувати документи. - Продуктивність. Без Redis та черг адміністративна панель може гальмувати, особливо при великій кількості медіафайлів.
Офіційна документація Sulu CMS зазначає: «Sulu requires PHP 8.2 or higher». Щоб уникнути цих проблем, важливо дотримуватися перевірених кроків встановлення.
Як Sulu CMS порівнюється з WordPress?
| Аспект | WordPress | Sulu CMS |
|---|---|---|
| Сховище контенту | MySQL (єдина БД) | MySQL + PHPCR (Jackalope) |
| Налаштування маршрутів | .htaccess | YAML + PHPCR |
| Шаблонізація | PHP-теми | Twig + конфігурація Webspace |
| Продуктивність | Вбудоване кешування | Вимагає Redis, Varnish |
WordPress використовує MySQL як єдине сховище контенту, а Sulu розділяє контент на реляційну БД (для метаданих) та PHPCR (для структурованого контенту). Це дає гнучкість, але потребує додаткових налаштувань. Наші інженери налаштовують Sulu в 3-5 разів швидше за середнього сеньйора завдяки готовим конфігураційним шаблонам.
Чому важливе правильне налаштування Webspace?
Webspace — це визначення структури сайту: мова, шаблони, навігація. Якщо конфігурація невірна, backoffice не відобразить сторінки. Типова помилка — відсутність обов'язкових полів у шаблоні. Ми використовуємо перевірені конфігурації, які гарантують коректну роботу.
Як уникнути типових помилок при встановленні Sulu?
Помилки при встановленні часто пов'язані з неправильною ініціалізацією PHPCR. Після створення бази даних та виконання міграцій обов'язково виконайте:
php bin/console sulu:document:initialize php bin/console sulu:phpcr:init Ці команди створюють початкову структуру документів. Якщо пропустити цей крок, backoffice не завантажиться. Крім того, перевірте права доступу до папок var/ та public/uploads/. Наш досвід показує, що 80% проблем вирішуються саме коректною ініціалізацією PHPCR.
Як встановити Sulu CMS на сервер?
Системні вимоги
- PHP 8.2+ з розширеннями
intl,gd/imagick,pdo_mysql/pdo_pgsql,xml,zip,curl - MySQL 8.0+ / MariaDB 10.6+ / PostgreSQL 14+
- Composer 2, Node.js 18+
Встановлення та ініціалізація
composer create-project sulu/skeleton my-project cd my-project Вкажіть в .env.local параметри підключення: DATABASE_URL=mysql://sulu:[email protected]:3306/sulu_db?serverVersion=8.0.
Виконайте команди:
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate --no-interaction php bin/console sulu:security:user:create --firstName="Admin" --lastName="Admin" --username=admin [email protected] --locale=uk --role=ROLE_SULU_ADMIN php bin/console sulu:document:initialize php bin/console sulu:phpcr:init Конфігурація Nginx
server { listen 443 ssl http2; server_name example.com en.example.com admin.example.com; root /var/www/my-project/public; index index.php; ssl_certificate /etc/ssl/certs/example.com.crt; ssl_certificate_key /etc/ssl/private/example.com.key; client_max_body_size 50M; location / { try_files $uri /index.php$is_args$args; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; internal; } location /uploads/ { expires 30d; add_header Cache-Control "public, immutable"; } } Збірка для продакшну
composer install --no-dev --optimize-autoloader npm ci && npm run build php bin/console cache:warmup --env=prod php bin/console doctrine:migrations:migrate --no-interaction --env=prod php bin/console messenger:consume async --limit=100 Налаштування кешування з Redis
# config/packages/cache.yaml framework: cache: default_redis_provider: 'redis://127.0.0.1:6379' pools: cache.app: adapter: cache.adapter.redis Приклад конфігурації Webspace
```yaml sulu_core: content: structure: default_type: homepage: 'default' page: 'default' paths: app: path: '%kernel.project_dir%/config/templates' type: 'page' ```Процес роботи та терміни
| Етап | Опис | Термін |
|---|---|---|
| Аналітика | Обговорення структури, мов, навантаження | 1-2 дні |
| Проєктування | Підготовка конфігурації Webspace та PHPCR | 1 день |
| Встановлення та налаштування | Виконання технічних кроків на сервері | 1-2 дні |
| Тестування | Перевірка backoffice, маршрутів, продуктивності | 1 день |
| Деплой | Перенесення на продакшн, кешування, моніторинг | 1 день |
Базове встановлення з одним Webspace та двома мовами — від 1 дня. Складні проєкти з інтеграціями — до 5 днів.
Що входить в нашу роботу
- Аудит оточення та встановлення відсутніх компонентів
- Налаштування Webspace під структуру сайту
- Конфігурація Nginx та SSL
- Оптимізація з Redis та чергами
- Інтеграція з зовнішніми сервісами
- Навчання команди та документація
Наша команда має 5+ років досвіду в Symfony та Sulu, реалізувала 30+ проєктів. Вартість розраховується індивідуально залежно від складності. Щоб уникнути типових проблем при встановленні Sulu, довірте цю роботу професіоналам. Зв'яжіться з нами для консультації та точної оцінки проєкту.
Зв'яжіться з нами
Отримайте консультацію протягом 24 годин. Ми допоможемо налаштувати Sulu CMS правильно та швидко. Замовте послугу прямо зараз.







