Difference between revisions of "IDempiere Wiki Server"
(make upload directory writable) |
CarlosRuiz (talk | contribs) |
||
| (8 intermediate revisions by one other user not shown) | |||
| Line 15: | Line 15: | ||
== Apache-Alias einrichten == | == Apache-Alias einrichten == | ||
| − | Als erstes muss dem Apache Webserver mitgeteilt werden, das er eine entsprechende URL auf das neu anzulegende Wiki weiterleitet. Dazu geht man als root-Benutzer in die Datei ''/etc/apache2/sites | + | Als erstes muss dem Apache Webserver mitgeteilt werden, das er eine entsprechende URL auf das neu anzulegende Wiki weiterleitet. Dazu geht man als root-Benutzer in die Datei ''/etc/apache2/sites-available/wiki_idempiere_org'' und erzeugt dort im oberen Teil eine neue Alias-Zeile entsprechend den bereits vorhandenen: |
... | ... | ||
| Line 37: | Line 37: | ||
mkdir images | mkdir images | ||
chmod a+rw images | chmod a+rw images | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | Dadurch hat man eine Symlink-Kopie des eigentlichen Installations-Verzeichnisses, so das alle Wikis immer garantiert auf demselben Quellcode aufsetzen. Die individuelle Konfiguration des Wikis steht in der "LocalSettings.php" (die erst im nächsten Schritt über die Web-Installation erzeugt wird) und das Upload-Verzeichnis (das ich unter den Wikis getrennt halte) ist auch individuell (und vom Apache-Benutzer "www-data" beschreibbar). | ||
== Wiki-Datenbank einrichten == | == Wiki-Datenbank einrichten == | ||
| Line 57: | Line 53: | ||
* Der Name des Wikis ist "iDempiere de" | * Der Name des Wikis ist "iDempiere de" | ||
* Das Administratorkonto ist vollkommen egal, da wir später sowieso die Benutzertabellen wieder löschen (Das Passwort darf aber nicht gleicht dem Benutzernamen sein) | * Das Administratorkonto ist vollkommen egal, da wir später sowieso die Benutzertabellen wieder löschen (Das Passwort darf aber nicht gleicht dem Benutzernamen sein) | ||
| + | * Profil der Benutzerberechtigungen sollte "Erstellung eines Benutzerkontos nötig" sein. | ||
| + | * Lizenz ist "Creative Commons mit Namensnennung, Weitergabe unter glecihen Bedingungen" | ||
| + | * Bei EMails alles erlauben und die Mailadresse des Administrators angeben | ||
| + | * keine Erweiterungen anklicken (geschieht später von Hand) | ||
| + | * Das Hochladen von Dateien ermöglichen | ||
Nachdem man die Installation so abgeschlossen hat, erhält man eine LocalSettings.php-Datei. Diese Datei muss in das Verzeichnis "~/wiki/w-de/" auf dem Server kopiert werden. Dort müssen jedoch noch einige Änderungen hinzugefügt werden. | Nachdem man die Installation so abgeschlossen hat, erhält man eine LocalSettings.php-Datei. Diese Datei muss in das Verzeichnis "~/wiki/w-de/" auf dem Server kopiert werden. Dort müssen jedoch noch einige Änderungen hinzugefügt werden. | ||
| − | scp Downloads/LocalSettings.php [email protected]:wiki/w-de | + | scp Downloads/LocalSettings.php [email protected]:wiki/w-de/ |
| − | |||
| − | |||
| − | + | == Anpassungen in LocalSettings.php == | |
| − | und ganz am Ende der Datei angefügt: | + | Folgende Änderungen habe ich dann an dieser Datei vorgenommen und ganz am Ende der Datei angefügt: |
$wgGroupPermissions['*']['edit'] = false; | $wgGroupPermissions['*']['edit'] = false; | ||
| Line 76: | Line 75: | ||
$wgLogo = "$wgServer/iDempiereLogo150x150.png"; | $wgLogo = "$wgServer/iDempiereLogo150x150.png"; | ||
$wgFavicon = "$wgServer/favicon.ico"; | $wgFavicon = "$wgServer/favicon.ico"; | ||
| + | $wgEnableScaryTranscluding = true; | ||
| + | |||
| + | (in der dritten Zeile den Ländercode anpassen) | ||
Hierdurch wird unter anderem aktiviert, das einige Datenbank-Tabellen "geshared" werden. Damit das auch funktioniert, müssen alle Datenbank-Contraints, die sich auf die ursprünglichen (ungeshareten) Tabellen beziehen, löschen. Die einfachste Lösung, das zu bewerkstelligen, ist, indem man die entsprechenden Tabellen löscht und dabei "kaskadierendes Löschen" wählt. Das macht man im neuen Schema "de" mit den Tabellen "mwuser" und "user_properties". | Hierdurch wird unter anderem aktiviert, das einige Datenbank-Tabellen "geshared" werden. Damit das auch funktioniert, müssen alle Datenbank-Contraints, die sich auf die ursprünglichen (ungeshareten) Tabellen beziehen, löschen. Die einfachste Lösung, das zu bewerkstelligen, ist, indem man die entsprechenden Tabellen löscht und dabei "kaskadierendes Löschen" wählt. Das macht man im neuen Schema "de" mit den Tabellen "mwuser" und "user_properties". | ||
| + | |||
== Interwikimap aktualisieren == | == Interwikimap aktualisieren == | ||
| Line 84: | Line 87: | ||
<pre><nowiki> | <pre><nowiki> | ||
| − | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('adempiere', 'http://wiki.adempiere.com/$1',1, | + | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('adempiere', 'http://wiki.adempiere.com/$1',1,1,'',''); |
| − | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('idempiere', 'http://wiki.idempiere.org/wiki/$1',1, | + | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('idempiere', 'http://wiki.idempiere.org/wiki/$1',1,1,'',''); |
| − | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('lugkr', 'http://www.lug-kr.de/wiki/$1',1, | + | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('lugkr', 'http://www.lug-kr.de/wiki/$1',1,1,'',''); |
| − | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('de', 'http://wiki.idempiere.org/de/$1',1, | + | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('de', 'http://wiki.idempiere.org/de/$1',1,1,'',''); |
| − | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('en', 'http://wiki.idempiere.org/en/$1',1, | + | insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('en', 'http://wiki.idempiere.org/en/$1',1,1,'',''); |
... | ... | ||
| − | insert into de.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('fr', 'http://wiki.idempiere.org/fr/$1',1, | + | insert into de.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('fr', 'http://wiki.idempiere.org/fr/$1',1,1,'',''); |
| − | insert into en.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('fr', 'http://wiki.idempiere.org/fr/$1',1, | + | insert into en.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('fr', 'http://wiki.idempiere.org/fr/$1',1,1,'',''); |
... | ... | ||
</nowiki></pre> | </nowiki></pre> | ||
| + | |||
| + | |||
| + | == Administratoren setzen == | ||
| + | |||
| + | Die Tabelle der Administratoren wird für jedes Wiki getrennt verwaltet. So kann man spezielle Administratoren für einzelne Sprachen einrichten. Die Admins setzt man dann mit einem Befehl wie diesem (hier werden die drei Personen als Admin gesetzt, die bisher das Wiki verwalten): | ||
| + | |||
| + | <pre> | ||
| + | INSERT INTO de.user_groups (ug_user, ug_group) VALUES | ||
| + | (2, 'sysop'),(2, 'bureaucrat'), | ||
| + | (4, 'sysop'),(4, 'bureaucrat'), | ||
| + | (25, 'sysop'),(25, 'bureaucrat'); | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | == Wiki maintenance == | ||
| + | |||
| + | Wie Thomas Thiessen bemerkte, erscheinen auf der Seite http://wiki.idempiere.org/w-de/index.php?title=Kategorie:Seiten_mit_defekten_Dateilinks viel zu viele Einträge mit schlecht verlinkten Seiten. Offensichtlich können einige Indexe der Mediawiki-Datenbank schonmal aus der Reihe fallen. Um das zu beheben, kann man ab und an folgenden Befehl auf dem Server aufrufen: | ||
| + | |||
| + | idempiere@cloud1:~/wiki/w-de$ php maintenance/rebuildall.php --conf LocalSettings.php | ||
| + | |||
| + | (ähnliches gilt natürlich für andere Sprachen) | ||
Latest revision as of 20:10, 19 November 2016
Here are some notes how I set up the iDempiere Wiki server farm.
Sorry - my notes were in german. But since I am the only root administrator there was no need to translate. Use Google translate if you are curious. :-)
Backup des Wikiservers
Ein tägliches Backup des Wikiservers wird auf dem Cloudserver nach /root/backup/postgres/ (bzw. /home/idempiere/databasebackup/) gespeichert. Von dort sollte es in regelmäßigen Abständen weiterkopiert und damit gespeichert werden.
Wer das Wiki komplett speichern will, sollte noch zusätzlich die Upload-Verzeichnisse unter /home/idempiere/wiki/w*/images/ sichern.
Einrichten neuer Sprachen
Apache-Alias einrichten
Als erstes muss dem Apache Webserver mitgeteilt werden, das er eine entsprechende URL auf das neu anzulegende Wiki weiterleitet. Dazu geht man als root-Benutzer in die Datei /etc/apache2/sites-available/wiki_idempiere_org und erzeugt dort im oberen Teil eine neue Alias-Zeile entsprechend den bereits vorhandenen:
... Alias /de /home/idempiere/wiki/w-de/index.php
Mit
/etc/init.d/apache2 restart
startet man dann den Webserver neu, damit er die geänderte Datei auch benutzt.
Wiki-Installation (in PHP) kopieren
Als Benutzer "idempiere" macht man nun folgendes:
cd wiki mkdir w-de (z.B. für deutsch) cd w-de ls ../../mediawiki | perl -pe 's/^(.*)$/ln -s ..\/..\/mediawiki\/$1 \./' | bash rm images mkdir images chmod a+rw images
Dadurch hat man eine Symlink-Kopie des eigentlichen Installations-Verzeichnisses, so das alle Wikis immer garantiert auf demselben Quellcode aufsetzen. Die individuelle Konfiguration des Wikis steht in der "LocalSettings.php" (die erst im nächsten Schritt über die Web-Installation erzeugt wird) und das Upload-Verzeichnis (das ich unter den Wikis getrennt halte) ist auch individuell (und vom Apache-Benutzer "www-data" beschreibbar).
Wiki-Datenbank einrichten
Um das Wiki einzurichten, startet man es nun mit der URL wiki.idempiere.org/w-de/ Man erhält eine Startseite mit Blümchen, die einen auffordert, die Installation zu starten. Im folgenden INstallationsassistenten gibt man nun sinnvolle Werte ein:
- Die "Sprache" ist die Installationssprache und sollte sinnvollerweise deutsch (oder englisch) sein.
- Die "Wiki-Sprache" ist die Zielsprache unseres Wikis (also z.B. klingonisch für das "kl"-Wiki)
- Der Datenbank-Typ ist PostgreSQL
- Die Datenbank ist "idempiere"
- Der Datenbank-Benutzer ist "idempiere"
- Das Datenbank-Passwort ist geheim ;-)
- Das Schema ist "de" für das deutsche Wiki und "kl" für das klingonische etc.
- Der Name des Wikis ist "iDempiere de"
- Das Administratorkonto ist vollkommen egal, da wir später sowieso die Benutzertabellen wieder löschen (Das Passwort darf aber nicht gleicht dem Benutzernamen sein)
- Profil der Benutzerberechtigungen sollte "Erstellung eines Benutzerkontos nötig" sein.
- Lizenz ist "Creative Commons mit Namensnennung, Weitergabe unter glecihen Bedingungen"
- Bei EMails alles erlauben und die Mailadresse des Administrators angeben
- keine Erweiterungen anklicken (geschieht später von Hand)
- Das Hochladen von Dateien ermöglichen
Nachdem man die Installation so abgeschlossen hat, erhält man eine LocalSettings.php-Datei. Diese Datei muss in das Verzeichnis "~/wiki/w-de/" auf dem Server kopiert werden. Dort müssen jedoch noch einige Änderungen hinzugefügt werden.
scp Downloads/LocalSettings.php [email protected]:wiki/w-de/
Anpassungen in LocalSettings.php
Folgende Änderungen habe ich dann an dieser Datei vorgenommen und ganz am Ende der Datei angefügt:
$wgGroupPermissions['*']['edit'] = false; require_once( "$IP/extensions/googleAnalytics/googleAnalytics.php" ); $wgArticlePath = "/de/$1"; $wgSharedDB = "shared"; $wgSharedTables[] = array( 'user', 'user_properties', 'interwiki' ); $wgShowExceptionDetails = true; $wgLogo = "$wgServer/iDempiereLogo150x150.png"; $wgFavicon = "$wgServer/favicon.ico"; $wgEnableScaryTranscluding = true;
(in der dritten Zeile den Ländercode anpassen)
Hierdurch wird unter anderem aktiviert, das einige Datenbank-Tabellen "geshared" werden. Damit das auch funktioniert, müssen alle Datenbank-Contraints, die sich auf die ursprünglichen (ungeshareten) Tabellen beziehen, löschen. Die einfachste Lösung, das zu bewerkstelligen, ist, indem man die entsprechenden Tabellen löscht und dabei "kaskadierendes Löschen" wählt. Das macht man im neuen Schema "de" mit den Tabellen "mwuser" und "user_properties".
Interwikimap aktualisieren
Man muss einen Interwikilink einrichten, um von einer Sprache in die andere verlinken zu können (http://www.mediawiki.org/wiki/Manual:Guide_to_setting_up_interwiki_linking#Language_links). Leider habe ich es bisher nicht geschafft, die Interwiki-Tabelle zu teilen, weshalb alle Interwiki-Links überall eingetragen werden müssen.
insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('adempiere', 'http://wiki.adempiere.com/$1',1,1,'','');
insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('idempiere', 'http://wiki.idempiere.org/wiki/$1',1,1,'','');
insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('lugkr', 'http://www.lug-kr.de/wiki/$1',1,1,'','');
insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('de', 'http://wiki.idempiere.org/de/$1',1,1,'','');
insert into fr.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('en', 'http://wiki.idempiere.org/en/$1',1,1,'','');
...
insert into de.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('fr', 'http://wiki.idempiere.org/fr/$1',1,1,'','');
insert into en.interwiki (iw_prefix, iw_url, iw_local, iw_trans, iw_api, iw_wikiid) VALUES('fr', 'http://wiki.idempiere.org/fr/$1',1,1,'','');
...
Administratoren setzen
Die Tabelle der Administratoren wird für jedes Wiki getrennt verwaltet. So kann man spezielle Administratoren für einzelne Sprachen einrichten. Die Admins setzt man dann mit einem Befehl wie diesem (hier werden die drei Personen als Admin gesetzt, die bisher das Wiki verwalten):
INSERT INTO de.user_groups (ug_user, ug_group) VALUES (2, 'sysop'),(2, 'bureaucrat'), (4, 'sysop'),(4, 'bureaucrat'), (25, 'sysop'),(25, 'bureaucrat');
Wiki maintenance
Wie Thomas Thiessen bemerkte, erscheinen auf der Seite http://wiki.idempiere.org/w-de/index.php?title=Kategorie:Seiten_mit_defekten_Dateilinks viel zu viele Einträge mit schlecht verlinkten Seiten. Offensichtlich können einige Indexe der Mediawiki-Datenbank schonmal aus der Reihe fallen. Um das zu beheben, kann man ab und an folgenden Befehl auf dem Server aufrufen:
idempiere@cloud1:~/wiki/w-de$ php maintenance/rebuildall.php --conf LocalSettings.php
(ähnliches gilt natürlich für andere Sprachen)
