Системные требования

Для работы TYPO3 требуется веб-сервер под управлением PHP и доступ к базе данных.

Для локальной разработки понадобится Composer.

Если нужно, чтобы TYPO3 автоматически выполнял обработку изображений, например, масштабирование или обрезку, необходимо установить на сервере GraphicsMagick (версия 1.3 или выше) или ImageMagick (версия 6 или выше) (GraphicsMagick предпочтительнее).

Актуальную информацию о системных требованиях TYPO3 можно получить на сайте get.typo3.org.

PHP

Настройка

В настройках необходимо задать следующие параметры php.ini

php.ini
; memory_limit >= 256MB
memory_limit=256M

; max_execution_time >= 240 seconds
max_execution_time=240

; max_input_vars >= 1500
max_input_vars=1500
Copied!

Следующие настройки определяют максимальный размер загружаемого файла (и при необходимости должны быть изменены):

php.ini
; To allow uploads of a maximum of 10 MB
post_max_size = 10M
upload_max_filesize = 10M
Copied!

Необходимые расширения

  • pdo
  • session
  • xml
  • filter
  • SPL
  • standard
  • tokenizer
  • mbstring
  • intl

В зависимости от варианта использования могут потребоваться следующие расширения:

  • fileinfo (используется для определения расширений загружаемых файлов);
  • gd (GDlib/Freetype необходим для создания изображений с текстом (GIFBUILDER), а также используется для масштабирования изображений);
  • zip (TYPO3 использует zip для извлечения языковых архивов, а также для извлечения и архивирования расширений);
  • zlib (TYPO3 использует zlib для сжатия на выводе);
  • openssl (OpenSSL необходим для отправки SMTP-сообщений через зашифрованный канал конечной точки).

Необходимые расширения для баз данных

  • pdo_mysql (рекомендуется)
  • ИЛИ mysqli

Для работы экземпляров MySQL и MariaDB требуется движок InnoDB.

  • pdo_pgsql
  • postgresql
  • sqlite

Веб сервер

При первоначальной установке в корневой каталог TYPO3 копируется файл .htaccess с настройками по умолчанию.

Запись Virtual Host

  • AllowOverride необходимо включить "Indexes" и "FileInfo" в запись виртуального хоста Virtual Host.

Модули Apache

Необходимы следующие модули Apache. Список составлен на основе того, что используется в стандартном TYPO3 .htaccess. В некоторых случаях это не является "жестким" требованием, но настоятельно рекомендуется по соображениям безопасности или производительности, однако желаемый результат можно получить и другим способом, используя другой модуль.

mod_alias:
Блокировка доступа к каталогам vcs.
mod_authz_core:
Блокировка доступа к определенным файлам и каталогам.
mod_deflate:
Используется для сжатия и повышения производительности.
mod_expires:
Добавляет HTTP-заголовки для кэширования в браузере и повышения производительности.
mod_filter:
Используется с mod_deflate.
mod_headers:
Используется в комбинации с mod_deflate.
mod_rewrite:
Включение человекочитаемые урлы.
mod_setenvif:
Используется в комбинации с mod_deflate.

NGINX не поддерживает статические конфигурационные файлы, которые хранятся в корне проекта, как это делают Apache и IIS. Вместо этого NGINX требует, чтобы конфигурационный файл был создан в собственном каталоге конфигурации приложения.

Пример файла конфигурации NGINX:

/etc/nginx/conf.d/nginx.conf
# Compressing resource files will save bandwidth and so improve loading speed especially for users
# with slower internet connections. TYPO3 can compress the .js and .css files for you.
# *) Set $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] = 9 for the Backend
# *) Set $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] = 9 together with the TypoScript properties
#    config.compressJs and config.compressCss for GZIP compression of Frontend JS and CSS files.
location ~ \.js\.gzip$ {
    add_header Content-Encoding gzip;
    gzip off;
    types { text/javascript gzip; }
}
location ~ \.css\.gzip$ {
    add_header Content-Encoding gzip;
    gzip off;
    types { text/css gzip; }
}

# TYPO3 - Rule for versioned static files, configured through:
# - $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
# - $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename']
if (!-e $request_filename) {
    rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
}

# TYPO3 - Block access to composer files
location ~* composer\.(?:json|lock) {
    deny all;
}

# TYPO3 - Block access to flexform files
location ~* flexform[^.]*\.xml {
    deny all;
}

# TYPO3 - Block access to language files
location ~* locallang[^.]*\.(?:xml|xlf)$ {
    deny all;
}

# TYPO3 - Block access to static typoscript files
location ~* ext_conf_template\.txt|ext_typoscript_constants\.txt|ext_typoscript_setup\.txt {
    deny all;
}

# TYPO3 - Block access to miscellaneous protected files
location ~* /.*\.(?:bak|co?nf|cfg|ya?ml|ts|typoscript|tsconfig|dist|fla|in[ci]|log|sh|sql|sqlite)$ {
    deny all;
}

# TYPO3 - Block access to recycler and temporary directories
location ~ _(?:recycler|temp)_/ {
    deny all;
}

# TYPO3 - Block access to configuration files stored in fileadmin
location ~ fileadmin/(?:templates)/.*\.(?:txt|ts|typoscript)$ {
    deny all;
}

# TYPO3 - Block access to libraries, source and temporary compiled data
location ~ ^(?:vendor|typo3_src|typo3temp/var) {
    deny all;
}

# TYPO3 - Block access to protected extension directories
location ~ (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/(?:Configuration|Resources/Private|Tests?|Documentation|docs?)/ {
    deny all;
}

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

location = /typo3 {
    rewrite ^ /typo3/;
}

location /typo3/ {
    absolute_redirect off;
    try_files $uri /typo3/index.php$is_args$args;
}

location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    fastcgi_buffer_size 32k;
    fastcgi_buffers 8 16k;
    fastcgi_connect_timeout 240s;
    fastcgi_read_timeout 240s;
    fastcgi_send_timeout 240s;

    # this is the PHP-FPM upstream - see also: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/#connecting-nginx-to-php-fpm
    fastcgi_pass         php-fpm:9000;
    fastcgi_index        index.php;
    include              fastcgi.conf;
}
Copied!
  • При первоначальной установки TYPO3 в корневую папку установки копируется стандартный файл веб-конфигурации IIS.
  • Стандартный файл веб-конфигурации IIS с правилами перезаписи можно найти в EXT:install/Resources/Private/FolderStructureTemplateFiles/root-web-config
  • Требуется URL Rewrite дополнение.

База данных

Необходимые права доступа к базе данных

Пользователю базы данных требуются следующие привилегии доступа к базе данных TYPO3:

  • SELECT, INSERT, UPDATE, DELETE
  • CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES

Рекомендуется также гарантировать следующие привелегии:

  • CREATE VIEW, SHOW VIEW
  • EXECUTE, CREATE ROUTINE, ALTER ROUTINE

Composer

Composer требуется только для локальных установок - см. https://getcomposer.org для получения дополнительной информации. Рекомендуется всегда использовать последнюю доступную версию Composer. Для TYPO3 v12 LTS требуется версия Composer не ниже 2.1.0.