Установка TYPO3 7 LTS на Ubuntu 15.10 с Nginx (LEMP)
О чём эта инструкция
Эта статья показывает, как установить 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 nano2 Установка APCu
APCu — это бесплатный PHP opcode-кэшер для кеширования и оптимизации промежуточного кода PHP. Рекомендуется установить opcode-кэш, чтобы ускорить обработку PHP-страниц.
apt-get install php-apcuЕсли вы используете PHP-FPM, перезапустите сервис:
service php5-fpm restart3 Установка 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.

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

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

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

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

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

После входа вы увидите административную панель 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 Полезные ссылки
- TYPO3: http://typo3.org/
- Nginx: http://nginx.org/
- Nginx Wiki: http://wiki.nginx.org/
- Ubuntu: http://www.ubuntu.com/
Быстрая инструкция (SOP)
- Убедитесь в наличии рабочего LEMP-стека (Nginx, MySQL, PHP-FPM).
- Установите nano и php-apcu.
- Создайте корень сайта и скачайте TYPO3.
- Создайте MySQL-базу и пользователя.
- Настройте Nginx vhost и MIME-тип htc.
- Настройте php.ini согласно требованиям и перезапустите PHP-FPM.
- Создайте 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
- Перенести контент и расширения.
- Преобразовать правила .htaccess в эквиваленты для Nginx (try_files, rewrite).
- Настроить FastCGI и права.
- Протестировать все страницы и формы.
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 и настройки прав на файловой системе.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента