MediaWiki: Difference between revisions

From WickyWiki
mNo edit summary
Line 39: Line 39:


== Configuration LocalSettings.php ==
== Configuration LocalSettings.php ==
Note: this is not a complete file, it merely shows some tweaks. Generate a new LocalSettings.php during installation and start with that one.


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 51: Line 53:
$wgUseImageMagick = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgImageMagickConvertCommand = "/usr/bin/convert";
# Database, use IP in stead of "localhost"
$wgDBserver = "127.0.0.1"


# Skin
# Skin
Line 59: Line 64:
require_once("$IP/extensions/WikiEditor/WikiEditor.php");
require_once("$IP/extensions/WikiEditor/WikiEditor.php");
$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgDefaultUserOptions['usebetatoolbar'] = 1;
# Displays the Preview and Changes tabs
# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1;
$wgDefaultUserOptions['wikieditor-preview'] = 1;
# Displays the Publish and Cancel buttons on the top right side
# Displays the Publish and Cancel buttons on the top right side
$wgDefaultUserOptions['wikieditor-publish'] = 1;
$wgDefaultUserOptions['wikieditor-publish'] = 1;

Revision as of 14:19, 22 December 2017


Installation and configuration

MySQL database server and PHP Ubuntu

For more info: MySQL

sudo apt-get install apache2 mysql-server php5 php5-mysql

Create wiki database:

sudo mysql -u root mysql -p

SQL:

create database wikidb;
grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikidbadmin'@'localhost' identified by '**pwd**';
\q

Make sure the settings for your database in LocalSettings.php are correct, then go to the configuration web page, here you can create or upgrade the database:

MediaWiki website files

Download the code and copy to /var/www/mediawiki

Edit LocalSettings.php to add extensions and to customize.

Configuration LocalSettings.php

Note: this is not a complete file, it merely shows some tweaks. Generate a new LocalSettings.php during installation and start with that one.

sudo gedit /var/www/mediawiki/LocalSettings.php

# Image uploads, make sure the 'images' directory is writable
$wgEnableUploads  = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

# Database, use IP in stead of "localhost"
$wgDBserver = "127.0.0.1"

# Skin
$wgDefaultSkin = "vector";
$wgFavicon = "$wgScriptPath/images/favicon.ico";

# Extensions/WikiEditor
require_once("$IP/extensions/WikiEditor/WikiEditor.php");
$wgDefaultUserOptions['usebetatoolbar'] = 1;

# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1;

# Displays the Publish and Cancel buttons on the top right side
$wgDefaultUserOptions['wikieditor-publish'] = 1;

# Reading by anonymous users
$wgGroupPermissions['*']['read'] = true;

# Always allow reading access to the login page
$wgWhitelistRead = array ("Special:Userlogin", "MediaWiki:Common.css", "MediaWiki:Common.js"
	, "MediaWiki:Monobook.css", "MediaWiki:Monobook.js", "-");

# Anonymous editing
$wgGroupPermissions['*']['edit'] = false;

# Prevent new user registrations except by sysops (false)
$wgGroupPermissions['*']['createaccount'] = false;

require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
$wgSyntaxHighlightDefaultLang = "bash";

#Debugging
$wgShowExceptionDetails = true;
#error_reporting( -1 );
#ini_set( 'display_errors', 1 );
#$wgDebugLogFile = "/tmp/mediawiki_debug.log";

System permissions for uploads

sudo chown -R www-data:www-data /var/www/mediawiki/images/
sudo chmod -R 755 /var/www/mediawiki/images/

Change user password using commandline

Set the password for username 'user1' to '**pwd**'.

cd /var/www/mediawiki
php maintenance/changePassword.php --user=user1 --password=**pwd**

Apache2 webserver configuration

If you login using http your password will be send over the net in 'clear text'. To force login via https the RewriteRule is added, however, you will also need to configure the SSL part of your website. Read Create certificates for Apache2. See also Apache2 configuration for SOGo and MediaWiki.

PHP configuration

With wikimedia, when you import or export all pages or when you upload images and files, this will take more space and time that normally is allowed by PHP. Change these settings:


sudo gedit `locate php.ini | head -n 1`
	...
	upload_max_filesize = 5M
	...
	post_max_size = 5M
	...
	max_execution_time = 180 ; 3min
	...
	max_input_time = 180 ; 3min

Restart Apache2 to apply the settings:

sudo service apache2 restart

Backup

The most important part to backup is the database, see MySQL#Backup for more information.

The second part is the files that where uploaded, these are typically located in:

/var/www/mediawiki/images/

We could backup this folder but then you will also have thumbnails and other temporary files. Instead we will use the following command to list the mediafiles we want to backup:

cd /var/www/mediawiki/
php maintenance/dumpUploads.php | sed 's~images/~./images/~' | zip ~/Mediafiles.zip -@

To add these to a zip file for example:

cd /var/www/mediawiki/
php maintenance/dumpUploads.php | sed 's~images/~./images/~' | zip ~/MediaWikiImages.zip -@

Categories

Use categories to group your pages by including one or more Category tags:

 [[Category:Name]]

Try to distribute your pages evenly over categories, first look here if any of the available categories can be used:

Special:Categories

Tips

Keywords

You can make the search tool more efficient if you add synonyms and keywords to a page. You might want to keep these hidden from the reader to keep the text readable . Insert like this:

<!-- hidden text -->

Hotkeys

The tooltips will show you the letter of the shortcut between brackets. You need to press SHIFT+ALT+<letter> to use it.

Shortcuts:

  • SHIFT+ALT+Z main page
  • SHIFT+ALT+E start edit (if allowed)
    • you can also right click on the section or click the [edit] link
  • SHIFT+ALT+P preview
  • SHIFT+ALT+S save
  • SHIFT+ALT+C cancel

Special Import / Export pages

Import (as Admin)

Special:Import

Export pages

Special:Export

Export full contents

Uploaded files (like images) are not included an need to be copied and linked separately.

cd /var/www/mediawiki/
sudo php maintenance/dumpBackup.php --full --uploads > ../wiki_dump.xml

VisualEditor

VisualEditor is a WYSIWYG editor that generates readable Wiki text. Due to limitations I prefer to use WikiEdit.

Limitations:

  • Can not edit syntax parts and many other type of blocks, for this you still need to edit the wiki text.
  • Depends on Parsoid which runs as an independed server and is a pain to configure

Info:

At the time I needed to checkout beta version 'MediaWiki 1.22wmf8':

git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git
cd core
git branch -r | sort -V
git checkout origin/wmf/1.22wmf9
cd extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Parsoid.git
node.js

Download 'node-v0.8.22.tar.gz' (the core files) and 'node-v0.8.22-linux-x64.tar.gz' (the 64 bit specific files) from http://nodejs.org/dist/v0.8.22/ extract these in this order in one folder.

It needed to be exactly this version, newer and older did not work yet.

Go into the folder and build and install this version of node:

./configure --prefix=/opt/nodejs
make -j 3
make install

Install Parsoid using npm. Note: you can uninstall by deleting /opt/nodejs:

sudo -i
cd Parsoid/js
export PATH=$PATH:/opt/nodejs/bin
npm install

Start server:

export PATH=$PATH:/opt/nodejs/bin
cd /var/www/mediawiki/extensions/Parsoid/js
node api/server.js

Go to:

If you want to modify this service you can edit this file:

sudo gedit /var/www/mediawiki/extensions/Parsoid/js/api/ParserService.js

See also

Go to Apache2 webserver to read about installing and configuring Apache2 webserver.

Accidentally committed information that really needs to be removed? Go to: Permanently remove a MediaWiki revision using SQL.

MediaWiki.org help pages

Other sources