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

Полезные ссылки