Installation von TYPO3 4.6 auf Nginx (LEMP) unter Debian Squeeze/Ubuntu 11.10

Version 1.0

Author: Falko Timme , Christian Schmalfeld <c [dot] schmalfeld [at] projektfarm [dot] de>
Follow me on Twitter

Dieses Tutorial zeigt Ihnen, wie Sie eine TYPO3 (Version 4.6) Webseite auf einem Debian Squeeze oder Ubuntu 11.10 System installieren und betreiben auf dem nginx anstatt von Apache installiert ist (LEMP = Linux + nginx (ausgesprochen "engine x") + MySQL + PHP). Es behandelt außerdem die Benutzung der nc_staticfilecache Erweiterung, welche es TYPO3 erlaubt Seiten als ganze .html Dateien zu cachen, um so schneller darauf zugreifen zu können (erhöht die Antwortgeschwindigkeit von statischen Seiten um den Faktor 230, ähnlich Drupals Boost Modul). nginx ist ein HTTP Server, welcher weit weniger Ressourcen verbraucht als Apache und Seiten, besonders statische, sehr viel schneller liefert.

Ich gebe keinerlei Garantie dafür, dass die Inhalte bei Ihnen funktionieren!

1 Vorbemerkung

Ich installiere TYPO3 in einem vhost namens www.example.com/example.com mit dem Stammverzeichnis /var/www/www.example.com/web.

Sie sollten bereits eine funktionierende LEMP Installation haben, so wie sie in diesen (englischsprachigen) Tutorials beschrieben wird:
Eine Bemerkung für Ubuntu-Benutzer:
Da alle Schritte des Tutorials mit Administratorrechten ausgeführt werden müssen, können Sie entweder allen Befehlen die Zeichenfolge sudo voranstellen, oder sich mit folgendem Befehl als root-Benutzer anmelden:

sudo su


2 Installation von APC

APC ist ein kostenloser und offener PHP opcode Cacher zum cachen und optimieren von PHP Intermediate Code. Er ähnelt anderen PHP opcode Cachern wie eAccelerator und XCache. Es wird dringlichst empfohlen einen von Ihnen zu installieren, um Ihre PHP Seite zu beschleunigen.

APC kann folgendermaßen installiert werden:

apt-get install php-apc

Wenn Sie PHP-FPM als Ihren FastCGI Daemon benutzen (wie in Installing Nginx With PHP5 (And PHP-FPM) And MySQL Support On Ubuntu 11.10), können Sie ihn folgendermaßen neustarten:

/etc/init.d/php5-fpm restart

Benutzen Sie lighttpds spawn-fcgi Programm als Ihren FastCGI Daemon (wie in Installing Nginx With PHP5 And MySQL Support On Debian Squeeze), müssen Sie den aktuellen spawn-fcgi Prozess killen (dieser läuft auf Port 9000) und einen neuen erstellen. Benutzen Sie

netstat -tap

um die Prozess ID des aktuellen spawn-fcgi Prozesses zu finden:

root@server1:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      734/portmap
tcp        0      0 *:www                   *:*                     LISTEN      2987/nginx
tcp        0      0 *:ssh                   *:*                     LISTEN      1531/sshd
tcp        0      0 *:57174                 *:*                     LISTEN      748/rpc.statd
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      1507/exim4
tcp        0      0 localhost.localdom:9000 *:*                     LISTEN      1542/php5-cgi tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      1168/mysqld
tcp        0     52 server1.example.com:ssh 192.168.0.198:2462      ESTABLISHED 1557/0
tcp6       0      0 [::]:www                [::]:*                  LISTEN      2987/nginx
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1531/sshd
tcp6       0      0 ip6-localhost:smtp      [::]:*                  LISTEN      1507/exim4
root@server1:~#

In meiner Ausgabe ist die PID 1542, ich kann den Prozess also wie folgt beenden:

kill -9 1542

Danach lässt sich ein neuer spawn-fcgi Prozess starten.

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid


3 Installation von TYPO3

Das Stammverzeichnis meiner www.example.com Internetseite ist /var/www/www.example.com/web - existiert dieses nicht, erstellen Sie es wie folgt:

mkdir -p /var/www/www.example.com/web

Als nächstes laden Sie TYPO3 als .tar.gz Datei von http://typo3.org/download/packages/ herunter und platzieren es im Stammverzeichnis (TYPO3 wird in verschiedenen Paketen angeboten - Ich wähle hier das Introduction Package, da es eine komplette Beispielinternetseite beinhaltet, mit der Sie üben können; kennen Sie jedoch TYPO3, können Sie auch jedes beliebige andere Paket wählen):

cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%204.6.3/introductionpackage-4.6.3.tar.gz
tar xvfz introductionpackage-4.6.3.tar.gz
cd introductionpackage-4.6.3/
mv * /var/www/www.example.com/web/
mv .htaccess /var/www/www.example.com/web/

Es wird empfohlen das Stammverzeichnis und die TYPO3 Dateien darin für den nginx Daemon beschreibbar zu machen, welcher als Benutzer www-data und Gruppe www-data läuft:

chown -R www-data:www-data /var/www/www.example.com/web

Haben Sie nicht bereits eine MySQL Datenbank für TYPO3 erstellt (inklusive MySQL TYPO3 Benutzer), können Sie dies wie folgt machen (ich nenne die Datenbank in diesem Beispiel typo3, der Benutzer heißt typo3_admin und sein Passwort ist typo3_admin_password):

mysqladmin -u root -p create typo3

mysql -u root -p

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;

Als nächstes erstellen Sie folgendermaßen eine vhost Konfiguration für Ihren www.example.com vhost im /etc/nginx/sites-available/ Verzeichnis:

vi /etc/nginx/sites-available/www.example.com.vhost


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; expires max; } 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 ~* .(jpg|jpeg|png|gif|css|js|ico)$ { expires max; log_not_found off; } location ~* .(cur|ico|gif|png|jpe?g|css|js|swf|woff)((?dddddddddd)|(?s=dddddddddd))$ { expires max; log_not_found off; } location ~* .(cur|ico|gif|png|jpe?g|css|js|swf|woff)(?vdd?.dd?.dd?)$ { 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; } }
Diese Konfiguration beinhaltet bereits alles, was Sie für reine URLs brauchen (aufgrund der Zeile try_files $uri $uri/ /index.php?$args; in der @nocache location) und zum liefern von Daten aus dem nc_staticfilecache (die Erweiterung speichert gecachete Daten im /typo3temp/tx_ncstaticfilecache Verzeichnis). Wird keine gecachete Datei gefunden (oder es ist ein authentifizierter Benutzer, eine POST Anfrage, eine URL mit query string, etc.), wird die Anfrage zur @nocache location weitergegeben. Dies bedeutet, dass die Konfiguration auch funktioniert, wenn Sie die nc_staticfilecache Erweiterung nicht nutzen.

Stellen Sie als nächstes sicher, dass /etc/nginx/mime.types die nachfolgende Zeile enthält:

vi /etc/nginx/mime.types


[...]
text/x-component htc; [...]
Um den vhost zu erlauben, erstellen Sie aus dem /etc/nginx/sites-enabled/ Verzeichnis einen Symlink zu ihm:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

Laden Sie Apache neu um die Änderungen wirksam zu machen:

/etc/init.d/nginx reload

Nun können Sie den webbasierten TYPO3 Installer starten, indem Sie auf  http://www.example.com/typo3/install/index.php?mode=123&step=1 gehen - zuallererst müssen Sie das Installerpasswort eingeben, welches standartmäßig joh316 ist:


Dies bringt Sie zum 1-2-3 Installer. Klicken Sie auf Continue:


Tragen Sie als nächstes die Details der Datenbank ein (Benutzer: typo3_admin; Passwort: typo3_admin_password - die Daten die Sie bei der Erstellung der typo3 Datenbank angelegt haben) und klicken auf Continue:


Wählen Sie auf der nächsten Seite Select an EMPTY existing database und dort aus dem Drop-down-Menü typo3 aus. Klicken Sie dann auf Continue:


Nun können Sie auswählen, ob Sie ein komplett leeres TYPO3 System installieren möchten (sodass Sie ein neues Projekt erstellen) oder ob Sie TYPO3 mit der vom Introduction Package Paket mitgelieferten Webseite benutzen wollen.

In diesem Tutorial wähle ich introduction package (recommended) um die Demoseite zu installieren. Klicken Sie auf Continue:


Die Datenbank und die Demowebseite werden nun konfiguriert:


Geben Sie dann ein Passwort für den TYPO3 Administrator an (Benutzername: admin) und wählen Sie ein Farbschema für die Demoseite aus (wenn Sie sich dazu entschieden haben, dieses zu installieren). Klicken Sie danach auf Continue:


Die Installation ist nun abgeschlossen und Sie können den Go to your Website Button benutzen, um sich Ihre Demoseite anzuschauen (oder einfach auf http://www.example.com gehen):


Dies ist die Demonstrations-Webseite. Öffnen Sie sie, werden Sie merken dass reine URLs standartmäßig funktionieren:


Die Administratorzone ist unter http://www.example.com/typo3/ zu finden. Melden Sie sich mit dem Benutzernamen admin und dem Passwort an, das Sie während der Installation ausgewählt haben:


Die TYPO3 Administratorzone sieht folgendermaßen aus:

4 Installation der Static File Cache Erweiterung (nc_staticfilecache)

Um die Static File Cache Erweiterung zu installieren, gehen Sie auf  http://typo3.org/extensions/repository/view/nc_staticfilecache/current/ und laden Sie die Erweiterung auf Ihren lokalen Computer herunter (zur Zeit des Schreibens dieses Tutorials ist der direkte Link http://typo3.org/fileadmin/ter/n/c/nc_staticfilecache_2.3.4.t3x).

Gehen Sie in TYPO3 auf ADMIN TOOLS > Extension Manager. Wählen Sie dort den Import Extensions Reiter und klicken Sie auf das Upload Symbol rechts vom Filter Feld und links vom Repository Feld (das Symbol zeigt ein Dokument mit einem kleinen, aufwärts zeigenden grünen Pfeil). Ein Upload-Dialog
erscheint. Wählen Sie die Static File Cache Erweiterung von der lokalen Festplatte Ihres Computers aus und klicken auf den Upload extension from your computer Button:


Die Erweiterung ist nun hochgeladen, muss jedoch noch aktiviert werden. Um dies zu bewerkstelligen, klicken Sie auf das graue Symbol, das einem Lego-Stein ähnlich sieht und mit einem Plus-Zeichen versehen ist:


Einige wenige Datenbank Aktualisierungen sind notwendig um die Erweiterung zu aktivieren. Klicken Sie auf Make updates um diese zu akzeptieren:


Klicken Sie danach auf den Close window.-Link um das Install extensions Layer zu schließen:


Die Static File Cache Erweiterung sollte nun unter Available Extensions als aktiv angezeigt werden. Um sie zu konfigurieren, klicken Sie sie an (klicken Sie nicht auf den grünen Legostein mit dem Minus-Zeichen! Dieser wird die Erweiterung deaktivieren!):


Im Configuration Reiter können Sie nun das Verhalten der Static File Cache Erweiterung konfigurieren.
Normalerweise sollten die Standarteinstellungen in Ordnung sein:


Die Dokumentation der Static File Cache Erweiterung ist unter folgender Adresse verfügbar: http://typo3.org/documentation/document-library/extension-manuals/nc_staticfilecache/2.3.4/view/.

5 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte