4.1.11 TYPO3: встановлення на сервері

TYPO3 Banner The Host

TYPO3 — вільна CMS (Content Management System) для сайтів корпоративного рівня з гнучкою архітектурою, розширеннями та потужною системою прав. Вона написана на PHP, використовує MySQL/MariaDB або PostgreSQL і чудово працює з Nginx чи Apache. У посібнику використовується підхід «чистого» встановлення через Composer та конфігурація Nginx + PHP-FPM.

Підготовка

Вимоги

  • Активна послуга Віртуального або Виділеного сервера.
  • CPU: 2–4 vCPU; RAM: 4–8 GB; SSD: від 20 GB.
  • ОС: Ubuntu 24.04 LTS з правами sudo або root.
  • Вебсервер Nginx, PHP-FPM 8.2/8.3 з типовими розширеннями, СУБД MySQL 8.0+/MariaDB 10.5+ або PostgreSQL 12+, Composer 2.
  • Відкриті порти 80/443; налаштовані записи A/AAAA для DOMAIN_NAME.

Змінні середовища

  • DOMAIN_NAME — домен сайту
  • SERVER_IP — публічна IP-адреса сервера
  • DB_NAME, DB_USER, DB_PASSWORD — параметри БД
  • TYPO3_PATH — шлях до проєкту, наприклад /var/www/typo3
  • PHP_FPM_SOCKET — шлях до сокета, наприклад /run/php/php8.2-fpm.sock

Встановлення TYPO3 на сервер

Оновлення пакетів
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl gnupg2 software-properties-common unzip ca-certificates

Класична підготовка: свіжі пакети та набір утиліт для репозиторіїв і завантаження артефактів.

Встановіть PHP-FPM і необхідні розширення

Встановлення PHP 8.2 з розширеннями
sudo apt -y install php8.2 php8.2-fpm php8.2-cli php8.2-mbstring php8.2-xml php8.2-gd php8.2-intl php8.2-zip php8.2-curl php8.2-mysql php8.2-opcache
php -v

TYPO3 v13 LTS підтримує PHP 8.2/8.3. Перевірка версії php -v фіксує встановлену версію.

Встановіть Nginx

Встановлення та запуск Nginx
sudo apt -y install nginx
sudo systemctl enable --now nginx

Nginx буде фронтендом, який проксигує PHP-скрипти в PHP-FPM.

Встановіть і підготуйте СУБД (приклад: MySQL/MariaDB)

Встановлення MySQL-сервера
sudo apt -y install mysql-server
mysql --version

Створіть БД і користувача:

Створення бази даних
sudo mysql <<'SQL'
CREATE DATABASE DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'DB_USER'@'localhost' IDENTIFIED BY 'DB_PASSWORD';
GRANT ALL PRIVILEGES ON DB_NAME.* TO 'DB_USER'@'localhost';
FLUSH PRIVILEGES;
SQL

Використовуємо utf8mb4 для повної підтримки Юнікоду й емодзі в контенті.

Встановіть Composer 2

Встановлення Composer 2
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

Composer керує залежностями, оновленнями та skeleton-проєктом TYPO3.

Розгорніть проєкт TYPO3

Створення проєкту TYPO3 13 LTS
sudo mkdir -p TYPO3_PATH && sudo chown -R $USER:$USER TYPO3_PATH
cd TYPO3_PATH
composer create-project typo3/cms-base-distribution:^13.4 .

Використовуємо LTS-гілку ^13.4 без :latest. Структура буде створена в TYPO3_PATH.

Налаштуйте підключення до бази та базові параметри

Первинне налаштування ENV
cp .env.example .env || true
sed -i 's/^DB_DRIVER=.*/DB_DRIVER=mysqli/' .env
sed -i 's/^DB_HOST=.*/DB_HOST=127.0.0.1/' .env
sed -i 's/^DB_NAME=.*/DB_NAME=DB_NAME/' .env
sed -i 's/^DB_USER=.*/DB_USER=DB_USER/' .env
sed -i 's/^DB_PASSWORD=.*/DB_PASSWORD=DB_PASSWORD/' .env

У cms-base-distribution доступний .env для підключення до БД. Використовуємо драйвер mysqli.

Права та власник проєкту

Права на файли
sudo chown -R www-data:www-data TYPO3_PATH
sudo find TYPO3_PATH -type d -exec chmod 755 {} \;
sudo find TYPO3_PATH -type f -exec chmod 644 {} \;

Власник www-data дозволяє PHP-FPM записувати кеш і згенеровані файли.

Конфігурація Nginx для TYPO3

/etc/nginx/sites-available/typo3.conf
server {
  listen 80;
  server_name DOMAIN_NAME;

  root TYPO3_PATH/public;
  index index.php index.html;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:PHP_FPM_SOCKET;
  }

  location ~* \.(?:css|js|jpg|jpeg|gif|png|svg|webp|ico)$ {
    expires 30d;
    access_log off;
  }

  location ~ /\. {
    deny all;
  }
}

Активуйте сайт і перезавантажте Nginx:

Активація сайту
sudo ln -s /etc/nginx/sites-available/typo3.conf /etc/nginx/sites-enabled/typo3.conf
sudo nginx -t && sudo systemctl reload nginx

root вказує на public, де розташований index.php фронт-контролер TYPO3.

Встановлення TYPO3 на сервер із панеллю керування

Важливо! Якщо ваш сервер керується панеллю ISPmanager, cPanel або Plesk — встановлення PHP і MySQL виконуйте засобами панелі, без ручних команд.

  1. Завантажте останню стабільну версію з офіційного сайту TYPO3.
  2. Завантажте архів у папку вашого домену (/var/www/DOMAIN_NAME) через FTP або файловий менеджер панелі хостингу.
  3. Розпакуйте архів і переконайтеся, що файли доступні вебсерверу.
  4. Створіть базу даних.
  5. У браузері відкрийте http://DOMAIN_NAME/ — з’явиться майстер встановлення.

Запустіть вебвстановлювач TYPO3

Відкрийте http://DOMAIN_NAME/ і пройдіть майстер встановлення:

  1. Створіть файл з назвою FIRST_INSTALL у корені директорії, після цього оновіть сторінку

The Host TYPO3 web installation

  1. Вкажіть DB_NAME, DB_USER від створеної раніше бази даних

The Host TYPO3 web installation db

  1. Оберіть раніше створену базу даних DB_PASSWORD або створіть нову

  1. Створіть адміністративного користувача та вкажіть ім’я сайту

  1. Перейдіть в адміністративну панель

Перевірка роботи

  • Перейдіть до http://DOMAIN_NAME/typo3 і увійдіть під адміном.
  • У «Environment» перевірте статус розширень PHP — усі ключові модулі мають бути зеленими.
  • Створіть сторінку і контент-елемент, переконайтеся, що він виводиться на фронтенді.
  • Контрольні команди:
Швидкі перевірки
php --version
php -m | grep -E 'mbstring|intl|xml|gd|curl|zip'
php vendor/bin/typo3 extension:list | head -n 20

Налаштування додаткових функцій TYPO3

SSL/TLS (HTTPS)

Для роботи за захищеним протоколом HTTPS використовуйте Let’s Encrypt або комерційний SSL-сертифікат

Кешування та продуктивність

Увімкніть opcache і налаштуйте параметри php у php.ini:

/etc/php/8.2/fpm/php.ini
opcache.enable=1
opcache.validate_timestamps=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.interned_strings_buffer=16

Перезапустіть PHP-FPM: sudo systemctl restart php8.2-fpm.

Обробка зображень (GD і Imagick)

TYPO3 використовує графічні бібліотеки для генерації мініатюр, ресайзу та обробки зображень. Доступні два драйвери: GD (входить до стандарту PHP) і Imagick (переважний за високих навантажень або складних форматів).

Встановлення GD і Imagick
sudo apt -y install php8.2-gd imagemagick php8.2-imagick
sudo systemctl restart php8.2-fpm

Рекомендація! Використовуйте GD, якщо сервер обмежений за ресурсами — він простіший і вже вбудований у PHP. Для якісного ресайзу та підтримки TIFF/WEBP/PNG з альфа-каналом — активуйте Imagick.

Перевірити доступні розширення можна командою:

php -m | grep -E 'gd|imagick'

У TYPO3 оберіть драйвер у розділі SettingsConfiguration PresetsImage Handling.

Планувальник завдань (Scheduler)

Додайте cron для очищення кешу, індексації тощо:

Cron для TYPO3
(crontab -l 2>/dev/null; echo "*/5 * * * * cd TYPO3_PATH && php vendor/bin/typo3 scheduler:run >/dev/null 2>&1") | crontab -
Поширені помилки
Помилка / Симптом Причина Рішення
502 Bad Gateway Невірний PHP_FPM_SOCKET або не запущено PHP-FPM Уточніть шлях до сокета, перезапустіть php8.2-fpm
Білий екран Фатальна помилка PHP/відсутні розширення Увімкніть логи, встановіть відсутні модулі
Немає запису в fileadmin/var Неправильні права на файли та папки сайту, що заважають процесам користувача www-data запис у вказану директорію Видайте власника/права на проєкт
Помилка підключення до БД Невірні DB_* у .env Перевірте значення, користувача і права
Встановлювач не створює таблиці Недостатньо прав користувача БД Надайте ALL PRIVILEGES на DB_NAME

Корисні посилання