Aktualisierungen

für die Liste aller Seiten

Administratoren (Fortgeschritten)

PmWiki erlaubt ein Upgrade, ohne bestehende und angelegte Wikiseiten oder Dateien zu beeinträchtigen. Für die meisten Upgrades kopiert man einfach die Dateien der neuen Version über die bestehende Installation.

Anmerkung für PmWiki 1.0-Seiten: Das Upgraden von 1.0.x zu 2.0 bedarf mehr als nur das einfache Kopieren der 2.0-Software über die 1.0-Installation. Siehe Umstieg von PmWiki V1 auf V2 für nähere Informationen.

Das Upgraden von PmWiki:

1. Lesen der 'release notes'

Wenn man auf eine neue größere Version umsteigt (eine Version wo sich die zweite Stelle ändert, wie von 0.5.27 zu 0.6.0), dann sollte man sorgfältig die PmWiki:ReleaseNotes lesen, bevor der Umstieg vollzogen wird. Es ist zu überprüfen, ob bedeutendende Änderungen oder Vorbereitungen vor dem Upgrade nötig sind. Das Upgrade von einer 2.0-Beta-Version ist einfach, ein Blick auf die PmWiki:ReleaseNotes schadet aber trotzdem nicht.

2. Backup

Es ist immer eine gute Maßnahme, vor dem Beginn der Aktion eine Sicherungskopie der laufenden PmWiki-Installation anzufertigen. Man kann das gesamte Verzeichnis, welches die bestehende Installation beinhaltet, kopieren, oder man sichert zumindest das wiki.d/ Verzeichnis und andere lokale Anpassungsdateien, die angelegt wurden (z. B., config.php, localmap.txt, usw.).

3. Herunterladen und entpacken

Laden Sie die gewünschte Version von PmWiki von der Download-Seite herunter.

Packen Sie das tar-Image mit tar xvfz tgzfile aus, wobei tgzfile die tar-Datei ist, die Sie vorher heruntergeladen haben. Diese wird ein Verzeichnis pmwiki-x.y.z mit der neuen Version der Software erzeugen. Unter Windows benutzen Sie hierfür z. B. das frei erhältliche Programm 7-Zip oder Sie laden die geringfügig größere Datei mit der Endung '.zip' herunter.

4. Kopieren

Kopieren Sie die Dateien aus pmwiki-x.y.z über die Dateien in Ihrer bestehenden PmWiki-Installation. Wenn zum Beispiel Ihre laufende PmWiki-Installation in einem Verzeichnis namens pmwiki liegt, wäre eine Möglichkeit, die neuen Dateien über die existierenden mit folgendem Befehl zu kopieren:

cp -a pmwiki-x.y.z/. pmwiki

Beachten Sie dabei, dass BSD-Systeme keine Option -a für cp als Befehlszeilen Argument kennen. Das ist aber kein Problem, weil es nur ein Kurzbefehl für cp -dpR ist. Hier wird also einfach dies statt -a verwendet.

Einige Umgebungen haben einen Alias für cp eingerichtet, der interaktive Eingriffe erfordert, bevor eine Datei überschrieben wird. Um dem zu entkommen, geben Sie den absoluten Pfad zu cp an, wie z. B. /bin/cp.

Bei einigen FreeBSD-Servern und 'Mac OS X'-Systemen funktioniert statt dessen:

cp -Rpv pmwiki-.x.y.z/. pmwiki

Alternativ können Sie rsync benutzen:

rsync --dry-run -ahv --stats pmwiki-x.y.z/ pmwiki/

Das bewirkt eine 'versuchsweise Durchführung', bei der keine Änderungen vorgenommen werden, aber gezeigt wird, welche Dateien upgedatet würden. Um das aktuelle Update durchzuführen, entfernen Sie dann die --dry-run-Option.

Sie können die Dateien auch mittels eines Programms zum Hochladen von Dateien auf Ihren Server übertragen, z. B. mit Filezilla oder WinSCP, wenn Sie mit Windows arbeiten. Möglicherweise haben Sie diese Programme schon zur Installation benutzt.

5. Aktualisieren der Anpassungen und Kochbuch-Rezepte

Das ist Alles! Die Basis-Installation von PmWiki ist komplett.

Um herauszufinden, welche Kochbuch-Rezepte aktualisiert werden können, benutzen Sie den PmWiki:Site Analyzer.

So lange keine Veränderungen am pmwiki.php-Skript oder in den Dateien in scripts/ vorgenommen wurden, sollte die PmWiki-Installation einwandfrei laufen! (Änderungen an diesen Dateien sind nicht empfohlen.)

Lokale Einstellungen sollten in local/config.php, pub/css und pub/skins/IhrSkinName vorgenommen werden.

Hinweis: Zusätzliche Tipps sind auf der Seite Problemlösungen zu finden.

Upgrading von Version 2.1.27 auf 2.2.0

Zwischen der stabilen Version 2.1.27 und 2.2.0 gibt es einige Neuerungen. Einige von ihnen könnten Anpassungen in lokalen Konfigurationsdateien oder in Wikiseiten nötig machen. Diese sind hier umrissen. Für die vollständige Liste an Änderungen sehen Sie in den ReleaseNotes nach.

Wenn Sie von einer 2.2.beta-Version upgraden, könnte Ihr Wiki diese Features bereits enthalten.

  • Einige Seiten, die früher in der Site.*-Gruppe waren, sind nun in einer separaten lese-geschützten SiteAdmin.*-Gruppe: Site.AuthUser, Site.AuthList, Site.NotifyList, Site.Blocklist, und Site.ApprovedUrls. Wenn Sie von einer früheren Version upgraden, wird PmWiki diese Dateien an ihren neuen Ort verschieben, falls das nötig ist (nach einer Bestätigung durch Sie). Wenn eine Site die alte Site.*-Gruppe für diese Dateien erhalten möchte, setzen Sie einfach $SiteAdminGroup = $SiteGroup; in die config.php-Datei.
  • Um Lesen oder Schreiben in den geschützten Bereichen zu autorisieren, sollte das frühere Passwort "nopass" jetzt durch "@nopass" ersetzt werden.
  • Wikiworte sind nun standardmäßig deaktiviert. Um sie zu reaktivieren, setzen Sie entweder $LinkWikiWords oder $EnableWikiWords auf 1.
  • Die $ROSPatterns-Variable hat sich geändert — Ersatzstrings werden nicht länger durch FmtPageName() geschleust, das muss nun explizit gemacht werden.
  • Seitenverweise innerhalb eingefügter Seiten, Sidebars, Headers oder Footers werden nun als relativ zu der Seite behandelt, in der sie geschrieben stehen, anstatt relativ zu der Seite, in der sie durch das Einfügen erscheinen werden. In Site.SideBar zum Beispiel setzen Sie immer die Gruppe in einem WikiLink wie [[Main/HomePage]] oder mit einer Seitenvariablen [[{*$Group}/Homepage]], weil ein Verweis [[HomePage]] auf die Seite Site.HomePage verweisen wird.
  • Seitenlisten
    • Leerzeichen trennen Muster mit Jokerzeichen (wildcard patterns) nicht länger voneinander — benutzen Sie Kommata.
    • {$PageCount}-, {$GroupCount}- und {$GroupPageCount}-Variablen, die in Seitenlistenvorlagen benutzt werden, sind nun {$$PageCount}, {$$GroupCount} und {$$GroupPageCount}.
    • Die Direktive akzeptiert Parameter von dem URL nicht länger standardmäßig. Um sie zum Akzeptieren solcher Parameter zu bewegen (was in Version 2.2 und früher Standard war), fügen Sie zur (:pagelist:)-Direktive eine request=1-Option hinzu.
  • Skin templates erfordern nun die <!--HTMLHeader-->- und <!--HTMLFooter-->-Direktiven.
  • Authentifizierung mittels Active Directory ist nun vereinfacht, siehe PmWiki.AuthUser.

Upgrading von Version 2.2.0 auf 2.2.145

Einige Neuerungen seit der Version 2.2.0 könnten Änderungen an lokalen Konfigurationsdateien oder an Wikiseiten erforderlich machen. Diese sind hier umrissen. Für die vollständige Liste an Änderungen sehen Sie in den ReleaseNotes und im change log nach.

  • Version 2.2.10: $EnableRelativePageVars wurde geändert, um standardmäßig aktiv zu sein. Das wirkt sich auf Seitenspezifische Variablen von eingefügten Seiten, Sidebars, Headers und Footers aus.
    • Die Form {*$var} bezieht sich auf die "aktuell betrachtete Seite", wogegen sich {$var} ohne den Stern auf die physikalische Seite bezieht, in der die Seitenvariable steht.
    • Seiten, die entworfen wurden, um auf der "aktuell betrachteten Seite" zu funktionieren, sollten {*$FullName} anstelle von {$FullName} benutzen. Administratoren sollten jegliche selbst angepasste Version der Seiten Site.PageActions, Site.EditForm, Site.PageNotFound, SideBar-Seiten, $GroupHeaderFmt, $GroupFooterFmt, Seitenlisten in Sidebars, Headers und Footers inspizieren. Siehe spezielle Referenzen.
    • Wenn Ihr Wiki stark auf das frühere Verhalten angewiesen ist, können Sie dahin zurückkehren, siehe $EnableRelativePageVars.
  • Version 2.2.35: Wichtige Änderung für internationale Wikis: Die XLPage()-Funktion lädt nicht länger 'encoding scripts' wie xlpage-utf-8.php. Wenn Sie upgraden, müssen Sie diese Skripten mittels der config.php-Datei aufrufen, bevor der Aufruf von XLPage() passiert:
      include_once("scripts/xlpage-utf-8.php"); # wenn Ihr Wiki UTF-8 benutzt
      XLPage('bg','PmWikiBg.XLPage'); # (Beispiel für Bulgarien)
    

Upgrading von Version 2.2.145 auf 2.3.0

Version 2.3.0 benötigt PHP 5.3 oder jünger. Die neue Version enthält eine Reihe von neuen Möglichkeiten, von denen einige früher durch Rezepte verwirklicht waren.

Hier sind die Dinge, die überprüft werden müssen, wenn Sie PmWiki auffrischen:

  • Wenn Sie früher das Rezept PageListMultiTargets benutzt haben, deaktivieren Sie es bitte, wenn Sie das neue PmWiki installieren. Die gleiche Funktionalität wird nun vom Kern zur Verfügung gestellt.
  • Für PHP 8.1 wurd die Funktion strftime() auf unerwünscht (deprecated) gesetzt. PmWiki 2.3.0 stellt eine Ersatzfunktion PSFT() zur Verfügung, siehe Funktionen.
  • Die Aktuelle Änderungen-Seiten speichern den Zeitstempel jetzt in dem Seitenquelltext in einem leicht veränderten und übertragbaren internationalen Format (leicht zu parsen). Wenn die Seite angezeigt wird, wird das neue Format automatisch auf das augenblickliche Format konvertiert ($TimeFmt), sodass die Aktuelle Änderungen-Seiten aussehen wie vorher, aber der Quellkode leicht verändert ist.
    Wenn sie eigene Einstellungen am $RecentChangesFmt vorgenommen hatten, werden diese erhalten. Wenn Sie keine eigenen Einstellungen hatten, aber das alte Format bevorzugen, fügen Sie das Folgende in die config.php-Datei ein, um zum alten Format zurückzukehren:
    # revert to pre-2.3.0 RecentChanges
    $RecentChangesFmt = array(
      '$SiteGroup.AllRecentChanges' => 
        '* [[{$Group}.{$Name}]]  . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]',
      '$Group.RecentChanges' =>
        '* [[{$Group}/{$Name}]]  . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]');
    
  • Die Variable $EnableNotSavedWarning ist jetzt per Voreinstellung aktiviert. Fügen Sie $EnableNotSavedWarning = 0; zur ''config.php''-Datei hinzu, um sie zu deaktivieren.
  • Die eingebaute Inhaltsverzeichnisfunktion ($PmTOC) bekam ihren Stil aufgefrischt, damit lange Unterüberschriften ordentlich eingerückt werden. Insbesondere haben die TOC-Verweise jetzt eine display:block-Einstellung, sodass es keine Zeilenumbrüche mehr gibt. Wenn Sie früher eigene Stile für PmTOC definiert haben, überarbeiten Sie diese bitte für den Fall, dass diese eine Anpassung benötigen.

Siehe auch Release Notes für alle Änderungen zwischen Ihrer früheren und der aktuellen Version.

Wenn Sie irgendwelche Fragen oder Schwierigkeiten haben, wenden Sie sich an uns (auf englisch).

Upgrading von Version 2.3.0 auf jüngere Versionen

2.3.15 GUI Edit Buttons change

Teile dieser Funktionen wurden neu geschrieben, um 'unsicheres Inline-JavaScript' zu vermeiden. Während die voreingestellten und die meisten selbst erstellten Schaltflächen ohne Änderungen funktionieren sollten, sollten Sie nicht länger einige Zeichen url-encoden müssen wie % oder Backslashes (\), Beispiel: %20 für das Leerzeichen. Wenn Sie solche Schaltflächen haben, müssten Sie deren Deklarationen erneuern, um die Extra-Backslashes zu entfernen.

2.3.23 PmToken

Diese Version fügt ein Sitzungstoken zum Kern hinzu für Bearbeiten-, Hochladen-, Attribute- und andere Funktionen. Dies ist ein Weg, um die CSRF Angreifbarkeit zu begrenzen.

Alle Kernformulare und -Elemente haben ein Update erfahren und sollten ohne Änderungen funktionieren.

Einige Installationen könnten die Warnung "Token invalid or missing" ausgeben und die Änderungen werden nicht gespeichert. Dies könnte durch eigenen Bearbeiten- oder Hochladenformulare verursacht werden, auch durch automatisierte Skripten zum Posten in das Wiki, AJAX zum Posten von Text oder zum Hochladen, das einige Skripten benutzen oder nur in Teilen ausgeführte Upgrades, wo einige Kernskripten nicht mit aufgefrischt wurden. Die meisten davon sollten leicht upzudaten sein – bitte prüfen Sie, ob Sie die jüngste Version benutzen, oder teilen Sie uns solche Fälle mit.

Zum Updaten von eigenen Formularen:

  • In einem Formular, das in PmWiki-Markup geschrieben ist, fügen Sie das Element (:input pmtoken:) nach der (:input form...:)-Direktive ein.
  • Wenn Ihr Skript die Variable $PageUploadFmt definiert, sollte diese nicht das Element <input type='hidden' name='\$TokenName' value='\$TokenValue' /> innerhalb des <form...>-Elements enthalten.

Wenn Sie $UnapprovedLinkFmt angepasst haben, sollten Sie es auffrischen, um das Token-Argument $TokenName=$TokenValue in den Link-URL einzufügen, etwa href='\$PageUrl smiley?action=approvesites&\$TokenName=\$TokenValue'.

Wenn Sie nicht in der Lage sind, Ihr Skript upzudaten, können Sie die PmToken-Funktionalität deaktivieren, indem Sie dies in die config.php-Datei einfügen:

  $EnablePmToken = 0; # edit, upload, attributes, approveurls
  $PmFormEnablePmToken = 0; # PmForm

Wenn Sie Rezepte oder eigenen Funktionen haben, die Änderungen am Wiki vornehmen, und Sie wollen aus der eingebauten PmToken-Funktionalität Nutzen ziehen, siehe Funktionen#pmtoken.

2.3.31 PrintFmt()

Die Funktion PrintFmt() wurde umgebaut, um Markup und Wikiseiten aufzubereiten, bevor HTML-Header ausgegeben werden, was erlauben würde, für Markups in Seitenköpfen, Seitenfüßen und Seitenleisten, die durch das Skin eingefügt werden, auch für Aktionsseiten wie Authentifizierungsformulare (Site.AuthForm), $HTMLHeaderFmt und $HTMLStylesFmt und die Direktiven (:noheader:), (:notitle:), (:noleft:), (:noaction:) zu konfigurieren, so dass sie in diesen Seiten funktionieren würden. Falls Ihr Wiki auf das frühere Verhalten angewiesen ist, können Sie das rückgängig machen durch die folgende Zeile in der config.php-Datei:

  $EnablePrePrintFmt = 0;

Falls der neue Standardmodus für Ihr Wiki problematisch ist, lassen Sie es mich wissen.

2.3.37 Site.EditForm, sortable, rowspan

Die Seite Site.EditForm ist verändert worden; falls Sie sie angepasst haben, möchten Sie die Seite vielleicht bearbeiten und nach (:input e_minorcheckbox:) den Text "Dies ist eine geringfügige Änderung" entfernen. Die Änderung war nötig, damit das Label in einigen Fällen automatisch angepasst werden kann, namentlich beim Zusammenführen von Bearbeitungen.

$EnableSortable und $EnableSimpleTableRowspan sind nun standardmäßig aktiviert. Um sie zu deaktivieren, können Sie sie in der config.php-Datei auf 0 setzen.

  $EnableSortable = 0; # deaktiviere sortierbare Tabellen
  $EnableSimpleTableRowspan = 0; # deaktiviere 'rowspan' (zeilenüberspannen) in Tabellen

FAQ

Wie kann ich herausfinden, welche Version von PmWiki bei mir läuft?

Siehe Version - So findet man die Version von PmWiki heraus und so gibt man sie aus (pmwiki-2.3.38).

Wie kann ich eine neue Version von PmWiki testen, ohne die vorige Version zu ändern, die die Besucher benutzen?

Der leichte Weg, das zu tun, ist, die neue Version in einem separaten Verzeichnis zu installieren und in deren local/config.php-Datei das Folgende einzufügen:

    $WikiLibDirs = array(&$WikiDir,
      new PageStore('/path/to/existing/wiki.d/{$FullName}'),
      new PageStore('wikilib.d/{$FullName}'));

Wenn Seiten aufgerufen werden, werden sie (vorausgesetzt, an den Standardnamen wurde nichts geändert) der Reihe nach in wiki.d, /path/to/existing/wiki.d/ und wikilib.d gesucht. Der erste Fund wird dann geladen. Gespeichert wird das Ergebnis immer in wiki.d.

Das lässt Sie die neue Version mit existierenden Seiteninhalten testen, ohne Auswirkungen auf die existierende Site und ohne Modifikationen an den Seiten zu riskieren.

Wenn dann die neue Version offensichtlich genau so gut wie die alte Version funktioniert, ist ein Upgrade der alten Version sicher — und man weiß um die Änderungen, die an der Konfiguration und an den Seiten gemacht werden müssen. (Natürlich müssen auch alle Rezepte und lokale Anpassungen in der neuen Version installiert werden.)

Wenn Sie dann irgendwann zufrieden mit der neuen Version sind und alles so zu funktionieren scheint wie in der alten Version, ist es sicher, die alte Version auf die neue umzustellen (und man kennt alle notwendigen Konfigurations- und Seitenänderungen, die gemacht werden müssen.)

für die Liste aller Seiten


Übersetzung von PmWiki.Upgrades,   Originalseite auf PmWikiDe.Upgrades   —   Rückverweise

Zuletzt geändert:   PmWikiDe.Upgradesam 22.08.2024
 PmWiki.Upgradesam 21.08.2024