Linux.Wiki: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Neuinstallation ==
== Neuinstallation ==


Zeile 10: Zeile 9:


* Die neueste Distribution des Media-Wiki-Zips nach /srv/www/htdocs/mediawiki auspacken. (Der Grund ist: (noch Unbestätigt für 2008): Wenn man ein Wiki von einem Server umzieht ist dummerweise der Pfad in die Datenbank eingetragen (ein schlimmer Design-Fehler) also wieder GENAU den Pfad zur Verfügng stellen wie es war!)
* Die neueste Distribution des Media-Wiki-Zips nach /srv/www/htdocs/mediawiki auspacken. (Der Grund ist: (noch Unbestätigt für 2008): Wenn man ein Wiki von einem Server umzieht ist dummerweise der Pfad in die Datenbank eingetragen (ein schlimmer Design-Fehler) also wieder GENAU den Pfad zur Verfügng stellen wie es war!)
* Die Datenbanksicherung einspielen
 
** MySQL muss laufen
** Ein root user muss existieren
** create database wiki;
** charset latin1;
**
** Rückspielen des Dumps
* ./mediawiki/config ausführen
* ./mediawiki/config ausführen
** <code>mv LocalSettings.php ..</code>
** <code>mv LocalSettings.php ..</code>
Zeile 23: Zeile 16:
** das ./images Verzeichnis sollte noch beschreibbar gemacht werden
** das ./images Verzeichnis sollte noch beschreibbar gemacht werden
** Kompletter alter Inhalt überschreibt dabei das fast leere ./images einer frisch entpackten Version
** Kompletter alter Inhalt überschreibt dabei das fast leere ./images einer frisch entpackten Version
== am Beispiel Raspberry Pi ==
* Umzug dieses Wikis auf einen Raspberry Pi
* Ich versuche Mediawiki 1.32 zu verwenden
* nötige PHP Module sind "mbstring, xml, ctype, json, iconv, fileinfo"
=== Datenbank ===
#
# notwendige Software
#
apt install p7zip mariadb-server
apt install php-mbstring php-xml php-mysql
apt install imagemagick
#
# passwort für root setzen auf ***
#
mysql_secure_installation
#
# Datenbank erstellen
#
mysql --password=***
  create database wikidb;
  connect wikidb;
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '***';
  quit
#
# Dump einlesen
#
mysql --password=*** wikidb < wiki.sql


== LocalSettings.php ==
== LocalSettings.php ==
typische Änderungen an den Einstellungen "unten"
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgLogo            = "$wgStylePath/../logo.png";
$wgEnableUploads = true;
$wgFileExtensions = array('png', 'jpg', 'jpeg', 'ppt', 'ogg', 'odt', 'pdf', 'mp3');




Zeile 38: Zeile 76:
  $wgLogo            = "/mediawiki/images/OrgaMon.png";
  $wgLogo            = "/mediawiki/images/OrgaMon.png";


== /etc/php5/apache2 ==
Die Uploadgrösse muss noch in der php.ini eingestellt werden, der Standrad mit 2M ist nicht mehr zeitgemäs
php.ini
#
# Parametername lautet anders, noch anpassen!!"
#
max_upload=99M


== Syntax Highliter Extension ==
== Syntax Highliter Extension ==
Zeile 50: Zeile 98:


== Backup des Wiki ==
== Backup des Wiki ==
* Wen erforderlich setze das Wiki in den Wartungsmodus
$wgReadOnly = 'Wegen Server-Umzug sind Aenderungen im Moment nicht moeglich!';


  mysqldump --password=********* wiki >/srv/sql/wiki.sql
  mysqldump --password=********* wiki >/srv/sql/wiki.sql
* Soll das Wiki umgezogen werden könnte man auf dem alten Wiki einen Hinweis auf die neue Serveradresse hinterlassen:
<code>
$wgSiteNotice = "Dieses Wiki zieht im Moment auf einen neuen Server um und ist Schreibgeschuetzt. Verwende http://orgamon.dyndns.org:8080/mediawiki/ um auf das aktuelle Wiki zuzugreifen!";
</code>


== Restore des Wiki ==
== Restore des Wiki ==


* MySQL muss laufen
* Ein root user muss existieren


mysql --password=*********
> create database wiki;
> charset latin1;


== MySQL - Migration ==


* Der Umzug meines etwas älteren Wiki auf einen neuen Server war SEHR schwierig. Ich habe versucht alle Schritte zu dokumentieren, das Grundproblem sind die Umlaute und die zuuu langen Datenbank Schlüssel. Ich konnte das Lösen, indem ich den Datenbank-Dump in einen Editor lade, und diverse Modifikationen per Hand durchführe. Hier die Liste der Modifikationen:
* Rückspielen des Dumps


mysql --password=********* wiki2 < wiki-2.sql




* reine Zeichenersetzungen
* Auf openSUSE 42.2


  "SET NAMES utf8" -> "SET NAMES utf8"
  mysql
SET PASSWORD=PASSWORD('********');


"CHARSET=utf8" -> "CHARSET=utf8"
== Wiki läuft nun im Hauptverzeichnis ==


"character set utf8 collate utf8_general_ci" -> "character set utf8 collate utf8_general_ci"
Bisher war das Wiki über /mediawiki/ zugänglich, es hat sich draussen noch nicht 100% herumgesprochen, dass es jetzt im Hauptverzeichnis läuft. Somit habe ich eine Rewrite-Rule verfasst, die den Pfad entsprechend verändert (in diesem Falle löscht!).


  ü -> ü
  <VirtualHost *:80>
    ServerName deinserver
    ServerAlias 192.168.115.25 raib25 localhost www.orgamon.net
    DocumentRoot /srv/www/htdocs/mediawiki
  RewriteEngine on
#  RewriteLog /var/log/apache2/rewrite_log
#  RewriteLogLevel 9
  RewriteRule ^/mediawiki/index.php5/(.*)$ /index.php5/$1 [R]
   
  </VirtualHost>


ä -> ä
== MySQL - Migration ==


Ãœ -> Ü
* Der Umzug meines etwas älteren Wiki auf einen neuen Server war SEHR schwierig. Das Grundproblem sind die Umlaute und die zu langen Datenbank-Schlüssel. Ich konnte das Lösen, indem ich den Datenbank-Dump in einen Editor lade, und diverse Modifikationen per Hand durchführe. Danach einen Restore der Datenbank auf dem neuen System.


Ä -> Ä
* Tatsache ist, dass der alte DUMP eine ANSI-Datei ist. Es gibt zumindest kein BOM. Ich rede bei der Anlage aller Tabellen nur UTF8, jedoch den DUMP selbst bringe ich zunächst in reines ANSI. Erst ganz zum Schluss KONVERTIERE ich nach UTF8 (mit Notepad++). Ich sah zuvor in meinem DUMP ein ganz schlimmes Mix-Up von ANSI- und UTF8- Codes.
* Um es also einspielen zu können muss alles schön UTF8 sein incl. BOM.


ö -> ö


ß -> ß
Ich habe versucht alle Schritte zu dokumentieren:


Ö -> Ö
=== Zeichenersetzungen ===


SET NAMES latin1 -> SET NAMES utf8
CHARSET=latin1 -> CHARSET=utf8
character set latin1 collate irgendwas -> character set utf8 collate utf8_general_ci
ü -> ü
ä -> ä
Ãœ -> Ü
Ä -> Ä
ö -> ö
ß -> ß
Ö -> Ö
á -> á


Tabellen Keys kürzen:
=== Tabellen Keys kürzen ===
 
DROP TABLE IF EXISTS `categorylinks`;
CREATE TABLE `categorylinks` (
  `cl_from` int(8) unsigned NOT NULL default '0',
  `cl_to` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
  `cl_sortkey` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
  `cl_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
  KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
  KEY `cl_sortkey` (`cl_to`,`cl_sortkey`,`cl_from`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
utf8_general_ci
DROP TABLE IF EXISTS `categorylinks`;
CREATE TABLE `categorylinks` (
  `cl_from` int(8) unsigned NOT NULL default '0',
  `cl_to` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
  `cl_sortkey` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
  `cl_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
  KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
  KEY `cl_sortkey` (`cl_to`,`cl_sortkey`,`cl_from`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


* ich habe jeweils 255 durch 127 ersetzt!


DROP TABLE IF EXISTS `categorylinks`;
DROP TABLE IF EXISTS `categorylinks`;
CREATE TABLE `categorylinks` (
CREATE TABLE `categorylinks` (
   `cl_from` int(8) unsigned NOT NULL default '0',
   `cl_from` int(8) unsigned NOT NULL default '0',
   `cl_to` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
   `cl_to` varchar(<u>127</u>) character set utf8 collate utf8_general_ci NOT NULL default '',
   `cl_sortkey` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
   `cl_sortkey` varchar(<u>127</u>) character set utf8 collate utf8_general_ci NOT NULL default '',
   `cl_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
   `cl_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
   UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
   UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
   KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
   KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
   KEY `cl_sortkey` (`cl_to`,`cl_sortkey`,`cl_from`)
   KEY `cl_sortkey` (`cl_to`,`cl_sortkey`,`cl_from`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 
* Folgende zeile auskommentieren:


INSERT INTO `image` VALUES ('Beleg.PNG',37264,'',1,'Root','20080516080458',937,691,8,'','BITMAP','image','png','6a3tgc1cymxe6y33gprh5i7iqt5ejqj');
* Tabellen keys kürzen:


  CREATE TABLE `imagelinks_old` (
  CREATE TABLE `imagelinks_old` (
   `il_from` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
   `il_from` varchar(<u>127</u>) character set utf8 collate utf8_general_ci NOT NULL default '',
   `il_to` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default '',
   `il_to` varchar(<u>127</u>) character set utf8 collate utf8_general_ci NOT NULL default '',
   KEY `il_from` (`il_from`(10)),
   KEY `il_from` (`il_from`(10)),
   KEY `il_to` (`il_to`,`il_from`)
   KEY `il_to` (`il_to`,`il_from`)
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


* löschen der zeile
=== Zeilen löschen ===


INSERT INTO `image` VALUES ('Beleg.PNG',37264,'',1,'Root','20080516080458',937,691,8,'','BITMAP','image','png','6a3tgc1cymxe6y33gprh5i7iqt5ejqj');
  INSERT INTO `page` VALUES (2254,0,'AusgabeArt','',581,0,0,0.514803822297,'20070925132006',18953,23);
  INSERT INTO `page` VALUES (2254,0,'AusgabeArt','',581,0,0,0.514803822297,'20070925132006',18953,23);
INSERT INTO `page` VALUES (2426,6,'Beleg.PNG','',22,0,1,0.173215221939,'20080516080552',20362,0);
... und viele mehr. Welche zu löschen sind sagt Dir die Fehlermeldung des Restore ...


löschen der Zeile
== Debian 10 ==


INSERT INTO `page` VALUES (2426,6,'Beleg.PNG','',22,0,1,0.173215221939,'20080516080552',20362,0);
wegen PHP 7.3 kann nur Mediawiki 1.37




21.12.2022: Beginn eines Umzuges auf einen neuen v-Server von Strato mit Debian 10


</code>
apt install nginx php-fpm php-mbstring php-xml php-mysql php-ctype php-dom php-fileinfo php-iconv php-intl php-json
apt install p7zip mariadb-server
#
# wegen syntaxhighligth
apt install python3 pip
pip install Pygments


== Links ==
== Links ==


* http://www.mediawiki.org/wiki/Manual:FAQ#Upgrading
* http://www.mediawiki.org/wiki/Manual:FAQ#Upgrading
* https://de.wikipedia.org/wiki/Hilfe:Tabellen_f%C3%BCr_Fortgeschrittene

Aktuelle Version vom 22. Februar 2024, 18:17 Uhr

Neuinstallation

Dieser Artikel enthält Infos, um dieses Wiki neu aufzusetzen (Nach Crash oder Umzug auf einen anderen Server). Systemanforderungen eines Wikis sind:

  • Apache2
  • PHP5

Die Installations-Schritte sind:

  • Die neueste Distribution des Media-Wiki-Zips nach /srv/www/htdocs/mediawiki auspacken. (Der Grund ist: (noch Unbestätigt für 2008): Wenn man ein Wiki von einem Server umzieht ist dummerweise der Pfad in die Datenbank eingetragen (ein schlimmer Design-Fehler) also wieder GENAU den Pfad zur Verfügng stellen wie es war!)
  • ./mediawiki/config ausführen
    • mv LocalSettings.php ..
    • Anpassungen der LocalSettings machen
  • Bilder zurückspielen
    • das ./images Verzeichnis sollte noch beschreibbar gemacht werden
    • Kompletter alter Inhalt überschreibt dabei das fast leere ./images einer frisch entpackten Version

am Beispiel Raspberry Pi

  • Umzug dieses Wikis auf einen Raspberry Pi
  • Ich versuche Mediawiki 1.32 zu verwenden
  • nötige PHP Module sind "mbstring, xml, ctype, json, iconv, fileinfo"

Datenbank

#
# notwendige Software
#
apt install p7zip mariadb-server
apt install php-mbstring php-xml php-mysql
apt install imagemagick

#
# passwort für root setzen auf ***
#
mysql_secure_installation

#
# Datenbank erstellen
#
mysql --password=***
 create database wikidb;
 connect wikidb;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '***';
 quit

#
# Dump einlesen
#
mysql --password=*** wikidb < wiki.sql


LocalSettings.php

typische Änderungen an den Einstellungen "unten"

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgLogo             = "$wgStylePath/../logo.png";
$wgEnableUploads = true;
$wgFileExtensions = array('png', 'jpg', 'jpeg', 'ppt', 'ogg', 'odt', 'pdf', 'mp3');



$wgEnableUploads = true;
$wgUseImageMagick = true;

$wgEnotifUserTalk = false; # UPO
$wgEnotifWatchlist = false; # UPO
$wgEmailAuthentication = false;

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgLogo             = "/mediawiki/images/OrgaMon.png";

/etc/php5/apache2

Die Uploadgrösse muss noch in der php.ini eingestellt werden, der Standrad mit 2M ist nicht mehr zeitgemäs


php.ini
#
# Parametername lautet anders, noch anpassen!!"
#
max_upload=99M

Syntax Highliter Extension

http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi


Installation

1) 4 Dateien aus der MediaWiki SVN 2) Das RELEASE!!! Zip der GeSHi Homepage

Backup des Wiki

  • Wen erforderlich setze das Wiki in den Wartungsmodus
$wgReadOnly = 'Wegen Server-Umzug sind Aenderungen im Moment nicht moeglich!';
mysqldump --password=********* wiki >/srv/sql/wiki.sql
  • Soll das Wiki umgezogen werden könnte man auf dem alten Wiki einen Hinweis auf die neue Serveradresse hinterlassen:

$wgSiteNotice = "Dieses Wiki zieht im Moment auf einen neuen Server um und ist Schreibgeschuetzt. Verwende http://orgamon.dyndns.org:8080/mediawiki/ um auf das aktuelle Wiki zuzugreifen!";

Restore des Wiki

  • MySQL muss laufen
  • Ein root user muss existieren
mysql --password=*********
> create database wiki;
> charset latin1;


  • Rückspielen des Dumps
mysql --password=********* wiki2 < wiki-2.sql


  • Auf openSUSE 42.2
mysql
SET PASSWORD=PASSWORD('********');

Wiki läuft nun im Hauptverzeichnis

Bisher war das Wiki über /mediawiki/ zugänglich, es hat sich draussen noch nicht 100% herumgesprochen, dass es jetzt im Hauptverzeichnis läuft. Somit habe ich eine Rewrite-Rule verfasst, die den Pfad entsprechend verändert (in diesem Falle löscht!).

 <VirtualHost *:80>
   ServerName deinserver
   ServerAlias 192.168.115.25 raib25 localhost www.orgamon.net 
   DocumentRoot /srv/www/htdocs/mediawiki

  RewriteEngine on
#   RewriteLog /var/log/apache2/rewrite_log
#   RewriteLogLevel 9

  RewriteRule ^/mediawiki/index.php5/(.*)$ /index.php5/$1 [R]

 </VirtualHost>

MySQL - Migration

  • Der Umzug meines etwas älteren Wiki auf einen neuen Server war SEHR schwierig. Das Grundproblem sind die Umlaute und die zu langen Datenbank-Schlüssel. Ich konnte das Lösen, indem ich den Datenbank-Dump in einen Editor lade, und diverse Modifikationen per Hand durchführe. Danach einen Restore der Datenbank auf dem neuen System.
  • Tatsache ist, dass der alte DUMP eine ANSI-Datei ist. Es gibt zumindest kein BOM. Ich rede bei der Anlage aller Tabellen nur UTF8, jedoch den DUMP selbst bringe ich zunächst in reines ANSI. Erst ganz zum Schluss KONVERTIERE ich nach UTF8 (mit Notepad++). Ich sah zuvor in meinem DUMP ein ganz schlimmes Mix-Up von ANSI- und UTF8- Codes.
  • Um es also einspielen zu können muss alles schön UTF8 sein incl. BOM.


Ich habe versucht alle Schritte zu dokumentieren:

Zeichenersetzungen

SET NAMES latin1 -> SET NAMES utf8
CHARSET=latin1 -> CHARSET=utf8
character set latin1 collate irgendwas -> character set utf8 collate utf8_general_ci
ü -> ü
ä -> ä
Ãœ -> Ü
Ä -> Ä
ö -> ö
ß -> ß
Ö -> Ö
á -> á

Tabellen Keys kürzen

  • ich habe jeweils 255 durch 127 ersetzt!
DROP TABLE IF EXISTS `categorylinks`;
CREATE TABLE `categorylinks` (
 `cl_from` int(8) unsigned NOT NULL default '0',
 `cl_to` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default ,
 `cl_sortkey` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default ,
 `cl_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
 UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
 KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
 KEY `cl_sortkey` (`cl_to`,`cl_sortkey`,`cl_from`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE `imagelinks_old` (
 `il_from` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default ,
 `il_to` varchar(127) character set utf8 collate utf8_general_ci NOT NULL default ,
 KEY `il_from` (`il_from`(10)),
 KEY `il_to` (`il_to`,`il_from`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Zeilen löschen

INSERT INTO `image` VALUES ('Beleg.PNG',37264,,1,'Root','20080516080458',937,691,8,,'BITMAP','image','png','6a3tgc1cymxe6y33gprh5i7iqt5ejqj');
INSERT INTO `page` VALUES (2254,0,'AusgabeArt',,581,0,0,0.514803822297,'20070925132006',18953,23);
INSERT INTO `page` VALUES (2426,6,'Beleg.PNG',,22,0,1,0.173215221939,'20080516080552',20362,0);

... und viele mehr. Welche zu löschen sind sagt Dir die Fehlermeldung des Restore ...

Debian 10

wegen PHP 7.3 kann nur Mediawiki 1.37


21.12.2022: Beginn eines Umzuges auf einen neuen v-Server von Strato mit Debian 10

apt install nginx php-fpm php-mbstring php-xml php-mysql php-ctype php-dom php-fileinfo php-iconv php-intl php-json
apt install p7zip mariadb-server
#
# wegen syntaxhighligth
apt install python3 pip
pip install Pygments

Links