System Requirements¶
TYPO3 requires a web server running PHP and access to a database.
Composer is also required for local development.
If you want TYPO3 to automatically carry out image processing – for example scaling or cropping – you will need GraphicsMagick (version 1.3 or newer) or ImageMagick (version 6 or newer) installed on the server. (GraphicsMagick is preferable.)
For up-to-date information about TYPO3's system requirements visit get.typo3.org.
PHP¶
Configure¶
The following settings need to be set in the installations 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
The following settings control the maximum upload file size (and should be adapted if necessary):
; To allow uploads of a maximum of 10 MB
post_max_size = 10M
upload_max_filesize = 10M
Required Extensions¶
pdo
json
pcre >= 8.38
session
xml
filter
SPL
standard
tokenizer
mbstring
intl
Depending on the use case, the following extensions may also be required:
fileinfo (used to detect file extensions of uploaded files)
gd (GDlib/Freetype is required for building images with text (GIFBUILDER) and is also be used to scale images)
zip (TYPO3 uses zip to extract language archives as well as extracting and archiving extensions)
zlib (TYPO3 uses zlib for output compression)
openssl (OpenSSL is required for sending SMTP mails over an encrypted channel endpoint)
Required Database Extensions¶
pdo_mysql (recommended)
OR mysqli
The InnoDB engine is required for MySQL and MariaDB instances.
pdo_pgsql
postgresql
sqlite
Web Server¶
During the initial installation, TYPO3's default .htaccess
file is copied to the installation root folder.
Virtual Host Record
AllowOverride needs to include "Indexes" and "FileInfo" in the Virtual Host record.
Apache Modules
The following Apache modules are required. The list is based on what is used in the default TYPO3 .htaccess. In some cases, it is not a "hard" requirement, but is strongly recommended for security or performance reasons, but you can also handle the desired outcome in a different way with a different module.
- mod_alias:
Block access to vcs directories
- mod_authz_core:
Block access to specific files and directories
- mod_deflate:
Used for compression and performance.
- mod_expires:
Adds HTTP headers for browser caching and performance.
- mod_filter:
Used with mod_deflate.
- mod_headers:
Used in combination with
mod_deflate
.- mod_rewrite:
Enable human readable urls.
- mod_setenvif:
Also used with
mod_deflate
.
NGINX does not support static configuration files that are stored in a projects root like Apache and IIS would. Instead, NGINX requires a configuration file to be created within the applications own configuration directory.
Example NGINX configuration file:
# 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;
}
During the initial installation of TYPO3, the default IIS web config file is copied to the installation root folder.
Default IIS web config file with rewrite rules can be found in
EXT:install/Resources/Private/FolderStructureTemplateFiles/root-web-config
The URL Rewrite plugin is required.
Database¶
Required Database Privileges¶
The database user requires the following privileges on the TYPO3 database:
SELECT, INSERT, UPDATE, DELETE
CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES
It is recommended to also grant the following privileges:
CREATE VIEW, SHOW VIEW
EXECUTE, CREATE ROUTINE, ALTER ROUTINE
Composer¶
Composer is only required for local installations - see https://getcomposer.org for further information. It is recommended to always use the latest available Composer version. TYPO3 v12 LTS requires at least Composer version 2.1.0.