usługi prawne, ochrona danych, bezpieczne systemy informatyczne

ich war hier: WikkaWiki

Wiki source for WikkaWiki


Show raw source

===== Wikka Wiki =====
== Konfiguration, Einstellungen, Installation ==
>>Für erste Schritte bei Updates Originaldokument beachten:
- http://docs.wikkawiki.org/UpgradeNotes
Weitere sinnvolle Quellen:
- http://wikkawiki.org/FilesManagementSolution
- http://wikkawiki.org/WikkaMenulets>>
Die von uns eingesetzte Software braucht auch manchmal einen kleinen Anschub - deshalb die Dokumentation der Anpassungen / Korrekturen im WikkaWiki:
- vor detaillierten Arbeiten am Quelltext ist es sinnvoll, das **[[WikkaSystemConcept Gesamtkonzept von WikkaWiki zu verstehen]]**;
- [[WikkaListeArbeiten ältere chronologische Liste der Arbeiten am System]]

=== Zunächst eine kurze Sammlung zum Informationsarchiv aus früheren Generationen (vor 2021): ===
- [[WikkaModRewrite eine besser aussehende URL mit mod_rewrite von Apache]]
- [[WikkaLinksToNorms automatische Links auf Normen]]
- [[WikkaLocalization Sprachen für das UI]]
- [[WikkaCategoryTree Baumdarstellung für Kategorien]]
- [[WikkaInhaltsVerzeichnis Automatisiertes Inhaltsverzeichnis]]


=== Und hier eine geordnete Darstellung aktuell (2021 - 2022) ===

((1)) Umstieg auf PHP 8.0
>>**Achtung**!
Eine Dokumentation der Anpassung durch Dienstleister 2022 ist **[[WikkaAnpassungFunktionen hier zu finden]]**. Auf dieser Seite hingegen wurden eher die Probleme aufgezeichnet, die mit dem Umstieg auf PHP 8 verbunden sind. >>Grundlage der Migration ist WikkaWiki 1.4.2, die für PHP 7.X vorgesehen ist (jedenfalls mit 7.2 getestet wurde). Zahlreiche Probleme in der Datenbanksteuerung und bei einigen Startskripten unter PHP 8 konnten schnell beseitigt werden. Das Problem war insbesondere das geänderte Datenbankmodell in PHP.
>>**Achtung: zahlreiche Fehler könnten womöglich vermieden werden, wenn eine niedrigere Debugging-Stufe in PHP eingestellt worden wäre - bei Berücksichtigung der Fehler und deren Bearbeitung wird der Code wohl qualitativ besser sein.**>>
Als das System dann einigermaßen installiert werden und danach starten konnte, mussten folgende Schritte unternommen werden:

((2)) Wakka.class Zeile 336
##Warning: Undefined variable $result in /usr/local/www/wdb/libs/Wakka.class.php on line 336##

((3)) Problem
Offenbar wird die Funktion ##function Query($query, $params=NULL, $dblink='')## auch dann genutzt, wenn sie keinerlei vernünftige Ergebnisse produziert.

((3)) Lösung
In Zeile 336 schlicht ändern:
=> aus ##return $result;##
=> Folgendes machen: ##if (isset($result)) return $result;##


((2)) Wakka.class Zeile 432
##Warning: Undefined variable $data in /usr/local/www/wdb/libs/Wakka.class.php on line 432##

Es hat das Gleiche geholfen, wie schon bei Zeile 336:
=> aus ##return $data;##
=> mach ##if (isset($data)) return $data;##

((2)) Fehler, die von selbst verschwunden waren
Die nachstehenden Fehler sind nach Korrektur der Punkte oben von alleine verschwunden:
##Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/wdb/libs/Wakka.class.php:336) in /usr/local/www/wdb/libs/Wakka.class.php on line 5285##
und:
##Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/wdb/libs/Wakka.class.php:336) in /usr/local/www/wdb/libs/Wakka.class.php on line 5287##

((2)) Weitere Fehler in den Kommentaren
In den Kommentaren werden in der Regel folgende Fehler angezeigt:
##Warning: Trying to access array offset on value of type null in /usr/local/www/wdb/handlers/show/show.php on line 163##
Eigentlich zog sich hier die Befehlskette über zwei Zeilen und sah so aus:
##""if ((isset($_SESSION['show_comments'][$tag]) && $_SESSION['show_comments'][$tag] != COMMENT_NO_DISPLAY) || ($user['show_comments'] == 'Y'))""##
Der Wert ##$user## musste noch mal vor Abfrage auf Existenz geprüft werden:
##""if ((isset($_SESSION['show_comments'][$tag]) && $_SESSION['show_comments'][$tag] != COMMENT_NO_DISPLAY) || ($user && $user['show_comments'] == 'Y'))""##

((2)) Sporadische Fehler auf manchen Seiten
(Beispiel: FormattingRules) => schwerwiegend, da sich gar keine Seite zeigt und nur die Fehlermeldung:
## Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/local/www/wdb/3rdparty/core/safehtml/classes/safehtml.php on line 95##

((3)) Problem: obsolet gewordene Schreibweise mit { oder }
Siehe hier:
https://www.php.net/manual/de/migration80.incompatible.php

an der Stelle unter folgender Überschrift:
//Support for deprecated curly braces for offset access has been removed.//

((3)) Lösung
Es reicht wohl aus, Arrays mit [] statt mit {} zu schreiben...

((3)) Weitere ähnliche Fälle
=> ##3rdparty/core/safehtml/classes/HTMLSax.php## on line 195 + 343


((2)) Fehler nach Anmeldung
Nach der Anmeldung als User (hier konkret der Admin) kamen weitere Fehler vor:
##Warning: Undefined variable $sessionid in /usr/local/www/wdb/libs/Database.lib.php on line 175## gleich 2x...
Später verschwanden Sie aber wieder ohne Änderungen. Vielleicht mit Korrektur zu den Zeilen 336 / 432. Danach aber wieder aufgetaucht...

((3)) Problem
Nach Anmeldung als registrierter Benutzer taucht überall die Meldung auf:
##Warning: Undefined variable $sessionid in /usr/local/www/wdb/libs/Database.lib.php on line 175## und noch mal
##Warning: Undefined variable $username in /usr/local/www/wdb/libs/Database.lib.php on line 175##

((3)) Lösung
In Datei Database.lib.php die Variablen ##$sessionid## und ##$username## entsprechend definiert (nun 2 neue Zeilen 168/169):##
if(!isset($sessionid)) $sessionid = '';
if(!isset($username)) $username = '';##

((2)) Fehler in //action// __PageIndex__ (Wakka.class Zeile 4131)
Fehlermeldung war:
##Warning: Undefined variable $name in /usr/local/www/wdb/libs/Wakka.class.php on line 4131##
Lösung:
in Zeile 4108 Variable definiert: ##if(!isset($name)){$name = '';}##
Zeile 4131 verschiebt sich in 4134.


((1)) Fehler bei Aufruf von HTML-Quelltext
Bei Aufruf von HTML in roher Form (mit doppelten Anführungsstrichen " möglich) wird offenbar eine veraltete Version von [[WikkaWikiSafeHTML SafeHTML]] aufgerufen und es beginnen viele Probleme. Dies [[WikkaWikiSafeHTML wird hier ausführlich dokumentiert]].


((1)) Datenbanken und Datenbankstruktur
Die letzten Versionen von WikkaWiki führen einige wichtige Änderungen in der Struktur der Datenbank (mysql) ein. Insbesondere das, was in der Tabelle ##users## passiert, hatte viele Folgen beim Debugging. Sie müssen also händisch nachgetragen werden. Scheinbar werden diese Änderungen bei Anlegen einer sauberen, frischen Neuinstallation nicht berücksichtigt!

=> Details dazu im Artikel über [[WikkaWikiDBupdates142 Updates in der DB für WikkaWiki 1.4.2]].

Dort sind auch Befehle zum Export und Import von Daten zu finden!


((1)) Protokoll nach Korrektur ##safehtml##
Nachdem mit //safehtml// Durchbruch erzielt wurde, wird wie folgt gearbeitet:
- Entwicklungssystem = Ubuntu 22.04 LTS als Server / VM unter 10.1.0.128
- dort ist im separaten Verzeichnis auch //rector// installiert und kann zur Konvertierung genutzt werden

=> ##libs/Wakka.class.php## - überarbeitet mit //rector//

=> Fehler ##Too few arguments to function Wakka::__construct(), 0 passed##
Zeilen: ##libs/Wakka.class.php## = 235; ##wikka.php## = 704
**Lösung**: => Initialisierung Wakka-Class mit ##$wakka = instantiate('Wakka',$wakkaConfig);##

=> Warnung ##Warning: Undefined variable $name in /var/www/wikka/libs/Wakka.class.php on line 4106##
Ist vorher nicht aufgetreten, nach Bearbeitung mit rector da...
Wurde schon mal bearbeitet - **Lösung**: siehe [[http://www.erdaxo.de/WikkaWiki#section_15 oben]].

=> Kommentare verursachen Fehler; das aktive Template wird nicht genutzt, Seite erscheint unformatiert und es kommt Meldung:
##Fatal error: Uncaught TypeError: Unsupported operand types: array & bool in /var/www/wikka/handlers/show/show.php:340## usw.
Es hat gereicht, die Bedingung in Zeile 338 zu korrigieren:
=> statt ##&## musste ##""&&""## gesetzt werden;
Später war ähnliches Problem aufgetaucht (diesmal beim ausgeloggten Benutzer) in Zeile 163:
=> statt ##($user['show_comments'] == 'Y'))##
musste nun ##((isset($user['show_comments'])) && $user['show_comments'] == 'Y'))## her,
weil array leer war...

=> action "adminpages" wirft Warnungen raus:
##Warning: Undefined array key "id" in /var/www/wikka/actions/adminpages/adminpages.php on line 677
Warning: Undefined array key "note" in /var/www/wikka/actions/adminpages/adminpages.php on line 681##
(Bearbeitung der Datei ##actions/adminpages/adminpages.php## mit //rector// brachte keine Änderung)
Aber => das Problem war offenbar die unvollständige Variable ##$sort_fields## (Zeile 327), in der die Felder aus der DB vorgegeben waren. Nachdem //id// und //note// darin ergänzt wurden, ist alles OK!

=> ##function LoadAll()## in Wakka.class.php musste korrigiert werden:
##""//""return $data; ##
musste (Zeile 431) ersetzt werden mit
##if (isset($data)) return $data;##

=> Functions für "badwords" in ##Wakka.class.php## mussten korrigiert werden
- Kostante ##DEFAULT_BADWORDS_PATH## war nicht definiert
- da die Konstante sonst nirgendwo nötig war, wurde sie überflüssig gemacht, so dass die Funktionen (Zeile 4850 und 4894) einfach aus den config-Values eingelesen wird (##$badwordspath = $this->GetConfigValue('badwords_path');##)

=> Funktionen für Source-Code-Highlighting (geshi) waren kaputt
- geshi wurde mit //rector// behandelt
- und danach ging alles wieder einwandfrei => die von //rector// ebenfalls veränderten, einzelnen Dateien (für Quellcode-Arten) im Verzeichnis "geshi" mussten nicht mal angefasst werden...

=> Action "spamlog.php" produzierte Fehler:
##Fatal error: Uncaught Error: Undefined constant "DEFAULT_SPAMLOG_PATH"##
**Lösung**: ähnlich wie bei "badwords" oben;
darüber hinaus musste noch spamlog-Datei angelegt werden...

=> Action "files.php" hatte veraltete Code-Standards
- Behandlung mit //rector// hat ausgereicht, Fehler waren verschwunden!

=> Action "attachments.php" funktioniert insgesamt nicht.
- Fehler wegen fehlender Definition einer Variable sind nur kleines Problem!
- Der erzeugte Link führt zu nichts!
- deshalb sollte das Ding beseitigt werden.

=> diverse Probleme beim Anlegen neuer Seiten:
##Warning: Trying to access array offset on value of type bool in /var/www/wikka/libs/Wakka.class.php on line 1651##
##Warning: Trying to access array offset on value of type bool in /var/www/wikka/handlers/edit/edit.php on line 81 / 174 / 176##
##Warning: Trying to access array offset on value of type bool in /var/www/wikka/templates/light/header.php on line 8 / 10 / 19 / 51##
=> in der Regel durch Prüfung der Existenz der Variable abgefangen;

=> Rund um Kategorien waren Warnungen zum Titel (nach Umstieg auf die Datenbank der WDB)
##Warning: Trying to access array offset on value of type bool in /var/www/wikka/libs/Wakka.class.php on line 2208##
Beseitigt mit Abfangen der fehlenden Variablen-Deklaration / Definition vorher.

=> Registrierung war plötzlich nicht mehr möglich
Unter FreeBSD gab es keine Meldungen - unter Ubuntu kamen Warnungen:
##Warning: foreach() argument must be of type array|object, null given in /var/www/wikka/libs/userregistration.class.php on line 111##
Möglicherweise funktioniert also die genannte Datei nicht korrekt...
Vorgehensweise:
=> nach Behandlung mit //rector// verschwindet die Warnung
=> die Registrierung war dann (unter Ubuntu 22.04 mit apache php_mod) sofort möglich
=> unter FreeBSD => kein Problem, sofern [[http://www.erdaxo.de/WikkaWikiDBupdates142#section_2 die DB entsprechend aktualisiert!]]

=> Geshi funktionierte nicht unter FreeBSD
Unter Ubuntu war hingegen alles OK. //rector// hat offenbar aus Arrays irgendwie Klassen-Konstruktionen gemacht, die unter Ubuntu und PHP 8.1 OK waren, unter FreeBSD und PHP 8.0 nicht... Eine Umgestaltung zurück in Arrays löste das Problem.
Vgl. in ##3rdparty/plugins/geshi/geshi.php## die Zeilen (neue Version nach //rector//): 3210, 3230, 3247, 3422.


((1)) Protokoll Debugging nach Umstellung auf PHP8
Liste der Dateien:

((2)) //root//
Im Stammverzeichnis von wikkawiki:

=> wikka.php

((2)) 3rdparty

((3)) core
Insb. safehtml...
(1) safehtml / classes
Beide:
=> safehtml.php
=> HTMLSax.php (insbesondere diese!)

((3)) plugins
geshi / geshi.php

((2)) actions

((3)) adminpages
Probleme mit Arrays:
=> adminpages.php

((3)) attachments
Action kaputt!
=> attachments.php

((3)) files
Alte Standards im Code:
=> files.php

((3)) spamlog
Konstante nicht vorhanden:
=> spamlog.php

((2)) handlers

((3)) show
Kommentare etc.
=> show.php
((3)) edit
Insbesondere kleine Probleme beim Anlegen neuer
Seiten
=> edit.php

((2)) libs
Sehr viele Stellen:
=> Wakka.class.php

((2)) templates
|_ Light
=> header.php



((1)) Anpassung der Funktionen / Customizing
Die oben zusammengefassten Probleme und ihre Korrekturen betrafen zunächst einmal Fehler im Sinne von nicht / falsch funktionierenden Skripten. Resultat war eine Fehlermeldung oder eine Seite / Funktion haben nicht funktioniert. Unter dem Kapitel "Anpassung der Funktionen" werden Themen behandelt / protokolliert, die sich auf die [[WikkaAnpassungFunktionen angepassten oder zusätzlichen Funktionen]] von WikkaWiki beziehen.


----
CategoryITKnowledge
Valid XHTML  |  Valid CSS  |  Powered by WikkaWiki