Sie sind hier : Startseite →  Hintergründe & Analysen→  Unser Gau / Crash vom 17. Juli→  Unsere-2023-Gau-Chronik-05

"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
alt_clickmenu.php
alt_db_navframe.php
alt_doc.php
alt_doc_nodoc.php
alt_file_navframe.php
alt_intro.php
alt_main.php
alt_menu.php
alt_menu_sel.php
alt_mod_frameset.php
alt_palette.php
alt_shortcut.php
alt_toplogo.php
alt_topmenu_dummy.php
backend.php
browse_links.php
browser.php
class.browse_links.php
class.filelistfoldertree.php
class.webpagetree.php
db_list.php
db_new.php
dummy.php
file_edit.php
file_list.php
file_newfolder.php
file_rename.php
file_upload.php
index.php
index_re.php
init.php
listframe_loader.php
login_frameset.php
logomenu.php
logout.php
mod.php
move_el.php
mysql.php
show_item.php
show_rechis.php
tce_db.php
tce_file.php
template.php
thumbs.php
view_help.php
wizard_add.php
wizard_colorpicker.php
wizard_edit.php
wizard_forms.php
wizard_list.php
wizard_rte.php
wizard_table.php
wizard_tsconfig.php

2.3k
65k
13k
58k
6.4k
7.2k
4.8k
20k
6.7k
3.4k
5.5k
11k
30k
2.8k
6.2k
23k
7.0k
3.9k
99k
14k
16k
16k
21k
2.7k
8.7k
12k
9.5k
6.9k
9.1k
25k
1.7k
16k
2.6k
3.2k
4.8k
2.6k
1.7k
14k 90k
18k
4.7k
8.2k
5.9k
80k
2.2k
28k
7.2k
14k
5.1k
33k
4.0k
11k
22k
20k

.
<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
class.t3lib_admin.php
class.t3lib_ajax.php
class.t3lib_arraybrowser.php
class.t3lib_basicfilefunc.php
class.t3lib_bedisplaylog.php
class.t3lib_befunc.php
class.t3lib_beuserauth.php
class.t3lib_browsetree.php
class.t3lib_cli.php
class.t3lib_clipboard.php
class.t3lib_cs.php
class.t3lib_db.php
class.t3lib_diff.php
class.t3lib_div.php
class.t3lib_exec.php
class.t3lib_extfilefunc.php
class.t3lib_extmgm.php
class.t3lib_extobjbase.php
class.t3lib_flexformtools.php
class.t3lib_foldertree.php
class.t3lib_formmail.php
class.t3lib_fullsearch.php
class.t3lib_htmlmail.php
class.t3lib_iconworks.php
class.t3lib_install.php
class.t3lib_loaddbgroup.php
class.t3lib_loadmodules.php
class.t3lib_lock.php
class.t3lib_matchcondition.php
class.t3lib_modsettings.php
class.t3lib_page.php
class.t3lib_pagetree.php
class.t3lib_parsehtml.php
class.t3lib_parsehtml_proc.php
class.t3lib_positionmap.php
class.t3lib_querygenerator.php
class.t3lib_readmail.php
class.t3lib_recordlist.php
class.t3lib_refindex.php
class.t3lib_rteapi.php
class.t3lib_scbase.php
class.t3lib_softrefproc.php
class.t3lib_sqlengine.php
class.t3lib_sqlparser.php
class.t3lib_stdgraphic.php
class.t3lib_superadmin.php
class.t3lib_svbase.php
class.t3lib_syntaxhl.php
class.t3lib_tceforms.php
class.t3lib_tceforms_inline.php
class.t3lib_tcemain.php
class.t3lib_timetrack.php
class.t3lib_transferdata.php
class.t3lib_transl8tools.php
class.t3lib_treeview.php
class.t3lib_tsfebeuserauth.php
class.t3lib_tsparser.php
class.t3lib_tsparser_ext.php
class.t3lib_tsstyleconfig.php
class.t3lib_tstemplate.php
class.t3lib_userauth.php
class.t3lib_userauthgroup.php
class.t3lib_xml.php
config_default.php
thumbs.php

12k
26k
4.3k
9.0k
19k
8.4k
169k
14k
6.3k
8.9k
35k
67k
45k
8.0k
203k
11k
39k
45k
11k
15k
11k
10k
36k
53k
21k
36k
34k
21k
8.6k
22k
15k
56k
4.6k
56k
64k
20k
56k
15k
12k
42k
8.1k
14k
30k
22k
57k
102k
43k
16k
12k
243k
102k
319k
20k
38k
8.2k
32k
50k
29k
60k
8.9k
65k
52k
71k
9.9k
61k
13k

 

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"

Die Datei server.php steht wiederum ganz woanders.

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

.

.

- Werbung Dezent -
Zurück zur Startseite © 2007/2024 - Deutsches Hifi-Museum - Copyright by Dipl. Ing. Gert Redlich Filzbaden - DSGVO - Privatsphäre - Zum Telefon der Redaktion - Zum Flohmarkt
Bitte einfach nur lächeln: Diese Seiten sind garantiert RDE / IPW zertifiziert und für Leser von 5 bis 108 Jahren freigegeben - kostenlos natürlich.

Privatsphäre : Auf unseren Seiten werden keine Informationen an google, twitter, facebook oder andere US-Konzerne weitergegeben.