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

Установка TYPO3 7 LTS на Ubuntu 15.10 с Nginx (LEMP)

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

О чём эта инструкция

Эта статья показывает, как установить TYPO3 (версия 7 LTS) на систему Ubuntu 15.10, где в роли веб-сервера используется Nginx. Такую связку часто называют LEMP (Linux + Nginx + MySQL + PHP). Nginx экономит ресурсы и быстрее отдаёт статические файлы по сравнению с Apache.

Важно: инструкция рассчитана на пользователя, который имеет или готов установить рабочий LEMP-стек. Если LEMP ещё не установлен, сначала настройте его (например, воспользуйтесь руководством по Ubuntu LEMP Server).

1 Предварительная информация

Я буду устанавливать TYPO3 для виртуального хоста www.example.com с корнем документов /var/www/www.example.com/web.

Поскольку большая часть команд требует root-привилегий, можно выполнять их с sudo или сразу перейти в root:

sudo su

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

apt-get install nano

2 Установка APCu

APCu — это бесплатный PHP opcode-кэшер для кеширования и оптимизации промежуточного кода PHP. Рекомендуется установить opcode-кэш, чтобы ускорить обработку PHP-страниц.

apt-get install php-apcu

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

service php5-fpm restart

3 Установка TYPO3

Создайте корень сайта, если он ещё не существует:

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

Скачайте TYPO3 7 и разархивируйте его в документ-рут:

cd /var/www/www.example.com
wget get.typo3.org/7.6 -O typo3_src-7.6.0.tar.gz
tar xvfz typo3_src-7.6.0.tar.gz
rm typo3_src-7.6.x.tar.gz
cd web
ln -s ../typo3_src-7.6.0 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3

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

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

Создание базы данных MySQL для TYPO3

Если база данных ещё не создана, войдите в MySQL (здесь используется конфигурация по умолчанию для Debian/Ubuntu):

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

Внутри клиентской сессии выполните команды создания базы и пользователя (в примере имя базы — typo3, пользователь typo3_admin):

CREATE DATABASE typo3;
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/:

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

Вставьте следующую конфигурацию (обратите внимание на точки, связанные с try_files и FastCGI):

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

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

nano /etc/nginx/mime.types

Найдите и проверьте, что есть:

        text/x-component                        htc;

Активируйте vhost, создав символическую ссылку:

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

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

service nginx reload

Запуск установщика TYPO3

Создайте файл FIRST_INSTALL в корне сайта, чтобы разрешить веб-инсталлятор:

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

Настройка php.ini для требований TYPO3

Откройте файл php.ini для PHP-FPM:

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=1500
[....]
memory_limit = 256M
[....]

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

service php5-fpm restart

Теперь откройте в браузере http://www.example.com/ и запустите веб-инсталлятор TYPO3.

Экран установки TYPO3 — проверка системных требований.

На странице предварительной проверки нажмите кнопку «System looks good. Continue» (Система в порядке. Продолжить). Если какие-то требования не выполнены, исправьте конфигурацию и обновите страницу.

Далее заполните данные для подключения к базе (пользователь: typo3_admin; пароль: typo3_admin_password в примере) и продолжите:

Экран установки TYPO3 — детали базы данных.

Выберите «Use an existing empty database» и укажите базу typo3, затем продолжите:

Экран установки TYPO3 — выбор базы данных.

Создайте администратора TYPO3 и укажите имя сайта, затем нажмите Continue:

Экран установки TYPO3 — создание администратора.

Установка завершена. При желании можно загрузить список дистрибутивов с демоданными. Откройте бэкенд:

Экран установки TYPO3 — завершение установки.

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

Экран входа в TYPO3.

После входа вы увидите административную панель TYPO3 7 и сможете создавать страницы и структуру сайта.

Администраторский интерфейс TYPO3 7.

Фронтенд будет выдавать сообщение «Service Unavailable (503) No pages are found on the rootlevel!» до тех пор, пока вы не создадите корневую страницу в бэкенде. Если вы не знакомы с TYPO3, начните с официальной документации по созданию первого сайта.

4 Образ виртуальной машины (овf/ova)

Это руководство доступно как готовый образ виртуальной машины в формате ovf/ova для подписчиков Howtoforge. Формат совместим с VMWare и VirtualBox. Данные для входа в образ:

SSH / Shell Login

Username: administrator Password: howtoforge

Этот пользователь имеет sudo-права.

MySQL / MariaDB Login

Username: root Password: howtoforge

IP виртуальной машины: 192.168.1.100 (можно изменить в /etc/network/interfaces).

TYPO3 Login

Username: admin Password: howtoforge

Обязательно смените все пароли в рабочем окружении.

5 Полезные ссылки


Быстрая инструкция (SOP)

  1. Убедитесь в наличии рабочего LEMP-стека (Nginx, MySQL, PHP-FPM).
  2. Установите nano и php-apcu.
  3. Создайте корень сайта и скачайте TYPO3.
  4. Создайте MySQL-базу и пользователя.
  5. Настройте Nginx vhost и MIME-тип htc.
  6. Настройте php.ini согласно требованиям и перезапустите PHP-FPM.
  7. Создайте FIRST_INSTALL и откройте http://www.example.com/ для запуска установщика.

Чеклист ролей

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

  • Установить LEMP и утилиты (nano, wget).
  • Настроить права на /var/www/www.example.com (www-data).
  • Перезагрузить nginx и php-fpm после правок.

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

  • Проверить правильность try_files и fastcgi_param в конфиге Nginx.
  • Обеспечить поддержку чистых URL и кэширования статических файлов.

DevOps / Безопасность:

  • Закрыть доступ к .htaccess и приватным ресурсам.
  • Обновить пароли MySQL и админки TYPO3.
  • Ограничить доступ к административной части через firewall/ACL по IP при необходимости.

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

  • Nginx успешно обслуживает сайт на http://www.example.com/.
  • Веб-инсталлятор TYPO3 запускается и завершает установку без ошибок.
  • Главная административная страница доступна по /typo3/ и вход возможен с administrtator-учёткой.
  • Файловая система и FIRST_INSTALL доступны для записи демону www-data.

Таблица ключевых значений (факт-бокс)

  • client_max_body_size: 100M
  • post_max_size / upload_max_filesize: 20M
  • memory_limit: 256M
  • max_execution_time: 240
  • max_input_vars: 1500
  • PHP opcode-кэш: рекомендуется APCu

Частые проблемы и решения

  • Ошибка 502 Bad Gateway: проверьте, что PHP-FPM запущен и путь unix:/var/run/php5-fpm.sock корректен.
  • Установщик не видит базу: проверьте привилегии MySQL и параметры подключения (хост, порт).
  • 503 и сообщение «No pages are found on the rootlevel!» — это нормальное поведение, пока в бэкенде не создана корневая страница.

Модель принятия решений: нужно ли использовать Nginx вместо Apache?

  • Nginx подходит, если нужен низкий расход памяти и быстрая отдача статических файлов.
  • Apache может быть предпочтителен, если требуется богатая поддержка .htaccess и модулей на стороне сервера.

Быстрый план миграции с Apache на Nginx

  1. Перенести контент и расширения.
  2. Преобразовать правила .htaccess в эквиваленты для Nginx (try_files, rewrite).
  3. Настроить FastCGI и права.
  4. Протестировать все страницы и формы.

Decision flow (Mermaid)

graph TD
  A[Есть LEMP?] -->|Да| B[Установить APCu и скачать TYPO3]
  A -->|Нет| C[Установить Nginx, MySQL, PHP-FPM]
  C --> B
  B --> D[Создать БД и пользователя]
  D --> E[Настроить vhost Nginx]
  E --> F[Настроить php.ini и права]
  F --> G[Создать FIRST_INSTALL и запустить инсталлятор]
  G --> H{Успешная установка?}
  H -->|Да| I[Открыть бэкенд и создать корневую страницу]
  H -->|Нет| J[Проверить логи nginx и php-fpm]

Небольшие рекомендации по безопасности

  • Смените пароли по умолчанию в образе и в базе.
  • Отключите доступ к /typo3/install после завершения установки или ограничьте IP.
  • Обновляйте пакеты безопасности для Ubuntu, Nginx и PHP.

Короткое резюме

Вы установили TYPO3 7 LTS на Ubuntu 15.10 с Nginx, настроили виртуальный хост, PHP-FPM и MySQL. В статье представлены необходимые значения php.ini, конфиг Nginx для чистых URL и рекомендации по безопасности и отладке.

Важно: замените примеры паролей и имён баз/пользователей на надёжные значения в production.

Экспертное мнение: Настройка Nginx для TYPO3 даёт хорошую производительность, но требует внимательного переноса правил из .htaccess и настройки прав на файловой системе.

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