Dieses Tutorial für die Installation eines TYPO3 Webservers ist eine Kurzanleitung, alle Eventualitäten können NICHT abgedeckt werden. Hauptziel dieser Dokumentation ist es, die oft wenig bis gar nicht dokumentierten Softwarepakete, welche für einen gut funktionierenden TYPO3 Server unabdingbar sind und nicht mit einem openSUSE System ausgeliefert werden zu erklären, und zum Download anzubieten.
Insbesondere das Paket catdoc zeichnet sich dadurch aus, dass eine lauffähige Version im Internet nicht leicht auffindbar ist! Zumindest seit einiger Zeit ist die offizielle Webseite des Autors (die unter www.45.free.net/ ~vitus/ice/catdoc/ gehostet wurde) leider nicht mehr erreichbar.
Wie aber eine Recherche ergeben hat, ist Vitus (der Autor von catdoc) übersiedelt:
http://ftp.wagner.pp.ru/~vitus/software/catdoc/
Wir hoffen, dass durch diesen Link die Seite auch mit dem Suchbegriff catdoc bei Google auffindbar wird!
Diese Kurzanleitung orientiert sich an einem openSUSE 10.2 Server mit 4 GB Arbeitsspeicher.
Auf die Vor- und Nachteile der Partitionierung, und insbesondere auf die Grundinstallation von openSUSE im minimalen Textmodus wird hier genauso wenig eingegangen, wie auf die Benutzung der Linux Konsole (bash bei uns) oder ähnliches! Diese Anleitung ist nicht für Linux Dummies gedacht, sondern für den interessierten Linux Administrator, der sich mit TYPO3 Hosting noch nicht so gut auskennt!
Die Angaben für die Vergabe von Arbeitsspeicher, insbesondere für PHP, MySQL und eAccelerator, entsprechen unseren eigenen Erfahrungswerten. Wir übernehmen keinerlei Gewähr für die Richtigkeit und Vollständigkeit aller Angaben! Diese Zahlen sind immer auch abhängig von Ihrer Hardware und der allgemeinen Systemkonfiguration!
In der rechten Spalte finden Sie eine Informationsbox mit allen relevanten Downloads. Da jede Linux Distribution andere Softwarepakete von Haus aus mitliefert, kann es natürlich sein, daß Sie weitere Pakete benötigen. Selbst verschiedene Versionen einer einzigen Distribution weisen hier oft Unterschiede auf!
Falls Sie also beispielsweise die beliebte und nach wie vor verbreitete openSUSE Version 9.3 oder sogar eine andere Distribution wie beispielsweise Debian (auch sehr beliebt), Fedora, Mandriva (ehemals Mandrake) oder gar Ubuntu / KUbuntu verwenden, kann diese Anleitung maximal als Leitfaden verwendet werden, besser wäre es allerdings, eine für diese Distributionen geschriebene Anleitung zu suchen (Google makes it!).
Sämtliche Downloads wurden entweder nach der beliebten GNU/GPL oder einer ähnlichen Lizenz lizenziert.
Bitte beachten Sie dazu die jeweiligen Lizenzbestimmungen, die den Paketen beiligen!
Den Ausgangspunkt bildet ein frisch installiertes openSUSE 10.2 Gerät. Bei der Installation wurde der 'Textmodus' gewählt, dadurch ist gewährleistet, dass wir möglichst wenig Ballast in Form von Softwarepaketen, die wir auf einem Webserver nicht brauchen, mit installieren.
Das System hat von Haus aus alle Softwarepakete und Konfigurationen für einen Netzwerkbetrieb im Runlevel 3 (init 3), aber nicht mehr! Also kein Apache Webserver, keine MySQL Datenbank, geschweige denn PHP oder ähnliches.
Leider fehlen auch ein paar feine Konsolentools die wir gerne verwenden, wie zum Beispiel den Editor "joe" oder den Dateimanager "mc", auch bekannt in der graphischen Version als "Midnight Commander", das Linux Pendant zum Norton Commander, bzw. dessen Nachfolger (nicht tatsächlich, fühlt sich aber so an ;) ) Total Commander.
Daher unser Vorschlag, als Erstes installieren wir via YAST2 (oder falls Sie z.B. Debian verwenden mittels apt-get) nach, was wir zum vernünftigen Arbeiten in der Konsole so brauchen:
Leider haben wir auch noch keinerlei Compiler und sonstige Tools um Softwarepakete aus deren Quellcode zu erstellen. Für verschiedene Pakete sind auch unterschiedliche Werkzeuge notwendig. Wir installieren hier lieber oft mehr als unbedingt nötig, da wir der Auffassung sind, dass es angenehm ist im Laufenden Betrieb im Notfall die notwendigen Compiler gleich zur Hand zu haben, als diese erst mühsam nachinstallieren zu müssen. Daher unser folgender Vorschlag für die Fraktion 'Compiler, Interpreter & Libraries':
Für den eigentlichen Betrieb eines Webservers sind nun weitere Pakete notwendig:
Natürlich müssen Sie, je nachdem welche weiteren Applikationen Sie auf dem Webserver betreiben wollen, auch die entsprechenden Softwarepakete nachinstallieren. So benötigen Sie möglicherweise Python, oder auch Tomcat (für den Betrieb von Java Servlets).
Um den vollen Funktionsumfang von TYPO3 und einiger Standard Extensions zu unterstützen benötigen Sie noch eine kleine Anzahl von Programmen, die teilweise leider nicht mit openSUSE 10.x ausgeliefert werden.
Hier eine Liste der wichtigsten Pakete. Prüfen sie mit der Suche im YAST, ob vielleicht einige der Programme bei Ihrer Distribution/Version mitgeliefert wurden. Den Rest müssen Sie händisch nachinstallieren. Die Anleitungen zum händischen Installieren der einzelnen Pakete aus dem Quellcode finden Sie weiter unten!
Bei den PHP5 Paketen gilt es, eine Balance zwischen Komfort und Notwendigkeit einerseits und Sicherheit und Schlankheit andererseits zu finden. Schließlich ist jedes Programm und jedes Modul auf Ihrem Webserver ein potentieller Angriffspunkt. Und dies gilt besonders für PHP wie auch Perl, Python und ähnliche.
Hier ein Vorschlag, der uns zumindest für TYPO3 und häufig genutzte TYPO3 Extensions ausreichend erscheint, und auch einige andere beliebte OpenSource Webapplikation abdecken dürfte (alle verfügbaren PHP Module Ihrer Distribution können Sie am besten im YAST mit der Suche nach 'php' einsehen):
Catdoc ist ein Konsolenprogramm, mit dem sich die Inhalte von Dokumenten der Formate .doc, .ppt und .xls extrahieren lassen.
Im Zusammenhang mit TYPO3 wird das hauptsächlich für die indizierte Suche benötigt. Falls Sie also keine Volltextsuchen in besonderen Dokumenten realisieren möchten, können Sie auf catdoc theoretisch verzichten!
Grundsätzlich beinhaltet catdoc in der neuesten Version die eben beschriebenen Funktionen, leider verwendet die TYPO3 Extension 'Indexed Search' nur die Komponente um Word-Dokumente zu indizieren, für andere Formate werden aus historischen Gründen auch andere Konsolen-Programme zum Einsatz gebracht. Als Beispiel sind hier 'xlhtml' und 'ppthtml' zu nennen.
Die neueste Version von catdoc finden Sie in der rechten Spalte im Bereich 'Downloads'.
ACHTUNG: Nicht alle im Netz gefundenen Versionen lassen sich auch tatsächlich kompilieren bzw. installieren.
Unsere Version haben wir von der catdoc Webseite heruntergeladen, und diese Version ist auf openSUSE 10.2 sowohl kompilierbar als auch anschließend installierbar!
Dazu gehen Sie vor wie folgt:
Bitte beachten Sie: Bei der Konfiguration können Sie als Wert für den Parameter --prefix= den Pfad (vom Wurzelverzeichnis '/' ausgehend!) an, unter dem Sie catdoc installieren möchten. Der standardmäßig voreingestellte Pfad ist /usr/local/. Am Besten Sie lassen diesen Pfad unberührt. Ansonsten können Sie natürlich je nach Distribution einen eigenen Pfad angeben. Auf einem openSUSE 10.2 Server ist dies allerdings nicht notwendig!
Falls Sie sich nicht sicher sind, wohin Sie catdoc installiert haben, führen Sie in der Shell (mit root-Rechten) folgenden Befehl aus: find -name catdoc
Das xlhtml Paket auf auf dieser Seite ist die offiziell neueste Version, unseres Wissens nach. Dabei kommt xlhtml auch gleich mit ppthtml einher. Sie installieren also gleich zwei Programme mit einem Arbeitsschritt.
xlhtml und ppthtml sind beide für die indizierte Suche in den Dateiformaten für Excel und PowerPoint zuständig.
Dieses Paket kann in openSUSE 10.3 und 11.0 einfach über YAST installiert werden! Falls Sie allerdings openSUSE 10.2 installiert haben, gehen Sie nach untenstehender Anleitung vor!
Und so gehen Sie bei der Installation vor:
Unrtf ist ebenfalls ein Kommandozeilenprogramm, das Dokumente im Rich Text Format umwandeln kann in etliche andere Formate, darunter auch HTML und PlainText.
Unrtf wird ebenfalls für die TYPO3 Extension "Indexed Search" benötigt, um auch Inhalte in RTF Dokumenten indizieren zu können.
Die Installation ist denkbar einfach:
Zur Zeit unterstützt htmldoc leider KEIN UFT-8. Daher ist dieses Paket auch nicht mehr unbedingt sinnvoll. Der Vollständigkeit halber kann man das Paket aber trotzdem installieren. Schließlich wird ja auch noch nicht jede Webseite mit dem UTF-8 Charset ausgegeben.
Mit TYPO3 Version 4.5.0 ist allerdings geplant, die Standard Einstellungen bei der Installation auf UTF-8 zu setzen.
Angenehmer Weise ist htmldoc auf einem openSuSE 11.0 System via YAST installierbar, da im Repository wieder vorhanden!
Als weiteren Punkt sollte man beachten, dass dieses Softwarepaket bei Verwendung der TYPO3-Extension pdf_generator2 ohnehin obsolet ist, da in dieser Version bereits die html2pdf Klasse zum Einsatz kommt! Diese Klasse, quasi ein 100% PHP-basierter PDF-Renderer, kommt gänzlich ohne zusätzliche Werkzeuge aus!
Einer der Vorteile an pdf_generator2 ist, dass wir damit die UTF-8 Unterstützung zurück bekommen, und obendrein werden HTML-Templates und in erstaunlichem Umfang auch CSS-Anweisungen unterstützt!
Somit können Sie für die PDF-Version und die Druck-Version nahzu die gleichen Vorlagen verwenden!
Ein absolutes MUSS ist der eAccelerator, in früheren Versionen auch bekannt als TurckMMCache. Über bestimmte Caching Funktionen werden PHP Skripten in kompilierter (oder besser eigentlich interpretierter) und optimierter Form abgelegt. TYPO3 Server können so um den Faktor 3-5 beschleunigt werden. Laut eAccelerator Webseite kann eine bis zu 10fache Beschleunigung von PHP Skripten erreicht werden.
Der eAccelerator ist somit eine OpenSource Alternative zum Zend Optimizer.
Die von uns hier zum Download angebotene Version ist die Version 0.9.5.2. Theoretisch sollte diese Version sowohl PHP4 als auch PHP5 unterstützen, wir verwenden diese Version allerdings ausschließlich mit PHP5!
UPDATE: Die neuere Version des eAccelerators (0.9.5.3) enthält eine Fehlerkorrektur. Wir empfehlen Ihnen die neueste Version zu verwenden.
UPDATE: Mit TYPO3 Version 4.3 muss der eaccelerator gegebenenfalls neu kompiliert werden. Es sollte vor der Kompilierung unbedingt der Parameter --with-eaccelerator-doc-comment-inclusion mit angegeben werden! Das entsprechende Kommando wurde unten ebenfalls bereits aktualisiert.
ACHTUNG: Vergessen Sie bei einer erneuten Kompilierung nicht, dass Sie vor dem 'make' Befehl ein 'make clean' absetzen sollten!
UPDATE: Offensichtlich kommt es mit der neuesten Version des eaccelerators (Version 0.9.6) im Zusammenspiel mit open_basedir_restrictions in PHP 5.2.x zu einem Problem. Es wird die Fehlermeldung'PHP Fatal error: Can’t load *, open_basedir restriction. in Unknown on line 0.' ausgegeben.
Dieser Fehler kann behoben werden, indem man bei der Konfiguration des eaccelerators (vor dem Kompilieren) den Parameter '--without-eaccelerator-use-inode' anhängt!
Demzufolge lautet unserer Meinung nach der beste Konfigurationsbefehl:
./configure --with-eaccelerator-doc-comment-inclusion --without-eaccelerator-use-inode --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
ACHTUNG: Um den eAccelerator kompilieren zu können, benötigen Sie das PHP Modul 'phpize' welches mit dem Paket 'php5_devel' installiert wird. Das Paket php5_devel können Sie mittels YAST nachinstallieren! Selbiges gilt auch für PHP4! Außerdem sollte das Programm 'libtool' installiert sein welches ebenfalls benötigt wird!
Und so gehen Sie vor um eAccelerator zu installieren:
Sie haben den eAccelerator also erfolgreich installiert. Merken Sie sich die Ausgabe von "make install", denn dies gibt an, unter welchem Pfad Sie den eAccelerator installiert haben. Auf einem Standard openSUSE 10.2 System mit PHP5 sollte das /usr/lib/php5/extensions/ sein!
Auf 64bit Systemen mit openSUSE 64bit kann das auch /usr/lib64/php5/extensions/ sein!
Der eAccelerator macht bis jetzt allerdings noch gar nichts. Sie müssen erst PHP5 so konfigurieren, dass der eAccelerator als Extension eingebunden wird. Dazu müssen wir zuerst ein Verzeichnis für das Caching auf die Festplatte anlegen, und anschließend noch einige Zeilen in der Datei php.ini hinzufügen!
Je nach Partitionierung und Konfiguration Ihres Gesamtsystems können Sie den Ordner für das Caching entweder unter /tmp oder unter /var/cache anlegen. Wir legen den Ordner auf einem openSUSE System unter /var/cache mit md eaccelerator an. Die Rechte sollten Sie so abändern: chmod 0777 eaccelerator.
Nun folgt die Konfiguration von PHP5 zur Verwendung des eAccelerators. Dazu suchen Sie bitte die für Ihr System relevante php.ini Datei. Auf einem Standard openSUSE 10.2 oder 10.3 System sollte diese Datei in /etc/php5/apache2 liegen.
Öffnen Sie die Datei php.ini mit einem Editor Ihrer Wahl. Wir bevorzugen in diesem Fall den Editor joe, aus zwei Gründen:
Sie haben also die Datei php.ini geöffnet. Suchen Sie die Stelle, an der Ihre Extensions konfiguriert werden. Falls Sie die Stelle nicht finden können Sie auch einfach an das Ende der Datei gehen.
Dort schreiben Sie folgende Zeilen:
extension="eaccelerator.so"
eaccelerator.shm_size="128"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="60"
eaccelerator.shm_prune_period="60"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys="shm_and_disk"
eaccelerator.sessions="shm_and_disk"
eaccelerator.content="shm_and_disk"
Sie müssen selbstverständlich einige Werte an Ihre Bedürfnisse anpassen: shm_size ist die Größe des Shared Memories, das dem eAccelerator zugewiesen wird. Das cache_dir sollten Sie natürlich auch an Ihr Verzeichnis anpassen, und der Wert von debug kann in der Testphase ohne weiteres auf 1 gesetzt werden, Sie sollten nur nicht vergessen den Wert später im Produktiveinsatz unbedingt auf 0 zu setzen! Ansonsten werden Ihre Logfiles relativ schnell eine unangenehme Größe erreichen!!
UPDATE: In einigen Versionen des eaccelerators (0.9.5.x und 0.9.6) kommt es offensichtlich zu Problemen mit dem Disk-Cache in Verbindung mit sogenannten 'soft-restarts' oder 'soft-resets' des Apache Webservers.
So konnten wir auf einem frischen openSUSE 11.0 64bit mit PHP 5.2.x und eaccelerator 0.9.6 feststellen, dass nach einem Softresest des Webservers PHP-Skripte nur mehr als 'Download' ausgeliefert werden. Anderen Berichten zufolge kam es in verschiedenen 0.9.5.x Versionen zu Segmentation faults im Apache bei besagten Softresets.
Ein manuelles Leeren des eaccelerator Cache-Verzeichnisses und ein anschließender Hardreset ("rcapache2 restart" in unserem Fall) des Apache löst das Problem, allerdings nur bis zum nächsten Soft-Reset.
Man kann das Problem umgehen indem man den Festplattencache des eaccelerators deaktiviert mittels der Einstellung eaccelerator.shm_only="1", obwohl das auf lange Sicht auch eine wenig befriedigende Lösung darstellt!