TYPO3 Testumgebung mit NGINX

Für die Entwicklung kompletter Projekte steht meistens ein leistungsfähiger, interner Server zur Verfügung. Was aber, wenn man schnell etwas ausprobieren möchte? Hier bietet sich ein Webserver auf der eigenen Maschine an. Ich arbeite derzeit mit Ubuntu 12.10. Mit xampp 1.8.1 für Linux und TYPO3 Version 6.0 habe ich keine guten Er­fah­rung­en gemacht – es lief nicht. Genauer gesagt, der TYPO3 Extension Manager quittierte seinen Dienst mit der Fehlermeldung

#1237900529: The argument „addCssFiles“ was registered with type „array“, but is of type „string“ in view helper

seinen Dienst. Mit der Windows-Version lief es zwar besser, aber auch nicht richtig gut. Warum, kann ich nicht genau sagen. Vermutlich hat es mit IPv6 etwas zu tun. Ein Blick in die Datei install.txt von TYPO3 Version 6.0 offenbarte unter anderem folgendes:

TYPO3 relies on IPv6 support, which is by default enabled since PHP 5.3. Take care not to compile PHP 5.3 with the option „–disable-ipv6“, because this will break the IPv6 support and the according unit tests.

Der Shell-Befehl netstat -tulpn ergab

tcp   0   0 0.0.0.0:80   0.0.0.0:*   LISTEN   -

aber eben nicht

tcp   0   0 0.0.0.0:80   0.0.0.0:*   LISTEN   -
tcp6  0   0 :::80        :::*        LISTEN   -

wie das auf unserem Debian-Entwicklungsserver der Fall ist und wo TYPO3 Version 6.0 auch einwandfrei läuft. Ob es nun wirklich daran gelegen hat, kann ich nicht mit Bestimmtheit sagen, aber zumindest war das der Grund, warum ich dann NGINX ausprobiert und xampp gelöscht habe. Um es gleich vorwegzunehmen, es funktionierte auf Anhieb einwandfrei.

NGINX auf Ubuntu 12.10 installieren

Zu diesem Thema gibt es ein sehr gutes HowTo. Arbeiten Sie jenes bitte komplett durch, anschliessend geht es dann an dieser Stelle weiter.

phpMyAdmin installieren

phpMyAdmin wird als Ubuntu-Paket angeboten. Also genügt ein

sudo apt-get install phpmyadmin

Während der Installation werden Sie gefragt, welchen Webserver Sie vorkonfigurien möchten. Nginx ist in der Liste nicht enthalten, folglich drücken Sie an dieser Stelle einfach die ESC Taste und die Maske verschwindet. Das stellt kein Problem dar. Die Bildschirmmasken, welche die Passworte abfragen, dürfen Sie natürlich nicht überspringen. Nach der Installation befindet sich phpMyAdmin im Verzeichnis /usr/share/phpmyadmin/. Um es mit einem Browser aufrufen zu können, setzen Sie einen symbolischen Link in das Nginx-Verzeichnis

sudo ln -sf /usr/share/phpmyadmin /usr/share/nginx/www

und starten Nginx anschliessend neu

sudo /etc/init.d/nginx restart

Jetzt können Sie phpMyAdmin im Browser starten und eine neue Datenbank für TYPO3 anlegen.

Änderungen an den Konfigurationsdateien

Wenn Sie das oben verlinkte HowTo abgearbeitet haben, sind bereits alle PHP-Extensions installiert, die TYPO3 Version 6.0 benötigt. An einigen Dateien müssen aber noch Anpassungen vorgenommen werden.

php.ini

sudo nano /etc/php5/fpm/php.ini und folgende Werte ändern:

max_execution_time = 300
upload_max_filesize = 10M
post_max_size = 10M
memory_limit = 256M

Nginx Konfigurationsdatei

sudo nano /etc/nginx/sites-available/default und im folgenden Abschnitt eine Zeile hinzufügen:

location ~ .php$ {
	[…]
	fastcgi_read_timeout 300;
	[…]
}

sudo nano /etc/nginx/nginx.conf und im folgenden Abschnitt eine Zeile hinzufügen:

http {
	[…]
	fastcgi_read_timeout 300;
	[…]
}

Nginx für realURL konfigurieren

Dafür reichen wenige Zeilen in der Nginx-Konfigurationsdatei. [PfadZuTYPO3] ersetzen Sie bitte durch den Namen des Verzeichnisses, in welches Sie später die TYPO3-Sourcen kopieren werden.
sudo nano /etc/nginx/sites-available/default und im folgenden Abschnitt drei Zeilen hinzufügen:

server {
[…]
	location /[PfadZuTYPO3]/ {
		try_files $uri $uri/ /[PfadZuTYPO3]/index.php?$args;
	}
[…]
}

Graphicsmagicks und Ghostscript installieren

sudo apt-get install graphicsmagick
sudo apt-get install ghostscript

Die Dienste neustarten

sudo service php5-fpm reload
sudo service nginx reload

TYPO3 installieren

Ich empfehle ein komplettes System mit Template zu installieren und nicht nur ein völlig leeres TYPO3. Hier haben Sie die Wahl zwischen dem Introduction Package und unserem Template. Wenn Sie sich für letzteres entscheiden, laden Sie bitte zuerst das TYPO3-Source Paket herunter und dann unser Template. Letzteres verwendet TemplaVoila, während das Introduction Package den Template-Auto-Parser benutzt. Sie sollten beide Varianten einmal ausprobieren. Beides entpacken Sie in einem zu erstellenden Verzeichnis unterhalb von /usr/share/nginx/www – zum Beispiel typo3test. Verwenden Sie auf jeden Fall den selben Verzeichnisnamen, den Sie weiter oben als [PfadZuTYPO3] eingetragen haben. Eine Anleitung für unser Template finden Sie auf dieser Seite.

Dateirechte anpassen

Damit es keine Probleme mit den Schreib- und Leserechten gibt, sollten Sie zum Schluss (nachdem alle Dateien entpackt und an Ort und Stelle sind) noch folgende Befehle ausführen. Diese setzen rekursiv die Berechtigungen für alle Verzeichnisse auf 777 und jene für Dateien auf 666. Bitte keine Zeichen vergessen, auch nicht das abschliessende Semikolon!

sudo find /usr/share/nginx/www/[PfadZuTYPO3]/ -type d -exec chmod 777 {} \;
sudo find /usr/share/nginx/www/[PfadZuTYPO3]/ -type f -exec chmod 666 {} \;

Rufen Sie nun die URL zu Ihrem TYPO3-Verzeichnis im Browser auf und die Installation kann beginnen. Viel Spass.