Гид по технологиям

Установка и настройка TYPO3 на Debian 9

9 min read Веб‑CMS Обновлено 28 Nov 2025
TYPO3 на Debian 9 — установка и настройка
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 — сервер работает.

/files/bcd56338-0fa4-455e-bbd9-c1eade211692.jpg

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 с самоподписанным сертификатом, браузер покажет предупреждение. Это ожидаемо для тестовых сертификатов.

/files/32f405c5-cbb0-409c-a4f4-2db58990d979.png

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

/files/3d345db9-d588-4a3a-ab9a-b9ee9c85561c.png

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.

/files/ade9df78-fb8e-42b1-b877-8cf8663aaa2e.png

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/

/files/70992121-a6ba-4b6e-9e03-3137205bb3e0.png

Alt: Содержимое веб-каталога после копирования файлов TYPO3

Откройте в браузере https://yourdomain.tld и следуйте мастеру установки. TYPO3 проверит окружение и предложит продолжить при отсутствии ошибок. Нажмите “System looks good. Continue!” (кнопка в интерфейсе).

/files/5e4d18f5-3e8c-473f-b3ef-7c7ab33e3f1b.png

Alt: Экран проверки окружения в установщике TYPO3

Подключение к базе данных в установщике

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

/files/a1283bae-d6ca-426f-9cc2-768b218fc9c7.png

Alt: Форма подключения к базе данных в установщике TYPO3

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

/files/17863118-cbdf-4470-9935-d652916e0aa8.png

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

/files/4bc3eb89-9b0a-4dbe-ac86-b2348d63f70a.png

Alt: Экран создания администратора и названия сайта

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

/files/bdad9c86-a2a4-4c1d-b9cc-4b474d664352.png

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

/files/732546f5-2289-4d9e-9134-0467bbb74687.png

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

/files/ebaa55e5-1ba3-4c59-b0c3-24f88130173d.png

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.

/files/93e9f7b1-7f54-4987-8bcb-38ec565940ef.png

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: Быстрая инсталляция (сокращённый чек-лист)

  1. Подготовить Debian 9 и обновить систему
  2. Установить Apache, PHP 7.0 и нужные модули
  3. Установить MariaDB и создать БД для TYPO3
  4. Скопировать файлы TYPO3 в /var/www/html и назначить права
  5. Запустить установщик в браузере и завершить настройку
  6. Настроить 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.tld

Certbot автоматически обновит конфигурацию 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 (коротко)

  1. Сделать бэкап файлов и дамп БД
  2. Установить новую ветку TYPO3 в отдельную папку
  3. Выполнить тестовую миграцию на staging-сервере
  4. Переключить сайт на новую версию после успешного тестирования

Краткое руководство по производительности

  • Включите 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, настройте мониторинг и автоматизацию резервных копий.


Дополнительные ресурсы

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Почта в RSS и публикация на сайте
Веб-инструменты

Почта в RSS и публикация на сайте

Вставить PDF в Word — простые способы
Microsoft Word

Вставить PDF в Word — простые способы

Письма для мобильных: 7 ключевых правил
Электронная почта

Письма для мобильных: 7 ключевых правил

Добавить функцию Snooze в Gmail без приложений
Productivity

Добавить функцию Snooze в Gmail без приложений

Автообновление контейнеров с Podman
DevOps

Автообновление контейнеров с Podman

Ошибка system cannot find python.exe — как исправить
ошибки

Ошибка system cannot find python.exe — как исправить