mysurik.ru

Установка TYPO3 с нуля: мой опыт, грабли и чек-лист

Логотип TYPO3 на экране ноутбука при настройке системы, стильная иллюстрация

Я боялся TYPO3 два года. Серьёзно. Слушал истории про «корпоративную CMS для немцев», листал документацию, закрывал вкладку, уходил пить чай. А потом клиенту понадобился сайт именно на этой системе, и деваться было некуда. Установка TYPO3 заняла у меня вечер, из которых полтора я боролся с одной дурацкой ошибкой. Зато теперь могу честно сказать: не так страшен чёрт, как его документация на английском. Делюсь опытом с нуля: где взять, как развернуть, какие грабли ждут новичка и как их обойти.

Если вы тоже откладывали знакомство с TYPO3 «на потом» — эта статья для вас. Расскажу про установку TYPO3 так, как хотел бы прочитать сам год назад: без воды, с конкретными командами и моими косяками впридачу.

Что понадобится для установки TYPO3: мои требования

Начнём с базы. Для свежей версии 13 нужны PHP 8.2 или новее (я ставил на 8.3), MySQL/MariaDB либо PostgreSQL, веб-сервер с PHP и примерно 200 МБ на файлы системы плюс место под контент. Composer желателен, но не обязателен — есть способ проще, о нём ниже.

У меня был обычный VPS с FastPanel, где уже крутились WordPress-сайты. Отдельная виртуалка не понадобилась — TYPO3 спокойно живёт по соседству, если ресурсов хватает. Это, кстати, был мой первый миф, который развеялся: «типошка» требует выделенный сервер. Не требует.

Composer или tarball: как я выбирал путь установки

Официально рекомендуется ставить через Composer:

composer create-project typo3/cms-base-distribution:^13 my-site

Это правильный путь, если планируете расширения и обновления. Но у меня на хостинге composer был старенький, а обновлять его было лень. Поэтому пошёл вторым официальным способом — скачал готовый tarball с сайта get.typo3.org (внешний источник, кстати, очень удобный: там сразу показывают актуальную версию и минифицированный пакет):

wget https://get.typo3.org/13 --content-disposition
tar -xzf typo3_src-13.*.tar.gz

Потом симлинк typo3_src на распакованную папку и симлинк public/typo3 на typo3/sysext/core/Resources/Private/. Звучит мудрёно, но в архиве есть файл INSTALL.md, где это разжёвано с картинками. Я справился за пять минут, а ведь руки у меня растут из плеч, но криво.

Честное мнение: для первого знакомства берите tarball. Composer-способ хорош, когда вы уже понимаете структуру и хотите держать зависимости под контролем. Я на втором сайте уже пересел на composer, но первый опыт делал именно через архив.

Момент Икс: белая страница вместо бэкенда

А вот и та самая полуторачасовая боль. Фронтенд открылся, инсталлятор запустился, всё настроил, жму «Go to your TYPO3 installation» — и получаю 404 на /typo3/index.php. Перезапускал Apache, чистил кэш браузера, матерился. Уже почти бросил, честно.

Отвлекся, покурил на балконе, вернулся — и тут меня осенило. Document root у меня смотрел в корень проекта, а должен был смотреть в папку public/! В TYPO3 вся публичная часть лежит именно там, а конфиги и исходники наружу торчать не должны. Переключил document root в панели на public/, и о чудо — админка открылась.

Проверьте себя заранее: если после установки видите 404 или белый экран на /typo3 — первым делом смотрите, куда указывает document root. Сэкономите себе вечер.

Инсталлятор TYPO3: что он спросит и как отвечать

Сам мастер настройки приятный. Шаг за шагом он проверяет окружение и спрашивает следующее:

  • Соединение с базой данных: хост, имя, пользователь, пароль. Базу создайте заранее, кодировка utf8mb4 обязательна.
  • Выбор драйвера: я оставил mysqli, хотя есть pdo-варианты.
  • Логин администратора: придумывайте нормальный пароль, не admin123, система потом не даст расслабиться.
  • Стартовый сайт: советую согласиться на демо-пакет введения — он создаёт готовое дерево страниц, на котором удобно учиться.

Ещё инсталлятор ругнулся у меня на отсутствие GraphicsMagick — система любит обрабатывать картинки сама, уменьшать превью и так далее. На VPS лечится одной командой apt install graphicsmagick, после чего в настройках среды всё становится зеленым. Если ставите на shared-хостинг, где модули не поставить, — просто примите предупреждение, сайт будет работать, только превью генерироваться не будут.

Первые шаги после установки TYPO3: куда тыкать

Когда бэкенд наконец открылся, я растерялся от количества кнопок. Советую такой порядок освоения. Сначала модуль Page — там дерево страниц вашего сайта. Создайте пару страниц, перетащите их мышкой, поймите иерархию. Потом модуль Template — выберите корневую страницу и создайте базовый шаблон, иначе фронтенд покажет ошибку «no template found». Эту ошибку получает каждый второй новичок, я получил.

Дальше List — список контентных элементов на странице. Тут TYPO3 радует: текст, текст с картинкой, таблица, форма — всё добавляется кликом и настраивается без единой строчки кода. Для простого корпоративного сайта TypoScript в минимальном объёме пишется руками за полчаса, а дальше копируется из проекта в проект.

Отдельно загляните в модуль System, Users — там заведите редакторов с ограниченными правами сразу, а не когда клиент попросит. Группа «главный редактор» без доступа к настройкам системы, группа «автор» только со своими страницами. Многопользовательская работа здесь действительно сильная сторона системы, грех не пользоваться. И включите двухфакторную аутентификацию для админа — она настраивается в два клика в профиле пользователя.

Грабли, на которые я наступил в первый день

Собрал топ моих косяков, чтобы вы их повторить не смогли:

  • Document root не на public/ — главная причина 404 на бэкенд (см. выше).
  • Права на файлы: веб-сервер должен писать в var/ и fileadmin/. У меня FastPanel работает под fastuser, поэтому просто выставил владельца правильно.
  • Кодировка базы: одна таблица создалась в latin1 из-за дефолта сервера — потом ловили кракозябры в немецких умлаутах.
  • PHP memory_limit 128M оказалось мало для инсталлятора на слабом VPS, поднял до 256M.
  • Забыл включить mod_rewrite, из-за чего ЧПУ-ссылки не работали, хотя site config был правильный.

Ни одна из этих проблем не фатальна, но каждая отнимает время, которого у новичка и так нет. Пробегитесь по списку до начала установки — сэкономите час точно.

Обновления TYPO3: почему я перестал их бояться

До установки я читал страшилки, что обновлять TYPO3 сложно. По факту на tarball-установке это замена симлинка на новую распакованную папку плюс запуск мастера апгрейда в админке. Он сам прогоняет миграции базы и показывает отчёт. У меня апгрейд с 12 на 13 на тестовой копии прошёл минут за двадцать, включая чтение changelog.

Советую сразу завести привычку: перед обновлением — бэкап файлов и дампа базы, обновление сначала на копии, и только потом на бою. Правило скучное, но однажды оно спасёт вам выходные. Проверено на себе, правда, на другом проекте, где я этим правилом пренебрег.

Полезные команды и ссылки для новичка TYPO3

Моя шпаргалка после первой недели:

  • vendor/bin/typo3 cache:flush — сброс кэша из консоли (на tarball — typo3/sysext/core/bin/typo3)
  • vendor/bin/typo3 database:updateschema — применить изменения структуры базы
  • tail -f var/log/typo3_*.log — смотреть, на что ругается система
  • get.typo3.org — официальный источник дистрибутива и версий
  • docs.typo3.org — документация, раздел «Getting Started» реально хороший

Из расширений на старте советую только одно — введение (introduction package), если не взяли демо при установке. Всё остальное добавляйте по мере реальной нужды, иначе утонете в зависимостях.

Что делать, если установка TYPO3 идёт не по плану

Мой алгоритм диагностики простой. Первым делом открываю отчёт среды: Admin Tools, Environment, Environment Overview — там красные строки покажут, чего системе не хватает. Дальше логи PHP и веб-сервера. Потом гуглю точный текст ошибки в кавычках — у TYPO3 огромное сообщество, почти любая ошибка уже описана на stackoverflow или в немецких блогах, которые переводятся браузером на лету.

Если совсем тупик — откатитесь на шаг: переустановите начисто с демо-данными и повторяйте свои действия по одному. Так я нашёл проблему с mod_rewrite: чистая установка работала, моя — нет, значит дело в моей конфигурации, а не в системе.

Мой итог: стоит ли связываться с TYPO3 новичку

Вот честный вывод после месяца работы. Установка TYPO3 — это не страшно, если знать три вещи: document root на public/, права на запись, utf8mb4 в базе. Сама система мощная, многопользовательская работа и версии контента здесь лучше, чем в WordPress из коробки. Но порог входа выше: придётся читать документацию.

Я не жалею ни дня. Клиентский сайт работает быстро, редакторы довольны, а я прокачал скилл, который ценится на рынке дороже очередного лендинга на конструкторе. Попробуйте на чистой виртуалке — вдруг и вам зайдёт.

Локальная установка TYPO3 в Docker: мой тестовый стенд

Прежде чем ставить систему на боевой хостинг, я потренировался в Docker — и советую вам сделать так же. Официальный образ martinhelm/typo3 или связка php-apache плюс база поднимаются за пару минут:

docker run -d --name typo3-db -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=typo3 mariadb:10.11
docker run -d --name typo3-app -p 8080:80 --link typo3-db martinhelm/typo3

Открываете localhost:8080, проходите тот же инсталлятор, ломаете что хотите — контейнер всегда можно снести и начать заново. Для обучения это идеальный полигон. Я на таком стенде разобрался с шаблонами, прежде чем трогать реальный проект.

Единственное но: не храните в контейнере ничего ценного без примонтированного тома. Один раз я потерял тестовый сайт вместе с наработками просто потому, что удалил контейнер вместе с его слоем. Теперь volumes — святое.

Site sets и конфигурация: как устроен современный TYPO3

Небольшое погружение для понимания структуры. Начиная с 12-й версии конфигурация сайта живёт в папке config/system внутри проекта: файл sites.yaml описывает домен, язык и точки входа. Я поначалу искал привычные WordPress-подобные настройки в админке и удивлялся, почему их нет. А они в файлах!

Это непривычно после WordPress, но у подхода есть плюс: конфигурацию можно положить в git и переносить между средами одной командой. Мой рабочий процесс теперь такой: локально правлю, коммичу, на сервере подтягиваю. Как в нормальной разработке, представляете?

Языковые пакеты ставятся через Admin Tools, Extensions — там же кнопка Translate. Русская локализация бэкенда подтянулась без проблем, за что отдельное спасибо переводчикам сообщества.

План для ленивых: установка TYPO3 за один вечер

  • Подготовьте PHP 8.2+, пустую базу utf8mb4, домен с document root на public/
  • Скачайте архив с get.typo3.org и распакуйте, настройте симлинки
  • Пройдите инсталлятор, поставьте graphicsmagick, если можно
  • Возьмите introduction package для обучения
  • Создайте шаблон на корневой странице — иначе фронт не заработает
  • Перед боевым использованием сделайте бэкап и отключите дебаг-режим

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *