Установка и настройка 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.vhostserver {
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 в документ-руте.

Создайте файл и назначьте владельца www-data:
cd /var/www/www.example.com/web/
touch FIRST_INSTALL
chown www-data:www-data FIRST_INSTALLПерезагрузите страницу. Инсталлятор проверит системные требования и покажет предупреждения и замечания, которые желательно устранить до продолжения.

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

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

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

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

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

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

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 и доступ к ним.
Отладка: распространённые проблемы и решения
Ошибка 502 Bad Gateway при обращении к PHP-файлам:
- Проверьте, что php5-fpm запущен и сокет /var/run/php5-fpm.sock существует.
- Если используется TCP (127.0.0.1:9000), поправьте fastcgi_pass.
Переменные окружения или права:
- Проверьте владельца и права: chown -R www-data:www-data /var/www/…
- Проверьте SELinux/AppArmor, если они включены — возможно требуется дополнительная настройка.
Проблемы с загрузкой больших файлов:
- Проверьте client_max_body_size в Nginx и upload_max_filesize / post_max_size в php.ini.
«Чёрный экран» или ошибки PHP:
- Включите логирование ошибок в php-fpm и Nginx, посмотрите логи /var/log/nginx и /var/log/php5-fpm.log.
Мини-методология развертывания (короткий SOP)
- Подготовить сервер: обновить пакеты, установить Nginx, PHP-FPM, MariaDB.
- Установить APCu; перезапустить PHP-FPM.
- Развернуть файлы TYPO3 в документ-рут и настроить права.
- Создать базу данных и пользователя.
- Создать vhost Nginx и включить его, перезагрузить nginx.
- Применить настройки php.ini и перезапустить php-fpm.
- Создать файл FIRST_INSTALL и завершить установку через веб-инсталлятор.
- Снять файл 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 по окончании установки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента