Server/MediaWiki: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
 
(21 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
Dieser Artikel ist ein exemplarischer Artikel.
Dieser Artikel ist ein exemplarischer Artikel.


Es handelt sich hierbei nicht um die Instanz [[MediWiki]] als Wiki vom StuRa.
Es handelt sich hierbei nicht um die Instanz [[MediaWiki]] als Wiki vom StuRa.
Dazu dienen die Artikel:
Dazu dienen die Artikel:
* [[Wiki]];
* [[Wiki]];
* [[Server/Jails/SRS13]].
* [[Server/srs13]].
}}
}}


Zeile 80: Zeile 80:


Installieren des Moduls zur Verwendung von PHP für Web-Dienste
Installieren des Moduls zur Verwendung von PHP für Web-Dienste
: <code>pkg install mod_php5</code>
: <code>pkg install mod_php56</code>
<!--
<!--
<pre>
<pre>
Zeile 171: Zeile 171:
Prüfen des erfolgreichen Auslieferns des Web-Dienstes  
Prüfen des erfolgreichen Auslieferns des Web-Dienstes  
: http://localhost
: http://localhost
* Beginn der restlichen Installation über das web user interface
* Beginn der restlichen Installation über das web user interface
Bei einer Prüfung der Funktionalitäten bei der restlichen Installation über das web user interface weist MediaWiki auf Dienste hin, die es gern nutzen möchte, jedoch bisher nicht installiert sind.
: Installieren der Versionsverwaltung git
:: <code>pkg install git</code>
: Installieren von einer Ergänzung zu Sprachen für PHP
:: <code>pkg install pecl-intl</code>
: Installieren von einer Ergänzung zur Verarbeitung von Bildern für PHP
:: <code>pkg install pecl-imagick</code>
: Installieren von einer Ergänzung zum Nutzen eines Cache für PHP
:: <code>pkg install pecl-APC</code>
Auch wird geprüft, wie der Web-Dienst ausgeliefert wird.
: Anpassung der administrativen Mail-Adresse für den Webserver Apache (2.4)
:: <code>$EDITOR /usr/local/etc/apache24/httpd.conf</code>
<pre>
#ServerAdmin you@example.com
ServerAdmin mediawiki@stura.htw-dresden.de
</pre>
: Eintragung des Namens des Servers, der die Domain, im Zweifelsfall (etwa mangels DNS) eine IP-Adresse, ist und den Port für den Webserver Apache (2.4) angibt
:: <code>$EDITOR /usr/local/etc/apache24/httpd.conf</code>
<pre>                                                                         
ServerName 141.56.50.13:80                                                 
</pre>
Der Sicherheit wegen, sollten Inhalte das Uploadverzeichnisses (normalerweise Bilder etc.) nicht ausführbar sein
: Dies kann per Apache-Konfig oder .htaccess-Datei im entspr. Verzeichnis erreicht werden. Hier ein Beispiel für die Apache-Konfig:
:: <code>$EDITOR /usr/local/etc/apache24/httpd.conf</code>
<pre>                                                                         
<Directory "/Library/MediaWiki/web/images">
  # Ignore .htaccess files
  AllowOverride None
 
  # Serve HTML as plaintext, don't execute SHTML
  AddType text/plain .html .htm .shtml .php .phtml .php5
 
  # Don't run arbitrary PHP code.
  php_admin_flag engine off
 
  # If you've other scripting languages, disable them too.
</Directory>
</pre>
erneutes Starten des Webservers Apache
: <code>/usr/local/sbin/apachectl restart</code>


Durchführung der restlichen Installation über das web user interface
Durchführung der restlichen Installation über das web user interface
<!--
http://localhost/mw-config/index.php?page=DBConnect
: Datenbankserver:
:: ''localhost''
: Bitte Daten zur eindeutigen Identifikation dieses Wikis angeben
:: Datenbankname:
::* Der ''Datenbankname'' kann selbst bestimmt werden bestimmt.
::: mediawiki
: Benutzerkonto für die Installation
:: Name des Datenbankbenutzers:
::: von mysqladmin
::: ''name-of-the-user-in-mysql''
:: Passwort des Datenbankbenutzers:
::: password-of-the-user-in-mysql
http://localhost/mw-config/index.php?page=DBSettings
: Dasselbe Datenbankkonto wie während des Installationsvorgangs verwenden
:: abgewählt
: Datenbankkonto für den Webzugriff
:: Name des Datenbankbenutzers:
::: ''name-of-the-user-for-mediawiki-in-mysql''
:: Passwort des Datenbankbenutzers:
::: ''password-of-the-user-for-mediawiki-in-mysql''
: Benutzerkonto für die Installation
:: angewählt
<pre>
Fatal error: Call to undefined function hash() in /usr/local/www/mediawiki/includes/password/Pbkdf2Password.php on line 59
</pre>
-->


Eintragen der nach dem Abschluss der restlichen Installation über das web user interface erstellten Datei LocalSettings.php
Eintragen der nach dem Abschluss der restlichen Installation über das web user interface erstellten Datei LocalSettings.php
: <code>ee /usr/local/www/mediawiki/LocalSettings.php</code>
: <code>$EDITOR /usr/local/www/mediawiki/LocalSettings.php</code>
 
: Datenbankeinrichtung (MySQL)
:: Aus Sicherheitsgründen scheint es mir sinnvoll, als Datenbanknutzer nicht root sondern einen extra User zu verwenden.
 
::Folgendes legt einen User samt gleichnamiger Datenbank ''mediawiki'' an und gewährt ihm sämtliche Rechte (auf diese eine Datenbank). Die Sternchen ("*") sind durch das Passwort zu ersetzten. In neueren Wikiversionen ist dies bereits im Assistenten berücksichtigt.
<pre>
mysql -u root -p
 
CREATE USER 'mediawiki'@'localhost' IDENTIFIED BY '***';
GRANT USAGE ON * . * TO 'mediawiki'@'localhost' IDENTIFIED BY '***' ;
CREATE DATABASE IF NOT EXISTS `mediawiki` ;
GRANT ALL PRIVILEGES ON `mediawiki` . * TO 'mediawiki'@'localhost';
</pre>


==== tatsächliche Installation Siehe auch ====
==== tatsächliche Installation Siehe auch ====
Zeile 183: Zeile 270:
=== ergänzende Installation ===
=== ergänzende Installation ===


==== VisualEditor ====
==== VisualEditor installieren ====


Installieren von npm (Paketverwaltung von node.js)
: <code>pkg install npm</code>
: <code>pkg install npm</code>
<!--
<!--
Zeile 247: Zeile 335:
-->
-->


Wechseln in ein beliebiges Verzeichnis, wo dann Parsoid installiert werden soll
: <code>cd /usr/local/www</code>
Klonen (via git) von Parsoid in das aktuelle Verzeichnis
: <code>git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid</code>
: <code>git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid</code>
Wechseln in das eben erstellte Verzeichnis, wo Parsoid installiert werden soll
: <code>cd parsoid</code>
mit npm verwaltetes Installieren von Parsoid
: <code>npm install</code>
Erzeugen einer vorgefertigten Datei zur Konfiguration von Parsoid
: <code>cp api/localsettings.js.example api/localsettings.js</code>
Anpassen der Datei zur Konfiguration von Parsoid
: <code>$EDITOR api/localsettings.js</code>
<pre>
/*                                                                           
        parsoidConfig.setInterwiki( 'localhost', 'http://localhost/w/api.php' );
*/                                                                           
        parsoidConfig.setInterwiki( 'localhost', 'http://141.56.50.13/api.php' );
</pre>
Testweises Starten von Parsoid
: <code>node api/server.js</code>
:: http://localhost:8000
:: http://localhost:8000/localhost/Hauptseite
Ergänzen der Einträge für Parsoid in die Datei zu Konfiguration von MediaWiki
: <code>$EDITOR /usr/local/www/mediawiki/LocalSettings.php</code>
<pre>
// URL to the Parsoid instance
// MUST NOT end in a slash due to Parsoid bug
$wgVisualEditorParsoidURL = 'http://141.56.50.13:8000';
// Interwiki prefix to pass to the Parsoid instance
// Parsoid will be called as $url/$prefix/$pagename
$wgVisualEditorParsoidPrefix = 'localhost';
</pre>
Heraussuchen der zur Version von MediaWiki passenden Version
: https://www.mediawiki.org/wiki/Special:ExtensionDistributor/VisualEditor
Herunterladen des Paketes
: <code>cd /tmp && curl -Ok# https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_24-af11aa1.tar.gz</code>
Entpacken des Paketes an die passende Stelle, im Unterverzeichnis ''extensions'', wo MediaWiki beheimatet ist
: <code>cd /tmp && tar -xzf VisualEditor-REL1_24-af11aa1.tar.gz -C /usr/local/www/mediawiki/extensions</code>
mit npm verwaltetes Installieren von VisualEditor in dem Verzeichnis der Extention
: <code>cd /usr/local/www/mediawiki/extensions/VisualEditor && npm install</code>
Ergänzen der Einträge für Parsoid in die Datei zu Konfiguration von MediaWiki
: <code>$EDITOR /usr/local/www/mediawiki/LocalSettings.php</code>
<pre>
require_once "$IP/extensions/VisualEditor/VisualEditor.php";
// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';
// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
</pre>
Wechseln in das Verzeichnis von Parsoid und dortiges Starten des Dienstes, der dann dort im Hintergrund laufen soll
: <code>cd /usr/local/www/parsoid && node api/server.js &</code>
: <code>$EDITOR /etc/rc.conf.local</code>
<pre>
#!/bin/sh
cd /usr/local/www/parsoid
su -m www -c 'node api/server.js'
</pre>
: chmod 755 /etc/rc.conf.local
==== Semantic MediaWiki installieren ====
* [https://www.semantic-mediawiki.org/wiki/Help:Installation SMW installieren]
** [https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx Installation *nix Composer]
== Siehe auch ==
* [[mediawikiwiki:Manual:Running MediaWiki on FreeBSD]]
* [[Server/srs13]]


[[Kategorie:Server]]
[[Kategorie:Server]]
[[Kategorie:Software]]
[[Kategorie:Wiki]]
[[Kategorie:Wiki]]

Aktuelle Version vom 15. Mai 2016, 11:15 Uhr

Achtung

Dieser Artikel ist ein exemplarischer Artikel.

Es handelt sich hierbei nicht um die Instanz MediaWiki als Wiki vom StuRa. Dazu dienen die Artikel:

Installation[Bearbeiten]

Randbedingungen[Bearbeiten]

OS
FreeBSD 10.1
Paketverwaltung
freebsd-man:pkgng (statt freebsd-man:make)

tatsächliche Installation[Bearbeiten]

Initialisieren von pkgng

pkg

Installieren von MediWiki

  • Leider muss eine bestimmte Version zur Installation angegeben werden.
    • Welche Versionen zur Installation zur Verfügung stehen, kann durch eine Suche nach verfügbaren Paketen zu mediawiki herausgefunden werden.
      pkg search mediawiki
pkg install mediawiki124

Installation eines Datenbankservers

  • MediaWiki unterstützt eine Vielzahl von Datenbanken (z. B. SQLite, PostgreSQL oder MariaDB). MySQL ist die übliche Vorauswahl, so auch bei FreeBSD.
pkg install mysql55-server

Starten von MySQL als Server für die Datenbank

/usr/local/etc/rc.d/mysql-server onestart

Obligatorisches Aktualisieren von MySQL zum Prüfen der Funktionsfähigkeit durch sich selbst

/usr/local/bin/mysql_upgrade

Eintragung in die Datei zur Konfiguration der Umgebung des System, dass MySQL nach einem mögliche Neustart laufen soll

echo 'mysql_enable="yes"' >> /etc/rc.conf

Installation eines Webservers

  • MediaWiki kann durch eine Vielzahl von Web-Diensten (z. B. nginx) ausgeliefert. Apache ist die übliche Vorauswahl, so auch bei FreeBSD.
pkg install apache24

Eintragung in die Datei zur Konfiguration der Umgebung des System, dass Apache (2.4) nach einem mögliche Neustart laufen soll

echo 'apache24_enable="yes"' >> /etc/rc.conf

Installieren des Moduls zur Verwendung von PHP für Web-Dienste

pkg install mod_php56
Eintragung des gewünschten Umgangs von Anwendungen mit Dateien der Endung php
echo '<FilesMatch "\.php$">' >> /usr/local/etc/apache24/httpd.conf
echo 'SetHandler application/x-httpd-php' >> /usr/local/etc/apache24/httpd.conf
echo '</FilesMatch>' >> /usr/local/etc/apache24/httpd.conf
echo '<FilesMatch "\.phps$">' >> /usr/local/etc/apache24/httpd.conf
echo 'SetHandler application/x-httpd-php-source' >> /usr/local/etc/apache24/httpd.conf
echo '</FilesMatch>' >> /usr/local/etc/apache24/httpd.conf
oder
$EDITOR /usr/local/etc/apache24/httpd.conf
<FilesMatch "\.php$">
	SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
	SetHandler application/x-httpd-php-source
</FilesMatch>

Erzeugen eines Accounts für die Datenbank MySQL und das Setzen des dazugehörigen Passwortes

/usr/local/bin/mysqladmin --user=name-of-the-user-in-mysql password "password-of-the-user-in-mysql"

Anpassen der Datei für die Konfiguration vom Webserver Apache (2.4)

  • Abschaltung des allgemeinen globalen Verbietes des Zugriffs
    $EDITOR /usr/local/etc/apache24/httpd.conf
#<Directory />                                                               
#	AllowOverride none                                                      
#	Require all denied
#</Directory>
  • Ändern des zentralen Verzeichnisses wo sich die Daten befinden, die als Webdienst ausgeliefert werden sollen
    $EDITOR /usr/local/etc/apache24/httpd.conf
#DocumentRoot "/usr/local/www/apache24/data"
DocumentRoot "/usr/local/www/mediawiki"
  • Ergänzen des Einbeziehens vom Verzeichnis wo MediaWiki beheimatet ist
    echo '<Directory "/usr/local/www/mediawiki">' >> /usr/local/etc/apache24/httpd.conf
    echo 'Options Indexes FollowSymLinks' >> /usr/local/etc/apache24/httpd.conf
    echo 'DirectoryIndex index.php index.html' >> /usr/local/etc/apache24/httpd.conf
    echo 'AllowOverride None' >> /usr/local/etc/apache24/httpd.conf
    echo 'Order allow,deny' >> /usr/local/etc/apache24/httpd.conf
    echo 'Allow from all' >> /usr/local/etc/apache24/httpd.conf
    echo '</Directory>' >> /usr/local/etc/apache24/httpd.conf
    oder
    $EDITOR /usr/local/etc/apache24/httpd.conf
<Directory "/usr/local/www/mediawiki">
	Options Indexes FollowSymLinks
	DirectoryIndex index.php index.html
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>

Starten des Webservers Apache

/usr/local/sbin/apachectl restart

Prüfen des erfolgreichen Auslieferns des Web-Dienstes

http://localhost
  • Beginn der restlichen Installation über das web user interface

Bei einer Prüfung der Funktionalitäten bei der restlichen Installation über das web user interface weist MediaWiki auf Dienste hin, die es gern nutzen möchte, jedoch bisher nicht installiert sind.

Installieren der Versionsverwaltung git
pkg install git
Installieren von einer Ergänzung zu Sprachen für PHP
pkg install pecl-intl
Installieren von einer Ergänzung zur Verarbeitung von Bildern für PHP
pkg install pecl-imagick
Installieren von einer Ergänzung zum Nutzen eines Cache für PHP
pkg install pecl-APC

Auch wird geprüft, wie der Web-Dienst ausgeliefert wird.

Anpassung der administrativen Mail-Adresse für den Webserver Apache (2.4)
$EDITOR /usr/local/etc/apache24/httpd.conf
#ServerAdmin you@example.com
ServerAdmin mediawiki@stura.htw-dresden.de
Eintragung des Namens des Servers, der die Domain, im Zweifelsfall (etwa mangels DNS) eine IP-Adresse, ist und den Port für den Webserver Apache (2.4) angibt
$EDITOR /usr/local/etc/apache24/httpd.conf
                                                                           
ServerName 141.56.50.13:80                                                   

Der Sicherheit wegen, sollten Inhalte das Uploadverzeichnisses (normalerweise Bilder etc.) nicht ausführbar sein

Dies kann per Apache-Konfig oder .htaccess-Datei im entspr. Verzeichnis erreicht werden. Hier ein Beispiel für die Apache-Konfig:
$EDITOR /usr/local/etc/apache24/httpd.conf
                                                                           
<Directory "/Library/MediaWiki/web/images">
   # Ignore .htaccess files
   AllowOverride None
   
   # Serve HTML as plaintext, don't execute SHTML
   AddType text/plain .html .htm .shtml .php .phtml .php5
   
   # Don't run arbitrary PHP code.
   php_admin_flag engine off
   
   # If you've other scripting languages, disable them too.
</Directory>

erneutes Starten des Webservers Apache

/usr/local/sbin/apachectl restart

Durchführung der restlichen Installation über das web user interface

Eintragen der nach dem Abschluss der restlichen Installation über das web user interface erstellten Datei LocalSettings.php

$EDITOR /usr/local/www/mediawiki/LocalSettings.php
Datenbankeinrichtung (MySQL)
Aus Sicherheitsgründen scheint es mir sinnvoll, als Datenbanknutzer nicht root sondern einen extra User zu verwenden.
Folgendes legt einen User samt gleichnamiger Datenbank mediawiki an und gewährt ihm sämtliche Rechte (auf diese eine Datenbank). Die Sternchen ("*") sind durch das Passwort zu ersetzten. In neueren Wikiversionen ist dies bereits im Assistenten berücksichtigt.
mysql -u root -p

CREATE USER 'mediawiki'@'localhost' IDENTIFIED BY '***';
GRANT USAGE ON * . * TO 'mediawiki'@'localhost' IDENTIFIED BY '***' ;
CREATE DATABASE IF NOT EXISTS `mediawiki` ;
GRANT ALL PRIVILEGES ON `mediawiki` . * TO 'mediawiki'@'localhost';

tatsächliche Installation Siehe auch[Bearbeiten]

ergänzende Installation[Bearbeiten]

VisualEditor installieren[Bearbeiten]

Installieren von npm (Paketverwaltung von node.js)

pkg install npm
pkg install git

Wechseln in ein beliebiges Verzeichnis, wo dann Parsoid installiert werden soll

cd /usr/local/www

Klonen (via git) von Parsoid in das aktuelle Verzeichnis

git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid

Wechseln in das eben erstellte Verzeichnis, wo Parsoid installiert werden soll

cd parsoid

mit npm verwaltetes Installieren von Parsoid

npm install

Erzeugen einer vorgefertigten Datei zur Konfiguration von Parsoid

cp api/localsettings.js.example api/localsettings.js

Anpassen der Datei zur Konfiguration von Parsoid

$EDITOR api/localsettings.js
/*                                                                            
        parsoidConfig.setInterwiki( 'localhost', 'http://localhost/w/api.php' );
*/                                                                            
        parsoidConfig.setInterwiki( 'localhost', 'http://141.56.50.13/api.php' );

Testweises Starten von Parsoid

node api/server.js
http://localhost:8000
http://localhost:8000/localhost/Hauptseite

Ergänzen der Einträge für Parsoid in die Datei zu Konfiguration von MediaWiki

$EDITOR /usr/local/www/mediawiki/LocalSettings.php
// URL to the Parsoid instance
// MUST NOT end in a slash due to Parsoid bug
$wgVisualEditorParsoidURL = 'http://141.56.50.13:8000';

// Interwiki prefix to pass to the Parsoid instance
// Parsoid will be called as $url/$prefix/$pagename
$wgVisualEditorParsoidPrefix = 'localhost';

Heraussuchen der zur Version von MediaWiki passenden Version

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/VisualEditor

Herunterladen des Paketes

cd /tmp && curl -Ok# https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_24-af11aa1.tar.gz

Entpacken des Paketes an die passende Stelle, im Unterverzeichnis extensions, wo MediaWiki beheimatet ist

cd /tmp && tar -xzf VisualEditor-REL1_24-af11aa1.tar.gz -C /usr/local/www/mediawiki/extensions

mit npm verwaltetes Installieren von VisualEditor in dem Verzeichnis der Extention

cd /usr/local/www/mediawiki/extensions/VisualEditor && npm install

Ergänzen der Einträge für Parsoid in die Datei zu Konfiguration von MediaWiki

$EDITOR /usr/local/www/mediawiki/LocalSettings.php
require_once "$IP/extensions/VisualEditor/VisualEditor.php";

// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;

// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';

// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;

Wechseln in das Verzeichnis von Parsoid und dortiges Starten des Dienstes, der dann dort im Hintergrund laufen soll

cd /usr/local/www/parsoid && node api/server.js &
$EDITOR /etc/rc.conf.local
#!/bin/sh
cd /usr/local/www/parsoid
su -m www -c 'node api/server.js'
chmod 755 /etc/rc.conf.local

Semantic MediaWiki installieren[Bearbeiten]

Siehe auch[Bearbeiten]