MediaWiki
Install
Version 1.5 was not yet on amd64 feeds but v1.4.x reclaimed php4 so I took mediawiki v1.5 from the i386 feeds as anyway mediawiki is all arch.
- Raise the PHP memory limit: create /var/lib/mediawiki1.5/.htaccess with%%%php_value memory_limit 32M
Preventing access to pages
- cf http://meta.wikimedia.org/wiki/Preventing_Access#Setting_permissions_for_a_Group_on_a_whole_new_Namespace
- and http://meta.wikimedia.org/wiki/Help:Custom_namespaces
- But there are security problems: http://meta.wikimedia.org/wiki/Talk:Preventing_Access#Security_Problem_using_Namespace_to_limit_access
Better solution seems to use this patch:
Or as refered on http://meta.wikimedia.org/wiki/Hidden_pages this one:
Disable anonymous reading
Easy to get:
Customisation
Logo
- I created a symlink from /var/lib/mediawiki1.5/local to /etc/mediawiki1.5/localdata
- In LocalSettings.php: $wgLogo = "$wgScriptPath/local/mylogo.png";
Import/Export
HTML-WikiConverter
apt-get install libhtml-wikiconverter-perl
Dialogs are not yet packaged, cf bugreports 419918 and 448912, so for now:
perl -MCPAN -e 'install HTML::WikiConverter::MediaWiki'
Here is the script I used to import my phpwiki pages:
#!/bin//bash for i in lists/*; do mkdir -p $(basename $i) cd $(basename $i) for p in $(cat ../$i); do echo $p if [ ! -e "$p.html" ]; then wget -q -O - "http://wiki.teuwen.org/$p" > "$p.html" fi cat > "$p.txt" <<EOF ''Converted with [[MediaWiki#HTML-WikiConverter|HTML::WikiConverter::MediaWiki]] from my old phpwiki site'' ---- EOF cat "$p.html"|\ awk ' /class=.wikitext/ {b=1}; /Begin browse-footer/ {b=0}; b==1' \ | sed 's/<div class="wikitext">//g' \ | sed 's/<span style="white-space: nowrap">//g' \ | sed 's/<span class="wikipage">//g' \ | sed 's/<img src="\/phpwikidata\/themes\/[a-zA-Z0-9]\+\/images\/[a-zA-Z0-9]\+.png" alt="" class="linkicon" border="0" \/>//g' \ | sed 's/\x92/\x27/g' \ |html2wiki --encoding iso-8859-1 --dialect MediaWiki >> "$p.txt" # >> "$p.txt" done cd .. done
Upgrade to 1.11
A big jump from 1.5...
Now the package is simply called mediawiki instead of mediawiki1.x
Strangely apt-get wanted to install mysql-server even if the package just recommends it.
So I downloaded the package and used dpkg -i
OpenID support
I installed the following extension:
I installed the extension into /etc/mediawiki/extensions and made a symlink from /var/lib/mediawiki/extensions
I created the extra SQL table:
mysql -uroot -p mediawiki < openid_table.sql
But I had first to edit openid_table.sql to add my table prefix (cf $wgDBprefix)
I installed php-openid:
apt-get install php-openid
Some modifications in /etc/mediawiki/LocalSettings.php:
# Adding /usr/share/php in the include_path to find the Debian php-openid package: ini_set( "include_path", ".:$IP:$IP/includes:$IP/languages".":/usr/share/php" ); require_once("$IP/extensions/OpenID/OpenID.php"); $wgTrustRoot = "http://wiki.yobi.be/"; $wgOpenIDLoginLogoUrl = "local/login-bg.gif";
(the logo was downloaded from http://www.openid.net/login-bg.gif)
I had to patch the extension as apparently the API of php-OpenID changed since
--- Consumer.php.orig 2008-03-09 00:00:09.000000000 +0100 +++ Consumer.php 2008-03-09 00:00:33.000000000 +0100 @@ -144,7 +144,7 @@ default: # No parameter, returning from a server - $response = $consumer->complete($_GET); + $response = $consumer->complete($_GET['openid_return_to']); if (!isset($response)) { $wgOut->errorpage('openiderror', 'openiderrortext'); @@ -162,7 +162,7 @@ case Auth_OpenID_SUCCESS: // This means the authentication succeeded. $openid = $response->identity_url; - $sreg = $response->extensionResponse('sreg'); + $sreg = $response->extensionResponse('sreg', true); if (!isset($openid)) { $wgOut->errorpage('openiderror', 'openiderrortext'); @@ -558,7 +558,7 @@ } function OpenIDToUserName($openid) { - if (Services_Yadis_identifierScheme($openid) == 'XRI') { + if (Auth_Yadis_identifierScheme($openid) == 'XRI') { wfDebug("OpenID: Handling an XRI: $openid\n"); return OpenIDToUserNameXri($openid); } else { --- OpenID.php.orig 2008-03-08 22:41:02.000000000 +0100 +++ OpenID.php 2008-03-09 00:09:13.000000000 +0100 @@ -226,7 +226,7 @@ function OpenIDToUrl($openid) { /* ID is either an URL already or an i-name */ - if (Services_Yadis_identifierScheme($openid) == 'XRI') { + if (Auth_Yadis_identifierScheme($openid) == 'XRI') { return OpenIDXriToUrl($openid); } else { return $openid;
Normally the extension makes your personal page an OpenID server as well but I didn't try
Now you can login via Special:OpenIDLogin or associate your OpenID URL to your existing account via Special:OpenIDConvert
BTW initially I didn't know about Special:OpenIDConvert and I manipulated directly the SQL table ${wgDBprefix}user_openid
References
Useful pages:
- http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki
- http://www.mediawiki.org/wiki/Manual:AdminSettings.php
- http://www.mediawiki.org/wiki/Manual:Upgrading_to_1.11
- http://www.mediawiki.org/wiki/Manual:Short_URL/wiki/Page_title_--_with_aliases--root_access
- http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
- http://www.mediawiki.org/wiki/Manual:%24wgLanguageCode
- http://www.mediawiki.org/wiki/Manual:%24wgUseAjax