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