TYPO3-Hosting auf nginx
TYPO3 ist ein Open-Source-Content-Management-System (CMS), das durch seine Vielseitigkeit für den Unternehmenseinsatz gedacht ist, aber genauso gut auch für kleine Webseiten eingesetzt werden kann. Durch Tausende von Extensions lässt es sich an fast alle Bedürfnisse anpassen, was es zu einem sehr beliebten und verbreiteten CMS macht.
Zu unseren TYPO3-Hosting-Angeboten ▶
TYPO3 4.x
Die Konfiguration für das TYPO3-Hosting unter nginx sieht folgendermaßen aus (die Konfiguration ist der Anleitung Running TYPO3 4.6 On Nginx (LEMP) On Debian Squeeze/Ubuntu 11.10 entnommen, die Falko Timme auf HowtoForge veröffentlicht hat):
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
location ~* \.(cur|ico|gif|png|jpe?g|css|js|swf|woff)((\?\d\d\d\d\d\d\d\d\d\d)|(\?s=\d\d\d\d\d\d\d\d\d\d))$ {
expires max;
log_not_found off;
}
location ~* \.(cur|ico|gif|png|jpe?g|css|js|swf|woff)(\?v\d\d?\.\d\d?\.\d\d?)$ {
expires max;
log_not_found off;
}
location ~* ^(/typo3/sysext|/typo3conf/ext).*\.(cur|ico|gif|png|jpe?g|css|js|swf|woff) {
expires max;
log_not_found off;
}
location = /clear.gif {
empty_gif;
expires max;
}
location ^~ /typo3/gfx {
expires max;
}
location ^~ /typo3temp/compressor {
expires max;
}
location ~* \.(sql|htaccess|htpasswd|tpl|html5|xhtml) {
deny all;
}
location / {
if ($query_string ~ ".+") {
return 405;
}
# pass requests from logged-in users to PHP
if ($http_cookie = 'nc_staticfilecache|be_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;
# serve requested content from the cache if available, otherwise pass the request to PHP
try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;
}
location @nocache {
try_files $uri $uri/ /index.php?$args;
}
location ^~ /typo3temp/tx_ncstaticfilecache {
expires 43200;
charset utf-8;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
Damit sind auch schon die Rewrite Rules abgedeckt, die für Real URLs notwendig sind. Die Konfiguration berücksichtigt auch schon den Einsatz der Static File Cache Extension (nc_staticfilecache), mit deren Hilfe ganze Seiten gecacht werden können; die nginx-Konfiguration funktioniert aber auch, wenn die Static File Cache Extension nicht benutzt wird.
Danach kann TYPO3 ganz einfach über den webbasierten Installer installiert werden, wie es in dem Tutorial von Falko Timme weiter beschrieben ist.
TYPO3 6.2
Für TYPO3 6.2 ist die folgende nginx-Konfiguration notwendig:
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
} 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; } # pass requests from logged-in users to PHP 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; # serve requested content from the cache if available, otherwise pass the request to PHP try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache; } location @nocache { try_files $uri $uri/ /index.php$is_args$args; }
- Die TYPO3-Installation übernehmen wir auf Wunsch auch gerne für Sie; wenn Sie eine bestehende TYPO3-Seite haben, ziehen wir diese kostenlos für Sie von Ihrem alten Hoster zu Timme Hosting um.
- Unsere TYPO3-Demo-Seite vermittelt einen Eindruck davon, wie schnell TYPO3 unter nginx läuft.