Installation von Typo3 6.2

Aus Debacher-Wiki
Wechseln zu:Navigation, Suche

Typo3 ermöglicht zwei Arten der Installation. Bei der Installation für ein Einzelsystem wird das SRC-Paket direkt in das Verzeichnis des Webservers kopiert. Bei der Installation für mehrere Systeme, wie ich sie in der Regel benutze, wird das SRC-Paket außerhalb des Hauptverzeichnisses vom Webserver abgelegt und von dort nur verlinkt. Dadurch ist dieser Teil nur ein einziges Mal auf dem Server vorhanden, was auch die Aktualisierung erleichtert. Für eine Aktualisierung müssen nur die Links auf das neue SRC-Paket umgebogen werden.

Vorbereitungen

Die Installation erfordert folgende vorbereitenden Schritte:

  • Herunterladen des aktuellen SRC-Paketes von http://typo3.org/download/
  • Installation des SRC-Paketes, z.B. nach /srv/www/typo3src/typo3_src-6.2
  • Erstellen eines leeren Verzeichnisses unterhalb von httpdocs z.B. typo62 (kann entfallen, man kann auch direkt httpdocs als Ausgangsverzeichnis nutzen)
  • Erstellen einiger Links in dem Verzeichnis:
    • ln -s /srv/www/typo3src/typo3_src-6.2 typo3_src
    • ln -s typo3_src/index.php index.php
    • ln -s typo3_src/typo3 typo3
  • Kopieren der .htaccess: cp typo3_src/_.htaccess .htaccess
  • Korrigieren des Eigentümers, z.B. wwwrun.www
  • Erstellen folgender Datei mittels touch: FIRST_INSTALL

Installation

Die eigentliche Installation startet man dann, indem man das System im Browser aufruft.

Bei einem Neu eingerichteten Server bekomme ich dann in der Regel erst einmal ein paar Fehlermeldungen.

Typo3-62-bild1.png

Die zweite und dritte Fehlermeldung kann man beseitigen, indem man das Paket php5-fileinfo und php5-soap mit Yast nachinstalliert. Für die anderen Meldungen muss man an die Konfigurationsdatei /etc/php5/apache2/php.ini heran. Hier muss man in der Zeile 800 die Dateigröße erhöhen

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 12M

Und in Zeile 672 gleich auch anpassen

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 12M


Und in Zeile 384 die Ausführungszeit

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 240

Nach diesen Änderungen sollten (hoffentlich) keine Fehlermeldungen mehr auftauchen, und Typo3 ist mit seiner Umgebung zufrieden.

Typo3-62-bild2.png

Dann kann man mit gutem Gewissen auf Continue klicken.

Im nächsten Schritt geht es um den Datenbankzugriff. Ich habe vor dem Installationsbeginn bereits eine Datenbank und einen Benutzer angelegt. Dessen Daten werden hier erfragt.

Typo3-62-bild3.png

Nach einem erneuten Klick auf Continue erfolgt die Auswahl der Datenbank, wobei nur solche angezeigt werden, auf die der vorher angegeben Benutzer auch Zugriff hat.

Typo3-62-bild4.png

Gegebenenfalls kann man hier auch eine Datenbank anlegen, aber auch dafür müsste der Benutzer ja die Rechte besitzen. Wenn die Rechte in Ordnung sind, dann wird im nächsten Schritt das Passwort für den Benutzer admin und das Install Tool angelegt.

Typo3-62-bild5.png

Das Installations-Tool ist sehr pingelig, was das Passwort betrifft. Nach dem nächsten Klick auf Continue vergeht etwas Zeit, weil die Datenbank und das Grundsystem eingerichtet wird. Im letzten Schritt kann man dann noch aus einer Liste von vorinstallierten Systemen auswählen. Das habe ich noch nie gemacht, ich möchte mein System selber einrichten.

Typo3-62-bild6.png

Also weg mit dem Häkchen und auf ins Backend.

Typo3-62-bild7.png

Hier meldet man sich mit dem Benutzernamen admin und dem vorher erstellten Passwort an. Es sollte sich folgendes Bild ergeben.

Typo3-62-bild8.png

Konfiguration

Bevor man an die Erstellung von Seiten denken kann muss man erst einmal die Konfiguration des Systems überprüfen und ggf. nachbessern.

Im ersten Schritt sollte man die Sprachunterstützung erweitern, indem man im Menü links den Menüpunkt Language anwählt und dann im mittleren Fenster German auswählt. Klickt man dann oben auf Update from repository, so werden die vorhandenen Übersetzungen geladen.

Typo3-62-bild9.png

Der Prozess dauert etwas, da die Pakete einzeln durchgegangen werden. Den Ablauf kann man in dem rechten Feld verfolgen, wenn man ggf. auch herunter scrollt. Die Spracheinstellungen sollte man immer mal wieder aktualisieren, vor allem wenn man neue Extensions installiert hat.

Danach kann man für sich und auch die anderen Benutzer die eben geladene Sprache als Benutzersprache einstellen.

Typo3-62-bild10.png

Zum Speichern immer das Disketten-Icon suchen, meist relativ weit oben im Fenster.

Für mich habe ich dann noch im Tab Richt-Text-Editor das Häkchen für die Größen-Veränderung gesetzt.


Typo3-62-bild11.png

Man sieht hier übrigens, dass sich die Spracheinstellungen auch sofort auswirken, auch wenn Typo3 hier vorsichtshalber etwas anderes angibt.

Wichtig ist jetzt erst einmal das Install-Tool, welches man über den Links Installation aufruft.

Typo3-62-bild12.png

In der Regel wird das Tool nicht willig starten, weil es zur Absicherung das Vorhandensein einer Datei ENABLE_INSTALL_TOOL im Verzeichnis typo3conf erwartet. Diese Datei kann man per Hand anlegen, oder indem man auf den Button im Hinweistext klickt. Wenn dies erledigt ist, dann ist noch die Eingabe des Install-Tool Passwortes erforderlich.

Typo3-62-bild13.png

Das Passwort wurde bei der Installation angelegt und stimmt ursprünglich mit dem Admin-Passwort überein (kann man im Install Tool ändern). Danach landet man dann endlich im Tool.

Typo3-62-bild14.png


Nachtrag

Ich hatte auf meinem neuen Server mit OpenSuSE 13.1 das Problem, dass normale Benutzer keine neuen Seitenelemente anlegen konnten, zumindest nicht über das Seitenmodul. Über das Modul Liste ging es immer. Im Netz war da nicht viel zu finden, manchmal sollten Felder zur Datenbank hinzugefügt werden, mal eine Extension aktualisiert werden. Das hat nichts gebracht. Ursache ist wohl ein neuer Sicherheitsmodus der MySQL-Datenbank. Ich habe nach den Informationen von https://review.typo3.org/#/c/26725/3/INSTALL.md folgende Änderung im INSTALL-Tool unter All configuration vorgenommen:

[SYS][setDBinit] = SET SESSION sql_mode='' 

Damit funktioniert dann auch das Anlegen von Datensätzen wieder. In der /etc/my.cnf steht nämlich:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  

damit kommt Typo3 dann nicht zurecht.

Weitere Hinweise zu der MySQL-Einstellung finden sich unter http://dev.mysql.com/doc/refman/5.0/en/sql-mode.html

Nachtrag2

Eine enorme Beschleunigung des Typo3-Systems kann man anhand der MySQL-Konfiguration erzielen. Die Zeile

innodb_flush_log_at_trx_commit = 2

bewirkt, dass Änderungen an einer InnoDB-Datenbank nicht auch sofort in die Logdatei geschrieben werden, sondern erst mit einer Verzögerung von 1 Sekunde. Das beschleunigt vor allem den ersten Aufruf einer Seite erheblich, da die Seite in der Datenbank gecached wird.

Für weitere Datenbankoptimierungen habe ich mir das Tool mysqltuner.pl von http://mysqltuner.pl geholt und bin dessen Vorschlägen weitestgehend gefolgt. Aufpassen muss man, dass man die Einstellungen im Block [mysqld] der /etc/my.cnf vornimmt. Anschließend muss man dann die Datenbank mit

service mysql restart

neu starten.

Das Tool empfiehlt auch die Tabellen zu optimieren (OPTIMIZE TABLE), das kann man auch von phpMAdmin aus machen. Nicht wundern darf man sich darüber, dass das Optimieren damit bei InnoDB nicht geht, phpMyAdmin macht das dann auf einem anderen Weg und meldet

Table does not support optimize, doing recreate +...

Für den Fall, dass man die Optimierung direkt machen möchte, habe ich den Hinweis gefunden das mittels ALTER TABLE table.name ENGINE='InnoDB'; zu machen.Dabei wird eine Kopie erzeugt und anschließend das Original verworfen.

Nachtrag3

Beim Aktualisieren eines Typo3-Systems von 6.2.6 auf 6.2.7 taucht folgende Fehlermeldung auf:

Could not load layout file. Tried following paths: "/srv/www/vhosts/mintforum.de/httpdocs/fileadmin/site/templates/layouts/StandardLayout.html", 
"/srv/www/vhosts/mintforum.de/httpdocs/fileadmin/site/templates/layouts/StandardLayout".

Typo3-6.2.7-Fehler.png

Eine passende Beschreibung findet sich unter http://wiki.typo3.org/Exception/CMS/1288092555 . Die Erklärung dort ist stimmig, der erste Buchstabe der gesuchten Datei ist im Dateisystem in Wirklichkeit klein geschrieben.

Dazu habe ich dazu http://wiki.typo3.org/TYPO3_CMS_6.2.7 dann gefunden:

 This release contains a breaking change for the FLUIDTEMPLATE cObject: The filenames of partials and layouts now have to start with an uppercase letter; 
 first letter in lowercase no longer is supported. Partials and layouts filenames starting with a lowercase letter will throw an exception. This regression will be fixed again in TYPO3 6.2.8.


Nachtrag: Beim Aktualisieren auf 6.2.9 tritt das Problem nicht mehr auf.

Nachtrag4

Nicht das das Update auf 6.2.9 problemlos wäre. Nun funktioniert die Extension cal (war bisher 1.6.0) nicht mehr, zumindest die Anzeige eines einzelnen Datensatzes (https://forge.typo3.org/issues/60759). Ein Update der Extension cal auf 1.7.0 löst das Problem, kostet aber etwas Zeit, da man über das Install-Tool einige Aktualisierungen vornehmen muss.

Was kommt mit 6.2.10?


Nachtrag 5

Ich habe jetzt einige Stunden damit verbracht auf einem System meine Seiten als .t3d zu exportieren und dann auf einem anderen System in ein "nacktes" typo3 wieder zu importieren.

Einige Informationen wurden importiert, aber keinerlei Seiten. Es gab sehr interessante Fehlermeldungen:

Possible error: pages has no new id assigned to it. This indicates that the record was not added to database during import. Please check changelog!
Incorrect integer value: '' for column 'sys_language_uid' at row 1

Wenn man nach diesen Meldungen sucht, dann findet man ganz viele Seiten mit ähnlichen Problemen, die aber wenig weiterhelfen. Auch hier ist es, wie so oft, nur eine fehlende Zeile in der Konfigurationsdatei:

'setDBinit' => 'SET SESSION sql_mode=\'\'',

Im Bereich SYS (siehe auch erster Nachtrag).


Nachtrag 6

Mit dem Update auf Version 6.2.15 hat Typo3 wieder etwas eingeführt, was einen sehr verwirren kann. Klickt man nach dem Update auf den Extension-Manager, so erscheint eine tolle Fehlermeldung.

Error-version15.png

Der Text

Oops, an error occurred!

Property TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::$listUtility does not exist

ist nicht besonders aussagekräftig.

Das Problem hängt mit dem Caching zusammen, zumindest lässt es sich damit lösen, aber natürlich nicht ganz so einfach. Man muss dazu im Install-Tool unter Important actions auf den Button Clear all cache klicken. Eine andere Möglichkeit besteht darin beim Benutzer bzw. der Gruppe das TSConfig zu erweitern um die Zeile:

options.clearCache.system=1

Dann steht bei den Cache-Funktionen auch der System-Cache zur Auswahl.

Error-version15b.png

Nachtrag 7

Das Update auf Version 6.2.16 hat lange auf sich warten lassen, aber gleich ein paar Tage später kam 6.2.17. Egal, sie haben mal wieder viele Seiten kaputt gemacht mit dem Update.

Seit 6.2.16 werden in manchen Texten, z.B. Bildunterschriften, die HTML-Tags nicht mehr berücksichtigt. Nun gut, man kann darüber reden, ob solche Funktionen notwendig sind, aber es ging bisher. Und Seiten, die das benutzt haben sehen nun etwas seltsam aus.

Sehr ärgerlich, beim Update findet sich auch keinerlei Hinweis auf die damit verbunden Probleme. Hoffentlich bin ich bald fit genug mit WordPress.

Die einzige Beschreibung zu dem Problem habe ich unter https://typo3.org/teams/security/security-bulletins/typo3-core/typo3-core-sa-2015-013/ gefunden.

Davon leite ich auch mein Lösungssatz ab, ich ergänze das Root-Template um die folgenden Zeilen:

#Anpassung fuer Update 6.2.16 vom 5.1.16 von U.D.
tt_content.image.20.caption.1.1.parseFunc = < lib.parseFunc
tt_content.image.20.caption.1.1.htmlSpecialChars = 0

tt_content.table.20.innerStdWrap.parseFunc = < lib.parseFunc
tt_content.table.20.innerStdWrap.htmlSpecialChars = 0
 
tt_content.bullets.20.split.1.parseFunc = < lib.parseFunc
tt_content.bullets.20.split.1.htmlSpecialChars = 0
tt_content.bullets.20.split.2.parseFunc = < lib.parseFunc
tt_content.bullets.20.split.2.htmlSpecialChars = 0

tt_content.image.20.1.altText.parseFunc = < lib.parseFunc
tt_content.image.20.1.altText.htmlSpecialChars = 0
 
tt_content.image.20.caption.1.1.parseFunc = < lib.parseFunc
tt_content.image.20.caption.1.1.htmlSpecialChars = 0

ich hoffe, dass damit alle wichtigen Stellen getroffen sind.