"Man(n) nennt es Pech." - die Chronik 05
22.8.2023 - Die Chronik der Wiederbelebung der Museen-Seiten
Jetzt gehts zur Convertierung der typo3 php Dateien
Wir sind jetzt bei der php-Version 7.4.33 gelandet und die Voraussetzungen zur Convertierung scheinen gut zu sein.
Der Lernbedarf ist schon gewaltig - es geht aber weiter mit ....
(php-Schnüffer, php-Converter Rector und php mysql Wrapper)
Zuerst ist eine Liste der zu bearbeitenden - zu korrigierenden - php Programme sinnvoll. Viele core-Programme und zusätzliche "Extensions" dieser alten typo3 Version 4.2.17 brauchen wir gar nicht. Also diese Programme könn(t)en wir ignorieren bzw. löschen. Die Dokumentation, welches Programm von welchen Klassen abhängig sind, war mal vorhanden - ist weg, muß daher neu erstellt werden.
Vorher nachgedacht und damit Glück gehabt
Bei uns liegen diese php-Programme des CMS (zum Glück) auf der völlig separaten Daten-Partition (bei uns ist das /vol2/), und nicht in der allgemeinen Linux "root"-Partition oder im /home/ oder /usr/ Verzeichnis - und das mache ich absichtlich.
Auf dieser (ext4) Datenpartition gib es das Verzeichnis /vol2/www/ und dort die Unterverzeichnisse der einzelnen Museen (der Domains) sowie ein Verzeichnis mit den gemeinsamen typo3 Systemprogrammen (/typo3_src-4.2.17/ - sie nannten es damals "source") sowie der sogenannten (ebenfalls gemeinsamen) "Extensions".
Zuerst muß der Zugriff der einzelnen php-Programme auf die mysql engine - also auf unsere Museen-Seiten - wieder hergestellt werden. Der alte "php5-mysql"-Client wurde schon zu Zeiten von php 5.3 aus dem Verkehr gezogen, Gründe dafür gabs nicht - ich vermute ein ernsthaftes Sicherheitsloch.
Um jetzt nicht in jedem php-Programm die Zeilen einzeln zu reparieren, kann man da einen ganz speziellen "mysql"-Wrapper einbinden, der in den Programmen die alten Befehle gegen gleichartige - aber jetzt erlaubte - Befehle austauscht.
Wie könnten wir bei der Migration auf php 7.4.33 vorgehen ?
Jede Domain ist bei uns in einem "virtuellen Host" des Apache2- Webservers definiert und damit sind auch alle notwendigen Variablen in einem eigenen Verzeichnis untergebracht.
Im Basis Verzeichnis einer jeder dieser Domains wartet eine kleine "index.php" Datei (nur ersatzweise gibt es auch eine index.html) auf den Abruf durch den Apache2 Webserver. Der Apache2 hat gesagt bekommen, daß er "index.php " vor der "index.html" bevorzugen soll.
Bei uns auf diesem gesamten Museen-Web-Server gibt es diese sieben virtuellen Hosts :
- (1) htdocs (das hierher verlagerte Apache2 defaut Verzeichnis)
- (2) bartosch
- (3) femuwi
- (4) hifimuseum
- (5) magnetband
- (6) rde-ipw
- (7) redlich und (gemeinsam für alle)
- das typo3-Verzeichnis "typo3_src-4.2.17"
.
Ein Blick in das komplexe "Innenleben" dieses CMS :
Der Einstieg / die Analyse :
Die erste "index.php" Datei ist in allen 7 vhost's gleich. Der Apache2- Webserver weis, daß er bei Aufruf irgendeiner der 7 Startseiten diese Datei ausführen soll. Diese erste Datei ruft über den symbolischen Link die wichtige Haupt-"index.php" Datei auf, die es aber nur einmal im gesamten typo3 Systembereich gibt. Die natürlich unerschiedliche jeweilige vhost-Konfiguration eines jeden vhost's steht in dessen per "include" eingebundenen /typo3conf/ Verzeichnis und dort in 2 php-Konfigurationsdateien.
Hinter dem Symlink "~typo3 -> typo3_src/typo3" liegt die wichtige 27 Kilobyte große gemeinsame "index.php" Datei, die alle weiteren Funktionen steuert.
Weiterhin finden wir dort schon die Funktionsdateien für die CMS Datenbank- Funktionen. Mit ......
.
- ls -h -s -1 *.php
.
bekommen wir alle php-Dateien in diesem einen Verzeichnis "/vol2/www/typo3_src-4.2.17/typo3/" mitsamt der Dateigrösse. Das ist schon mal ein Anfang einer strukturierten Abarbeitung der Convertierung dieser php-Dateien.
Die 1. Liste von Beispielen der zu konvertierenden php Dateien
ajax.php | 2.3k |
.
<big>Das sind nur die php-Dateien im Vverzeichnis /typo3/ - es gibt noch viel mehr.
.</big>
Die Symlinks
Hinter dem Symlink
"~t3lib -> typo3_src/t3lib" finden wir die Klassen-Definitionen :
(The "/t3lib/" contains PHP-classes providing core functionalities of typo3 such as manipulation the database (tce_main.php), providing user authentication and datatransfer to the TYPO3 backend to name a few.)
.
die 2. Liste von Beispielen
class.gzip_encode.php | 12k |
| Diese Dateien aus dem /t3lib/ Verzeichnis enthalten die gemeinsamen Programm Librarys des CMS. Eine der für uns wichtigsten Dateien ist "class.t3lib_db.php" |
Das sind nur die php-Dateien im Verzeichnis /t3lib/ - es gibt noch viel mehr. - Im Verzeichnis "/misc/" wird nur eine von mehrern Dateien angezeigt.
superadmin.php 3.5k
Es gibt in allen "Ecken" (das sind die kleinen Unterverzeichnisse) vom typo3 source noch weitere kleinere php Programme, die ich noch aufliste, aber noch nicht zuordnen kann.
.
Weder "ls" noch "exa" funktionieren so richtig handlich ....... Die beiden obigen Listen habe ich von Hand selektiert und die beiden Spalten mit Excel vertauscht.
.
Weitere Linux Befehle zum Auflisten von php-Dateien :
Mit "ls -h -s -1 -R *.php" bekommen wir "alle" php-Dateien (aber leider noch viel viel mehr) in den Unterverzeichnissen von "/vol2/www/typo3_src-4.2.17/" mitsamt der Dateigrösse angezeigt. - Doch mit den Optionen - es sollen doch nur ".php" Dateien ausgegeben werden - gibt es auch wieder Probleme.
Dann finden Sie im Internet 3 verschiedene Hilfen mit kollidierenden Options-Funktionen. Das ist kontraproduktiv und mühselig. Man kann das Filter (*.php) für Verzeichnissnamen nicht ausblenden und darum zeigt das Kommando nichts mehr an. (oder ich habe es nicht gefunden).
Um den für die Migration relevanten php-Seiten auf die Spur zu kommen, werde ich die Zusammenhänge der Programm-Dateien "analysieren" (etwas übertrieben formuliert) und dokumentieren bzw aufschreiben.
Von dieser recht alten typo3 Version sind keine Interna mehr aufzufinden. Für unsere Museenseiten sind die Funktionen (Möglichkeiten sowie der Programm-Umfang) dieser typo3 Version vollkommen ausreichend. Die dramatisch gesteigerte "Featuritis" der folgenden (inzwischen fürcherlich aufgeblähten) typo3 Versionen macht typo3 immer scherfälliger und vor allem komplexer und extrem lernintensiv.
Auf der nächsten Seite kommt ein Blick in die beim Lernen gemachte Erfahrung mit hilfreichen (teilweise neuen) Linux-Werkzeugen, das sind Funktionen im Betriebssystem, die von mir bislang nicht benötigt und darum auch nicht benutzt wurden.
.
Das war Seite 5 - jetzt gibts ein paar Stunden Pause
.
.