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

Установка и настройка TYPO3 7 на Debian 8 с Nginx и MariaDB

• 6 min read • DevOps • Обновлено 28 Nov 2025
TYPO3 7 на Debian 8 с Nginx и MariaDB
TYPO3 7 на Debian 8 с Nginx и MariaDB

Важно: в примерах используется IP 192.168.1.100 и домен www.example.com — замените их на свои значения во всех файлах и командах.

О чём статья

Это руководство описывает установку TYPO3 версии 7 на Debian 8 (Jessie) с Nginx в качестве веб-сервера и MariaDB в качестве СУБД. Подробно показаны команды, конфигурация Nginx, настройки PHP-FPM и запуск веб-инсталлятора. Также включены рекомендации по безопасности, отладке и чек-листы для ролей.

Предварительные условия

  • Сервер с Debian 8 (Jessie).
  • Уже установлен Nginx, PHP (PHP-FPM) и MariaDB. Если нет — установите их прежде, чем продолжать.
  • Доступ по SSH с правами root.

Определите домен (в примере www.example.com) и документ-рут /var/www/www.example.com/web. Сервер в примере имеет IP 192.168.1.100 — замените этот IP на фактический.

Установка APCu

APCu — быстрый кэшер опкодов для PHP. Рекомендуется иметь установленный опкод-кеш (APCu, Opcache и т.п.) для ускорения PHP-приложений.

Установка APCu выполняется командой:

apt-get install php5-apcu

Если вы используете php-fpm, перезапустите сервис:

systemctl restart php5-fpm.service

Развёртывание файлов TYPO3

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

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

Скачайте TYPO3 7.6.4 и разместите архив в документ-руте (пример с загрузкой в /tmp и переносом):

cd /tmp  
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz  
tar xfz typo3_src-7.6.4.tar.gz  
mv typo3_src-7.6.4 /var/www/www.example.com/  
cd /var/www/www.example.com/web  
ln -s ../typo3_src-7.6.4 typo3_src  
ln -s typo3_src/index.php  
ln -s typo3_src/typo3

Сделайте документ-рут и файлы TYPO3 доступными для пользователя nginx (www-data):

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

Создание базы данных MariaDB / MySQL

Если база данных для TYPO3 ещё не создана, создайте её и пользователя. В примере база «typo3», пользователь «typo3_admin», пароль «typo3_admin_password». Замените на безопасные пароли в реальной среде.

mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3

Подключитесь к mysql:

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

В интерактивной оболочке выполните:

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;

Конфигурация Nginx для vhost

Создайте файл виртуального хоста /etc/nginx/sites-available/www.example.com.vhost и вставьте следующую конфигурацию (пример из руководства):

nano /etc/nginx/sites-available/www.example.com.vhost
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/php5-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;
        }

}

Эта конфигурация поддерживает «чистые» URL благодаря строке try_files в блоке @nocache.

Убедитесь, что в /etc/nginx/mime.types присутствует запись для htc (если требуется):

nano /etc/nginx/mime.types

В разделе типов MIME должна быть строка:

        text/x-component                        htc;

Чтобы включить vhost, создайте символьную ссылку в sites-enabled:

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

Перезагрузите nginx:

systemctl reload nginx.service

Настройка PHP для TYPO3

Если вы используете php-fpm, откройте файл /etc/php5/fpm/php.ini и отредактируйте параметры, важные для TYPO3:

nano /etc/php5/fpm/php.ini

Отредактируйте значения:

[...]  
always_populate_raw_post_data=-1  
[...]  
max_execution_time=240  
[...]  
post_max_size = 20M  
[...]  
upload_max_filesize = 20M  
[...]  
max_input_vars=2000  
[...]

Примените изменения:

systemctl reload php5-fpm.service

Запуск веб-инсталлятора TYPO3

Откройте в браузере http://www.example.com/ — установщик попросит создать файл FIRST_INSTALL в документ-руте.

Указание создать файл FIRST_INSTALL в корне сайта

Создайте файл и назначьте владельца www-data:

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

Перезагрузите страницу. Инсталлятор проверит системные требования и покажет предупреждения и замечания, которые желательно устранить до продолжения.

Проверка системы инсталлятором Typo3

Нажмите Continue.

Далее введите данные базы (пользователь: typo3_admin, пароль: typo3_admin_password, имя базы: typo3) и нажмите Continue:

Ввод данных базы для Typo3

Выберите Use an existing empty database и укажите typo3 из выпадающего списка. Нажмите Continue:

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

Задайте учётные данные администратора TYPO3 и имя сайта. Нажмите Continue:

Установка логина и пароля администратора Typo3

Если хотите сразу подготовить демо-сайт, оставьте опцию загрузки списка дистрибутивов отмеченной. Можно также начать с пустой установки.

Выбор пресета для Typo3

Откройте бэкенд: http://www.example.com/typo3/ — войдите под admin и паролем, который задали.

Вход в систему Typo3

Пример рабочего бэкенда после входа:

Рабочий бэкенд Typo3

TYPO3 установлен и готов к настройке контента и расширений.

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

Готовый образ в формате OVA/OVF доступен для подписчиков (VMWare/VirtualBox). Данные для входа в VM по умолчанию:

Typo3 Login
Username: admin
Password: howtoforge

SSH Login
Username: root
Password: howtoforge

MariaDB Login
Username: root
Password: howtoforge

Обязательно смените пароли после первого входа. VM настроена на статический IP 192.168.1.100; изменить можно в файле /etc/network/interfaces.

Рекомендации по безопасности

  • Используйте сложные пароли и отключите root-доступ по паролю через SSH (ключи SSH).
  • Отключите отображение ошибок PHP на продакшн (display_errors = Off).
  • Регулярно обновляйте систему и пакеты: apt-get update && apt-get upgrade.
  • Закройте доступ к административному интерфейсу (typo3) по IP или через VPN, если возможно.
  • Делайте резервные копии базы и файлов (rsync, mysqldump) по расписанию.

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

  • Сайт доступен по HTTP и отвечает 200 для страницы входа.
  • Бэкенд TYPO3 открывается и разрешает логин под созданным администратором.
  • Расширения и демо-данные (если устанавливали) доступны в бэкенде.
  • Права на файлы и папки корректны: веб-сервер может записывать в нужные каталоги (fileadmin, typo3temp, uploads).
  • Веб-инсталлятор не показывает критических ошибок и все рекомендуемые расширения доступны/установлены.

Чек-листы по ролям

Системный администратор:

  • Проверить установку Nginx, PHP-FPM, MariaDB.
  • Настроить права на файлы и владельца www-data.
  • Настроить регулярные бэкапы и мониторинг.

Разработчик / интегратор:

  • Проверить правильность try_files и передачи в fastcgi.
  • Настроить окружение разработки (xdebug отдельно).
  • Тестировать миграции и обновления на стейдж-сервере.

Контент-менеджер:

  • Пройти в бэкенд, добавить тестовую страницу и проверить вывод.
  • Проверить загрузку файлов в fileadmin и доступ к ним.

Отладка: распространённые проблемы и решения

  1. Ошибка 502 Bad Gateway при обращении к PHP-файлам:

    • Проверьте, что php5-fpm запущен и сокет /var/run/php5-fpm.sock существует.
    • Если используется TCP (127.0.0.1:9000), поправьте fastcgi_pass.
  2. Переменные окружения или права:

    • Проверьте владельца и права: chown -R www-data:www-data /var/www/…
    • Проверьте SELinux/AppArmor, если они включены — возможно требуется дополнительная настройка.
  3. Проблемы с загрузкой больших файлов:

    • Проверьте client_max_body_size в Nginx и upload_max_filesize / post_max_size в php.ini.
  4. «Чёрный экран» или ошибки PHP:

    • Включите логирование ошибок в php-fpm и Nginx, посмотрите логи /var/log/nginx и /var/log/php5-fpm.log.

Мини-методология развертывания (короткий SOP)

  1. Подготовить сервер: обновить пакеты, установить Nginx, PHP-FPM, MariaDB.
  2. Установить APCu; перезапустить PHP-FPM.
  3. Развернуть файлы TYPO3 в документ-рут и настроить права.
  4. Создать базу данных и пользователя.
  5. Создать vhost Nginx и включить его, перезагрузить nginx.
  6. Применить настройки php.ini и перезапустить php-fpm.
  7. Создать файл FIRST_INSTALL и завершить установку через веб-инсталлятор.
  8. Снять файл FIRST_INSTALL после успешной установки и применить финальную проверку безопасности.

Быстрый шаблон проверок перед выпуском в прод

  • Проверить отсутствие файла FIRST_INSTALL (удалить).
  • Проверить права на каталог typo3conf и fileadmin.
  • Настроить HTTPS (сертификат Let’s Encrypt или коммерческий).
  • Проверить логирование и мониторинг.

1-line словарь

  • document root — корневой каталог сайта, где находятся публичные файлы.
  • php-fpm — FastCGI-процесс менеджер для PHP.
  • APCu — пользовательский кеш опкодов для PHP.
  • try_files — директива Nginx для проверки наличия файлов перед передачей на backend.

Альтернативы и когда этот подход не подходит

  • Если вы предпочитаете Apache — можно установить TYPO3 с Apache вместо Nginx; конфигурация mod_rewrite отличается.
  • Для современных версий TYPO3 (9+) и PHP (7.x+) используйте соответствующие пакеты и адаптированные инструкции — данное руководство для TYPO3 7 и Debian 8.

Рекомендации по миграции и совместимости

  • При обновлении TYPO3 между мажорными версиями просмотрите release notes и миграционные инструкции.
  • Проверьте совместимость расширений (extensions) и версии PHP.
  • Тестируйте обновления на стейдж-окружении до продакшна.

Дополнительно: поток выбора установки (decision)

flowchart TD
  A[Начало: есть ли Nginx, PHP, MariaDB?] -->|Да| B[Установить APCu и развернуть файлы TYPO3]
  A -->|Нет| C[Установить требуемые компоненты]
  C --> B
  B --> D{Создана ли база данных?}
  D -->|Нет| E[Создать базу и пользователя]
  D -->|Да| F[Настроить Nginx vhost и php.ini]
  E --> F
  F --> G[Создать FIRST_INSTALL и запустить веб-инсталлятор]
  G --> H[Тестирование и безопасность]

Заключение

TYPO3 7 на Debian 8 с Nginx и MariaDB разворачивается последовательно: подготовка окружения, загрузка и развертывание файлов, создание базы, настройка Nginx и PHP, и завершение через веб-инсталлятор. После установки уделите внимание безопасности, бэкапам и тестированию расширений.

Короткая памятка: замените в примерах домен и IP, используйте надёжные пароли и снимайте файл FIRST_INSTALL по окончании установки.

Поделиться: 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 быстро