Установка и настройка TYPO3 на Debian 9
Краткое содержание
- Требования и подготовка сервера
- Установка утилит, Apache, PHP и MariaDB
- Конфигурация PHP и Apache (включая SSL)
- Установка TYPO3, права и первый запуск
- Примеры команд, .htaccess, перенаправления на HTTPS
- Чек-листы для администратора и редактора, откат и тесты приёмки
- Рекомендации по безопасности, резервному копированию и Let’s Encrypt
Введение
TYPO3 — это гибкая и расширяемая CMS на PHP. Она подходит как для небольших сайтов, так и для крупных мультидоменных порталов. В этом руководстве показан практический путь установки TYPO3 на Debian 9 (Stretch) с Apache, PHP 7.0 и MariaDB.
Определение: LAMP/LEMP — набор программ (Linux, Apache/Nginx, MySQL/MariaDB, PHP), обеспечивающий работу веб-приложений.
Важно: используйте статический IP и корректные DNS-записи для домена, если планируете публичный доступ.
Требования
- Debian 9 (минимальная установка)
- root или sudo-права
- Статический IP на одном из интерфейсов
- Домен (рекомендуется) или доступ по IP
- Почтовый сервер с доступом по IMAP/SMTP для функций регистрации и уведомлений (опционально)
Подготовка сервера
Обновите список пакетов и систему:
apt update
apt upgradeУстановите hostname и проверьте его:
hostnamectl set-hostname typo
hostnamectl
cat /etc/hostname
hostname -s
hostname -fПерезагрузите машину для применения обновлений ядра и названия хоста:
systemctl rebootУстановка необходимых утилит
Сначала установим базовые инструменты:
apt install wget bash-completion zip unzipУстановите ImageMagick — TYPO3 использует его для обработки изображений:
apt install imagemagickУстановка Apache и PHP
TYPO3 требует веб-сервер и интерпретатор PHP. Установим Apache и необходимые модули PHP 7.0:
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-zip php7.0-gd php7.0-xml php7.0-json php7.0-opcache php-imagick php7.0-curl php7.0-mbstring php7.0-bcmath php7.0-gmpПроверьте, что Apache слушает порт 80. Установите net-tools при необходимости и проверьте сокеты:
apt install net-tools
netstat -tlpnАльтернатива — команда ss, она установлена по умолчанию:
ss -tulpnКонфигурация брандмауэра
Если используется UFW, откройте HTTP и HTTPS:
ufw allow WWW
ufw allow 'WWW Full'Или явно по портам:
ufw allow 80/tcp
ufw allow 443/tcpЕсли вы управляете firewall через iptables и хотите сделать правила постоянными:
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl restart netfilter-persistent || systemctl restart iptables-persistentПримечание: в разных сборках Debian сервис для сохранения правил может называться по-разному. Проверьте установленные сервисы.
Конфигурация Apache
Включите нужные модули Apache и перезапустите сервис:
a2enmod rewrite deflate headers
systemctl restart apache2Откройте в браузере http://your_domain.tld или IP сервера. Если вы видите страницу Apache — сервер работает.

Alt: Фоновая иллюстрация для настройки сервера и установки TYPO3
Настройка SSL (самоподписанный сертификат для теста)
Включаем SSL-модуль и включаем дефолтный SSL-сайт:
a2enmod ssl
a2ensite default-ssl.confОткройте конфигурацию SSL сайта и разрешите переопределение директивы в DocumentRoot. Отредактируйте файл /etc/apache2/sites-enabled/default-ssl.conf и после директивы DocumentRoot добавьте:
Options +FollowSymlinks
AllowOverride All
Require all granted
Убедитесь, что VirtualHost слушает 443-ый порт:
Аналогичные директивы добавьте в /etc/apache2/sites-enabled/000-default.conf, чтобы режим перезаписи работал и для HTTP.
Перезапустите Apache:
systemctl restart apache2Если вы используете браузер и Apache с самоподписанным сертификатом, браузер покажет предупреждение. Это ожидаемо для тестовых сертификатов.

Alt: Браузер показывает Apache default page при обращении по HTTP

Alt: Предупреждение браузера о самоподписанном SSL-сертификате
Конфигурация PHP
Сделайте резервную копию php.ini и откройте его для правки:
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.iniИзмените или убедитесь, что следующие параметры заданы (удобно искать по имени переменной):
file_uploads = On
memory_limit = 128M
upload_max_filesize = 64M
max_execution_time = 240
max_input_vars = 1500
date.timezone = Europe/LondonЗамените date.timezone на ваш часовой пояс. Список часовых зон: http://php.net/manual/en/timezones.php
Для ускорения работы подключите OPCache, добавив в конец php.ini:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1Активируйте модуль и перезапустите Apache:
phpenmod opcache
systemctl restart apache2Создайте тестовую страницу info.php и проверьте timezone:
echo '' | tee /var/www/html/info.phpОткройте https://domain.tld/info.php и проверьте секцию date.

Alt: Страница PHP Info с секцией date.timezone
Установка MariaDB
Установим сервер базы данных и PHP-модуль:
apt install mariadb-server php7.0-mysql mariadb-clientПроверьте, что MariaDB слушает локально на 3306:
netstat -tlpn | grep mysqlПервичная настройка: изменим плагин авторизации для root (если нужно) и затем выполним скрипт безопасности:
mysql -h localhostВ MySQL консоле можно переключиться на базу mysql и обновить плагин для root (если требуется):
use mysql;
update user set plugin='' where user='root';
flush privileges;
exitЗапустите автоматический скрипт безопасности:
sudo mysql_secure_installationСледуйте подсказкам: установите пароль root, удалите анонимных пользователей, запретите удалённый вход для root, удалите тестовую базу и перезагрузите привилегии.
Создайте базу и пользователя для TYPO3 (замените имена и пароль на свои):
mysql -u root -p
CREATE DATABASE typo;
GRANT ALL PRIVILEGES ON typo.* TO 'typo_user'@'localhost' IDENTIFIED BY 'password1';
FLUSH PRIVILEGES;
EXIT;Перезапустите сервисы:
systemctl restart mysql apache2
systemctl status mysql apache2Загрузка и установка TYPO3
Скачайте текущую ZIP-версию с официального источника:
wget --content-disposition https://get.typo3.org/current/zipРаспакуйте архив и скопируйте содержимое в веб-докрут:
unzip typo3_src-*.zip
cp -rf typo3_src-*/ /var/www/html/Удалите дефолтную index.html и тестовый info.php:
rm /var/www/html/index.html
rm /var/www/html/info.phpСоздайте файл FIRST_INSTALL и назначьте владельцем www-data:
touch /var/www/html/FIRST_INSTALL
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/
Alt: Содержимое веб-каталога после копирования файлов TYPO3
Откройте в браузере https://yourdomain.tld и следуйте мастеру установки. TYPO3 проверит окружение и предложит продолжить при отсутствии ошибок. Нажмите “System looks good. Continue!” (кнопка в интерфейсе).

Alt: Экран проверки окружения в установщике TYPO3
Подключение к базе данных в установщике
Выберите ручную конфигурацию MySQL TCP/IP и укажите 127.0.0.1 как хост, порт 3306, имя базы и учётные данные пользователя typo_user.

Alt: Форма подключения к базе данных в установщике TYPO3
Выберите “Use an existing empty database” и импортируйте схему. Создайте администратора и основное имя сайта в следующем шаге.

Alt: Выбор пустой базы данных для установки TYPO3

Alt: Экран создания администратора и названия сайта
После установки выберите преднастроенную distribution (рекомендуется для быстрого старта). Откройте бэкенд и авторизуйтесь по адресу /typo3/index.php.

Alt: Выбор преднастроенного пакета distribution в установщике TYPO3

Alt: Вход в админ-панель TYPO3

Alt: Панель управления TYPO3 после установки distribution
Принудительный переход на HTTPS через .htaccess
Скопируйте шаблон .htaccess и измените PHP-настройки в нём под сервер:
cp /var/www/html/_.htaccess /var/www/html/.htaccess
nano /var/www/html/.htaccessВставьте или измените PHP-параметры:
# Modify PHP settings
php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value upload_max_filesize 500M
php_value post_max_size 500MДобавьте перенаправление на HTTPS в конец файла:
# Redirect to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Создайте отдельный .htaccess в каталоге /var/www/html/typo3, чтобы админка всегда работала по HTTPS:
nano /var/www/html/typo3/.htaccessФайл должен содержать аналогичные правила редиректа на HTTPS.

Alt: Внешняя страница TYPO3 после успешной установки
Проверка и финальные шаги
- Удалите FIRST_INSTALL или ограничьте его доступ после завершения установки.
- Скопируйте конфигурации и создайте резервные копии базы данных и файлов.
- Проверьте все необходимые расширения TYPO3 в меню Admin Tools > Environment.
Полезные дополнения и варианты (value add)
Альтернативные варианты веб-сервера и PHP
- Nginx + php-fpm: если вам нужна производительность и меньший расход памяти, используйте Nginx с php-fpm. Настройка включает fastcgi_pass и правильную настройку root и index для TYPO3.
- Контейнеризация: запускать в Docker-контейнерах удобнее для изоляции окружения и масштабирования.
Когда вариант не подойдёт: если вам нужен встроенный GUI для управления виртуальными хостами — Apache удобнее; если нагрузка большая — выгоднее Nginx.
Модель принятия решений (heuristic)
- Небольшой сайт, простая админка: Apache + PHP модуль.
- Высокая нагрузка, статические ресурсы: Nginx + PHP-FPM + кеширование.
- CI/CD и изоляция зависимостей: Docker или Kubernetes.
Чек-листы для ролей
Администратор сервера:
- Проверить наличие резервных копий перед обновлением
- Настроить мониторинг (disk, memory, CPU)
- Настроить HTTPS с валидными сертификатами
Разработчик / интегратор:
- Убедиться в версиях PHP и совместимости расширений
- Проверить права на файлы и папки
- Описать процесс деплоя (скрипты/CI)
Контент-менеджер:
- Получить доступ к бэкенду
- Настроить шаблон и типы контента
- Настроить базовые права пользователей
SOP: Быстрая инсталляция (сокращённый чек-лист)
- Подготовить Debian 9 и обновить систему
- Установить Apache, PHP 7.0 и нужные модули
- Установить MariaDB и создать БД для TYPO3
- Скопировать файлы TYPO3 в /var/www/html и назначить права
- Запустить установщик в браузере и завершить настройку
- Настроить HTTPS и перенаправления, удалить FIRST_INSTALL
Рулбек / план отката
Если что-то пошло не так после изменений:
- Восстановите конфигурации из резервной копии
- Откатите изменения в системе пакетов (apt) при помощи логов и списка изменений
- Восстановите базу данных из бэкапа
- Убедитесь в правах на файлы и в том, что веб-сервер запущен
Тесты приёмки
- URL сайта отвечает по HTTPS с корректным контентом
- Вход в /typo3/index.php работает для администратора
- Заполнение и сохранение страницы в бэкенде проходит без ошибок
- Загрузка изображения проходит и доступно в медиабиблиотеке
- Очистка кэша сайта и фронтенд-рендер работают корректно
Мини-методология бэкапов
- Файлы: ежедневный rsync (или tar) в отдельное хранилище
- БД: ежедневный дамп mysqldump с ротацией
- Скрипты автоматизации: crontab + мониторинг свободного места
Безопасность и hardening
- Использовать валидный SSL-сертификат в продакшене (Let’s Encrypt или платный CA)
- Отключить доступ к /typo3/install после установки
- Ограничить доступ к административной панели по IP (если возможно)
- Регулярно обновлять ОС, PHP, MariaDB и TYPO3
- Настроить бэкап и проверять восстановление регулярно
Конфиденциальность и соответствие (GDPR)
- Если сайт собирает персональные данные, документируйте процесс хранения и доступ к данным
- Реализуйте политику удаления данных по запросу
- Настройте шифрование каналов (HTTPS) и ограничение доступа к резервным копиям
Let’s Encrypt: быстрый шаг к бесплатному HTTPS
Установите certbot и получите сертификат для Apache:
apt install certbot python-certbot-apache
certbot --apache -d yourdomain.tld -d www.yourdomain.tldCertbot автоматически обновит конфигурацию Apache и настроит редиректы на HTTPS. Проверьте cron или systemd timer для auto-renew.
Отладка и распространённые ошибки
Проблема: страница установки зависает на проверке окружения. Возможные причины:
- Отсутствуют требуемые PHP-модули. Проверьте установку модулей php7.0-*
- Неверные права на /var/www/html. Проверьте chown/chmod для www-data
Проблема: не удаётся подключиться к MariaDB
- Проверьте, что служба mysql запущена
- Убедитесь, что вы используете 127.0.0.1 и правильный порт
- Проверьте, не заблокирован ли порт в брандмауэре
Проблема: медиазагрузка не работает
- Проверьте, установлен ли ImageMagick и php-imagick
- Убедитесь, что upload_max_filesize и post_max_size достаточно велики
Проблема: 500 Internal Server Error
- Посмотрите логи Apache: /var/log/apache2/error.log
- Посмотрите логи PHP-FPM (если используется)
- Проверьте права и owner файлов
Совместимость и заметки по версиям
- Рекомендованная конфигурация в этом руководстве — Debian 9 + PHP 7.0 + MariaDB 10.x
- Для новых релизов TYPO3 могут требоваться более свежие версии PHP (7.2+ или 7.4+). Перед обновлением проверяйте системные требования TYPO3.
- При миграции с более старых версий TYPO3 оцените совместимость расширений и кастомных тем.
Сценарии обновления TYPO3 (коротко)
- Сделать бэкап файлов и дамп БД
- Установить новую ветку TYPO3 в отдельную папку
- Выполнить тестовую миграцию на staging-сервере
- Переключить сайт на новую версию после успешного тестирования
Краткое руководство по производительности
- Включите OPCache (см. выше)
- Используйте кеширование на уровне веб-сервера (например, varnish) или плагины кеширования TYPO3
- Оптимизируйте изображения и используйте CDN для статического контента
Glossary — 1 строка (ключевые термины)
- LAMP: Linux, Apache, MySQL/MariaDB, PHP. Набор ПО для хостинга веб-приложений.
- OPCache: PHP-опкод кеш для ускорения выполнения скриптов.
- FIRST_INSTALL: маркер для первой установки TYPO3, должен быть удалён позже.
Краткое резюме
Вы установили TYPO3 на Debian 9: настроили Apache, PHP, MariaDB, изменили php.ini, настроили SSL (самоподписанный для теста) и провели начальную установку через веб-интерфейс. Рекомендуется заменить самоподписанный сертификат на валидный, настроить регулярные бэкапы и следовать чек-листам для продакшен-готовности.
Важно: после перевода в продакшен — отключите FIRST_INSTALL, настройте мониторинг и автоматизацию резервных копий.
Дополнительные ресурсы
- Официальная документация TYPO3: https://docs.typo3.org/
- PHP timezones: http://php.net/manual/en/timezones.php
- Let’s Encrypt: https://letsencrypt.org/
Похожие материалы
Почта в RSS и публикация на сайте
Вставить PDF в Word — простые способы
Письма для мобильных: 7 ключевых правил
Добавить функцию Snooze в Gmail без приложений
Автообновление контейнеров с Podman