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

Установка TYPO3 8.1 на Ubuntu 16.04 с Nginx (LEMP)

• 6 min read • DevOps • Обновлено 25 Nov 2025
Установка TYPO3 8.1 на Ubuntu 16.04 с Nginx
Установка TYPO3 8.1 на Ubuntu 16.04 с Nginx

Это пошаговое руководство объясняет, как установить и запустить TYPO3 8.1 на Ubuntu 16.04 в окружении LEMP (Linux + Nginx + MySQL/MariaDB + PHP). Вы получите рабочий vhost для www.example.com с корнем /var/www/www.example.com/web, создадите базу данных, настроите Nginx и PHP-FPM, выполните веб-установку TYPO3 и получите рекомендации по безопасности, отладке и миграции.

Важно: примеры команд предполагают, что вы работаете под root или используете sudo.

Основные варианты поиска (primary intent + related variants)

  • Установка TYPO3 8.1 на Ubuntu 16.04
  • Настройка TYPO3 с Nginx
  • LEMP для TYPO3
  • Конфигурация Nginx для TYPO3
  • TYPO3 8.1 требования и отладка

1. Введение и предварительные требования

Это руководство показывает установку TYPO3 8.1 в виртуальном хосте www.example.com с документ-рутом /var/www/www.example.com/web. Ожидается работающий LEMP-стек. Если LEMP ещё не настроен, сначала установите Nginx, PHP 7.0-FPM и MySQL/MariaDB.

Определения в одну строку:

  • LEMP: Linux + Nginx + MySQL/MariaDB + PHP-FPM.
  • vhost: виртуальный хост — отдельная конфигурация веб-сайта в Nginx.

Важно: эти инструкции ориентированы на Ubuntu 16.04 и PHP 7.0. Для других версий возможны отличия в путях и пакетах.

2. Подготовка окружения (root / sudo, редактор)

Вы можете запускать команды с sudo или перейти в root:

sudo su

Я использую nano для редактирования конфигураций. Если nano отсутствует, установите его:

apt-get install nano

3. Установка дополнительных модулей PHP

TYPO3 требует некоторых расширений PHP. Установите их так:

apt-get install php7.0-soap php7.0-zip

4. Создание структуры сайта и загрузка TYPO3

Создайте корневую директорию сайта (если ещё не создана):

mkdir -p /var/www/www.example.com/web

Затем загрузите исходники TYPO3 8.1 и подготовьте символьные ссылки:

cd /var/www/www.example.com
wget get.typo3.org/8.1 -O typo3_src-8.1.2.tar.gz
tar xfz typo3_src-8.1.2.tar.gz
rm typo3_src-8.1.2.tar.gz
cd web
ln -s ../typo3_src-8.1.2 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3

Сделайте файлы владеемыми юзером и группой www-data (Nginx/PHP-FPM):

chown -R www-data:www-data /var/www/www.example.com

Важно: правильные права повышают безопасность и предотвращают ошибки записи при установке.

5. Создание базы данных и пользователя MySQL

Если база не создана, выполните следующие команды. В примере база — typo3, пользователь — typo3_admin, пароль — typo3_admin_password.

mysql --defaults-file=/etc/mysql/debian.cnf

В интерактивном shell MySQL:

CREATE DATABASE typo3;
ALTER DATABASE typo3 CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
FLUSH PRIVILEGES;
quit

Примечание: замените пароль на безопасный, особенно в продакшне.

6. Конфигурация Nginx: создание vhost

Создайте файл vhost в /etc/nginx/sites-available/:

nano /etc/nginx/sites-available/www.example.com.vhost

Вставьте следующую конфигурацию (пример корректен для TYPO3 8.1 и PHP-FPM):

server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }

       index index.php index.html;

       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }

       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

        location ~ \.php$ {
                        try_files $uri =404;
                        include /etc/nginx/fastcgi_params;
                        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_intercept_errors on;
                        fastcgi_buffer_size 128k;
                        fastcgi_buffers 256 16k;
                        fastcgi_busy_buffers_size 256k;
                        fastcgi_temp_file_write_size 256k;
                        fastcgi_read_timeout 1200;
        }
        
        client_max_body_size 100M;

        location ~ /\.(js|css)$ {
                expires 604800s;
        }

        if (!-e $request_filename){
                rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
        }

        location ~* ^/fileadmin/(.*/)?_recycler_/ {
                deny all;
        }
        location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ {
                deny all;
        }
        location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ {
                deny all;
        }
        location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
        }

        location / {
                        if ($query_string ~ ".+") {
                                return 405;
                        }
                        if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) {
                                return 405;
                        } # pass POST requests to PHP
                        if ($request_method !~ ^(GET|HEAD)$ ) {
                                return 405;
                        }
                        if ($http_pragma = 'no-cache') {
                                return 405;
                        }
                        if ($http_cache_control = 'no-cache') {
                                return 405;
                        }
                        error_page 405 = @nocache;

                        try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;
        }

        location @nocache {
                        try_files $uri $uri/ /index.php$is_args$args;
        }

}

Пояснения:

  • try_files в блоке @nocache обеспечивает «чистые URL» для TYPO3.
  • fastcgi_pass указывает на сокет PHP-FPM по умолчанию для PHP 7.0.
  • client_max_body_size регулирует максимальный размер загружаемых файлов.

7. MIME-типы

Убедитесь, что в /etc/nginx/mime.types есть следующая строка:

nano /etc/nginx/mime.types

И там присутствует:

        text/x-component                        htc;

8. Включение vhost и перезагрузка Nginx

Создайте ссылку в sites-enabled и перезагрузите Nginx:

cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost
service nginx reload

9. Подготовка установки TYPO3 (FIRST_INSTALL)

Для запуска веб-инсталлятора создайте файл FIRST_INSTALL в корне сайта и назначьте владельца www-data:

touch /var/www/www.example.com/web/FIRST_INSTALL
chown www-data:www-data /var/www/www.example.com/web/FIRST_INSTALL

Это позволит инсталлятору удалить файл по завершении установки.

10. Настройка PHP (php.ini)

Откройте php.ini для PHP-FPM и измените параметры, соответствующие требованиям TYPO3:

nano /etc/php/7.0/fpm/php.ini

Установите значения (пример из руководства):

max_execution_time=240
post_max_size = 20M
upload_max_filesize = 20M
max_input_vars=1500
memory_limit = 256M

Сохраните и перезапустите PHP-FPM:

service php7.0-fpm restart

Факт-бокс: ключевые параметры

  • TYPO3: 8.1
  • Ubuntu: 16.04
  • PHP: 7.0 (PHP-FPM сокет: /var/run/php/php7.0-fpm.sock)
  • memory_limit: 256M
  • upload_max_filesize / post_max_size: 20M
  • client_max_body_size (Nginx): 100M

11. Запуск веб-инсталлятора и пошаговая установка

Откройте в браузере:

http://www.example.com/

Запуск установщика TYPO3 — проверка системы.

Нажмите кнопку “System looks good. Continue” для начала установки. Если появятся сообщения о несоответствии требований, устраните их (пакеты, php.ini и права файлов) и перезапустите страницу.

На странице ввода данных базы укажите:

  • User: typo3_admin
  • Password: typo3_admin_password
  • Connection type: socket

Ввод пользователя базы данных и пароля.

Выберите Use an existing empty database и базу typo3.

Выбор базы данных для TYPO3.

Далее задайте логин администратора и имя сайта.

Ввод имени пользователя TYPO3 и пароля.

При завершении инсталляции вы можете скачать список distributions (демо-сайтов) или пропустить. Откройте бэкенд:

Установка TYPO3 завершена.

Админ-панель доступна по адресу http://www.example.com/typo3/ — войдите под логином admin и паролем, который вы задали.

Вход в панель TYPO3.

Интерфейс TYPO3 8.1 CMS.

Frontend покажет сообщение “Service Unavailable (503) No pages are found on the root level!” пока вы не добавите root-страницу в бекенде.

Рекомендация: изучите официальную документацию TYPO3 по созданию первой страницы и структуре сайта.

12. Виртуальная машина (опционально)

Готовый образ в формате ovf/ova доступен подписчикам Howtoforge. Параметры входа в VM из исходного руководства:

SSH / Shell:

  • Username: administrator
  • Password: howtoforge

MySQL / MariaDB:

  • Username: root
  • Password: howtoforge

TYPO3 Login:

  • Username: admin
  • Password: howtoforge

IP VM: 192.168.1.100 (можно изменить в /etc/network/interfaces)

Важно: незамедлительно смените все пароли в образе перед подключением к сети.

13. Безопасность и жесткое оформление (Security hardening)

  • Уберите FIRST_INSTALL после успешной установки (установщик сам удаляет, если владелец www-data). Если файл остался — удалите.
  • Используйте безопасные пароли и ограничьте доступ к базе (host=’localhost’ или unix-сокет).
  • Закройте доступ к директориям конфигурации: deny all для /typo3conf и /fileadmin/private.
  • Настройте HTTPS (TLS) и редирект с HTTP на HTTPS: добавьте слушатель 443 и перенаправление 80 → 443.
  • Регулярно обновляйте систему, PHP и модули, чтобы получать фиксы безопасности.
  • Отключите ненужные PHP-функции в php.ini (например, exec, shell_exec), если они не требуются.

14. Отладка и распространённые проблемы

Проблема: Страница установки сообщает о несоответствии требований.

  • Проверьте логи PHP-FPM (/var/log/php7.0-fpm.log) и Nginx (/var/log/nginx/error.log).
  • Убедитесь, что права на файлы корректны (www-data владелец).
  • Проверьте значения memory_limit и max_execution_time.

Проблема: 504/502 при обработке PHP.

  • Убедитесь, что PHP-FPM запущен и сокет существует: /var/run/php/php7.0-fpm.sock.
  • Увеличьте fastcgi_read_timeout и worker-параметры при необходимости.

Проблема: Страницы не отображаются (чистые URL не работают).

  • Проверьте try_files в конфиге Nginx: try_files $uri $uri/ /index.php$is_args$args;
  • Убедитесь, что корень (root) указывает на web-поддиректорию TYPO3.

15. Критерии приёмки

  • Nginx обслуживает http://www.example.com и перенаправляет на WWW.
  • Веб-инсталлятор TYPO3 доступен и проходит все проверки системы.
  • Админ-панель доступна по /typo3/ и можно войти под созданным админом.
  • Frontend отображает страницу сайта после добавления root-страницы в бекенде.
  • Логи Nginx и PHP-FPM не содержат критических ошибок.

16. Роли и чеклисты (role-based checklists)

Для системного администратора:

  • Установить Nginx, PHP-FPM, MySQL/MariaDB
  • Настроить сокет PHP-FPM и права на файлы
  • Настроить HTTPS и бэкап конфигураций
  • Обновить пакеты и настроить firewall

Для разработчика сайта:

  • Убедиться, что установка прошла успешно
  • Добавить root-страницу в бэкенде
  • Настроить template, extensions и Templating
  • Проверить работоспособность плагинов/расширений

Для контент-менеджера:

  • Войти в бэкенд и изучить структуру страниц
  • Создать первую страницу и заполнить контент
  • Проверить отображение в frontend

17. Мини-методология отката (rollback)

  1. Если установка привела к сбоям, верните конфигурационные файлы из резервной копии.
  2. Откатите изменения базы данных из дампа (если есть): mysql typo3 < backup.sql.
  3. Удалите неподдерживаемые расширения или вернитесь к предыдущему релизу кода.
  4. Перезапустите сервисы: service php7.0-fpm restart && service nginx restart.

18. Краткие советы по миграции и совместимости

  • Для обновления с более старых версий TYPO3 проверьте миграционные инструкции на официальном сайте TYPO3.
  • При переходе на более позднюю версию PHP учтите, что пути к сокетам и имена пакетов могут измениться (php7.1, php7.2 и т.д.).
  • При миграции с Apache на Nginx перепишите правила .htaccess в try_files/rewrites Nginx.

19. Небольшой поток принятия решений (decision flow)

flowchart TD
  A[Запуск установки] --> B{Проверка требований}
  B -- ОК --> C[Создать FIRST_INSTALL и запустить инсталлятор]
  B -- Ошибка --> D[Исправить PHP/Nginx/пакеты]
  D --> B
  C --> E{База данных настроена?}
  E -- Да --> F[Заполнить данные и завершить установку]
  E -- Нет --> G[Создать базу и пользователя]
  G --> F

20. Заключение и дальнейшие шаги

После успешной инсталляции:

  • Смените все временные пароли на безопасные.
  • Настройте HTTPS и автоматические бэкапы.
  • Установите только проверенные расширения для TYPO3.
  • Ознакомьтесь с официальной документацией TYPO3 по созданию сайтов.

Резюме

  • Установка TYPO3 требует настройки прав, PHP-FPM, Nginx vhost и базы данных.
  • Внимательно проверьте php.ini и параметры Nginx (client_max_body_size, try_files).
  • После установки обязательно обеспечить безопасность и регулярное обновление.

Источники и полезные ссылки

Дополнительные изображения приведены выше для пошагового визуального сопровождения установки.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

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

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро