Configuration Miki's Kiwi Wiki on Noekeon.org: Difference between revisions

From miki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 14: Line 14:
** Support for [[Template:Hidden]]
** Support for [[Template:Hidden]]
** Support for [[Template:Hide]], [[Template:Hide all]],[[Template:Show all]], [[Template:Hide show all]], [[Template:Toggle]].
** Support for [[Template:Hide]], [[Template:Hide all]],[[Template:Show all]], [[Template:Hide show all]], [[Template:Toggle]].
* Updated [[MediaWiki:Geshi.css]]
** Default style for <code>&lt;div></code> and <code>&lt;pre></code> in GeSHi.
* Define user custom CSS for vector (see user preference):
<source lang=css>
/* Override the default font-size: 0.8em in default Vector CSS */
#bodyContent {
font-size: 1.0em;
}
/* Set the overall font size for body, overriding browser settings */
body {
font-size: 11pt;
}
</source>
* Added a few templates:
* Added a few templates:
** [[Template:Pl2]]
** [[Template:Pl2]]
Line 181: Line 195:


== Upgrade ==
== Upgrade ==
* Version '''mediawiki 1.15.1'''
=== Version 1.15.1 ===
* Update procedure explained in <tt>UPGRADE</tt>:
* Update procedure explained in <tt>UPGRADE</tt>:
<source lang="bash">
<source lang="bash">
Line 200: Line 214:
</source>
</source>


=== Version 1.22.1 ===

* Version '''mediawiki 1.22.1'''
* Not really an upgrade, but reinstall. Upgrade caused issue with the new short-URL, and our ''LocalSettings.php'' was too old.
* Not really an upgrade, but reinstall. Upgrade caused issue with the new short-URL, and our ''LocalSettings.php'' was too old.
<source lang=bash>
<source lang=bash>
Line 215: Line 228:
** Enable extension ''Cite'', ''WikiEditor'' and ''SyntaxHighlight''.
** Enable extension ''Cite'', ''WikiEditor'' and ''SyntaxHighlight''.
* Install other extensions
* Install other extensions

=== Version 1.28.1 ===
First tentative, install from {{file|.tar.gz}} file. Aborted because of two reasons:
* Tried to install the new ''mathoid'' extension.
* Extension GeSHi was not working.

;Mathoid
* Reference:
:* [https://github.com/wikimedia/mathoid Mathoid github]
:* [https://www.mediawiki.org/wiki/Mathoid Mathoid mediawiki]
:* [https://nodejs.org/en/download/package-manager/ Installing node.js]
<source lang=bash>
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
</source>
:* [https://docs.npmjs.com/getting-started/installing-node Installing npm]
:* [http://stackoverflow.com/questions/9023672/how-do-i-resolve-cannot-find-module-error-using-node-js About node modules not found]
* None of the install procedure works on Debian Jessie. This is what I did:
<source lang=bash>
# Make sure umask is correct *** IMPORTANT ***
umask 022

# Install newest node.js -- the one of Jessie is much too old for Mathoid
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
apt install -y nodejs
# Install some dependencies
apt install librsvg2-dev
# Install npm *GLOBALLY*, as root, YES AS ROOT, GOSH
# ... Installing as root was the only way to solve the problem of "./app.js" module not found
npm install -g mathoid
# ... mathoid is installed in /usr/lib/node_modules/mathoid
# ... test that it works:
cd /usr/lib/node_modules/mathoid
node server.js
# ... in a separate shell:
curl -d 'q=E=mc^2' localhost:10044

# Make sure umask is correct
umask 022

# We do a few things (from debian/mathoid.install / debian/mathoid.postinst)
addgroup --system mathoid
adduser --system --home /usr/lib/node_modules/mathoid --no-create-home --disabled-password --ingroup mathoid mathoid
cd /var/log
mkdir mathoid
chown mathoid:mathoid mathoid
chmod 700 mathoid

# If ok, generate the scripts
# We run the script to generate the startup scripts:
mkdir scripts/init
cd scripts/init
../gen-init-scripts.rb .

# Edit the files and copy as necessary

vi debian/mathoid.upstart
vi debian/mathoid.default
vi debian/mathoid.logrotate
vi config.dev.yaml
vi script/init/mathoid.service

cp debian/mathoid.upstart /etc/init/mathoid.conf
cp debian/mathoid.default /etc/default/mathoid
cp debian/mathoid.logrotate /etc/logrotate.d/mathoid
cp config.dev.yaml /etc/mathoid/config.yaml
cp script/init/mathoid.service /etc/systemd/system/mathoid.service

# Test everything is ok
systemctl start mathoid
systemctl status mathoid -l
ss -tupan|grep 10044
curl -d 'q=E=mc^2' localhost:10044
</source>

;GeSHi
* No rendering, no error, nothing, except category ''page with highlight problems''.
* Actually the issue was that <code>shell_exec</code> and <code>proc_open</code> (and maybe others) was disabled in PHP on server. See [https://phabricator.wikimedia.org/T128993 Phabricator bug T128993].
* To get debug output, add to {{file|LocalSettings.php}}:
<source lang=php>
$wgShowExceptionDetails = true;
$wgDevelopmentWarnings = true;
error_reporting( -1 );
ini_set( 'display_startup_errors', 1 );
ini_set( 'display_errors', 1 );

$wgDebugLogFile = "/var/lib/mediawiki/images/debug.log";
</source>
* To remove all interfering permissions, check files {{file|/etc/php5/apache2/php.ini}} and possibly files in {{file|/etc/php5/apache2/conf.d/}}, for lines like
<source lang=php>
disable_functions = shell_exec, escapeshellarg, escapeshellcmd, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate</source>
and clear out everything (doing so MAY EXPOSE YOUR SERVER TO FOREIGN ATTACKS!):
<source lang=php>
disable_functions =
</source>

=== version 1.27.1 ===
Installed from debian package:
* First, import logo {{file|kiwi.png}} as an image, such that now file is in {{file|./images/e/ea/Kiwi.png}}.
* Install the package
<source lang=bash>
apt install mediawiki
vi /etc/apache2/conf-available/mediawiki.conf
# Remove Alias /mediawiki /var/lib/mediawiki
vi /etc/apache2/sites-available/www.immie.org.conf
# Add 'Alias /wiki /var/lib/mediawiki'
</source>
* Now visit the site and follow instruction. This upgrade the database and generate a new Localsettings.php
<source lang=bash>
cp LocalSettings.php /etc/LocalSettings.php
chown www-data:www-data /etc/LocalSettings.php
chmod 700 /etc/LocalSettings.php
rm LocalSettings.php
cd /var/www
cp -rp --no-clobber /wiki/images /var/lib/mediawiki
mv wiki mediawiki
</source>
* Add MathJax.
<source lang=bash>
cd /var/lib/mediawiki/extensions
git clone https://github.com/hbshim/mediawiki-mathjax MathJax
chown -R www-data:www-data MathJax
cd /usr/share/javascript/mathjax/config/local
ln -sf /var/lib/mediawiki/extensions/MathJax/mwMathJaxConfig.js
vi mwMathJaxConfig.js
# Edit URL at the end of the file
vi /etc/mediawiki/LocalSettings.php
# Add Mathjax stuff:
#
# # Extension:MathJax
# wfLoadExtension( 'MathJax' );
# # MathJax location
# $wgMathJaxJS = "/mathjax/MathJax.js";
# # Configuration - see "http://docs.mathjax.org/en/latest/config-files.html"
# $wgMathJaxProcConf = "TeX-AMS-MML_HTMLorMML-full";
# # Local configuration file (excluding .js)
# $wgMathJaxLocConf = "local/mwMathJaxConfig";
# $wgParserCacheType = CACHE_NONE;
</source>

;Troubleshooting
* See above for GeSHi not running.

== Troubleshooting ==
See [https://www.mediawiki.org/wiki/Manual:How_to_debug MediaWiki - how to debug].

Mainly add to {{file|LocalSettings.php}}:
<source lang=php>
$wgShowExceptionDetails = true;
$wgDevelopmentWarnings = true;
error_reporting( -1 );
ini_set( 'display_startup_errors', 1 );
ini_set( 'display_errors', 1 );

$wgDebugLogFile = "/var/lib/mediawiki/images/debug.log";
</source>


== Backup ==
== Backup ==

Latest revision as of 10:19, 1 December 2016

Reference

Consult the User's Guide for information on using the wiki software.

Wiki Configuration

/* Override the default font-size: 0.8em in default Vector CSS */
#bodyContent {
    font-size: 1.0em;
}
 
/* Set the overall font size for body, overriding browser settings */
body {
    font-size: 11pt;
}

Host-Side Configuration

  • Wiki configuration settings during install:
Field Value Field Value
Wiki name miki email address auth enabled
contact e-mail ($wgEmergencyContact) miki@noekeon.org ($wgDBtype) database type MySQL
Language en - English ($wgDBserver) database host mysqlhost (as said on Priorweb's controlpanel)
Copyright no license ($wgDBname) database name mikiwiki
Admin username mikiadmin ($wgDBuser) DB username miki
Admin pwd ******** ($wgDBpassword) DB password ********
Object caching no caching su account <unchecked>
Email features enabled DB table prefix <none>
user-to-user email enabled Storage engine InnoDB
email notification enabled (discussion & watchlist) database character set MySQL 4.1/5.0 binary
$wgEnableUploads = true;
...
$wgLogo = "$wgScriptPath/kiwi.png";
  • File includes/DefaultSettings.php:
    • Change supported upload file types (added 'pdf' and 'zip').
    • Restrict anonymous editing (edit requires user to login)
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'pdf', 'zip' );
...
$wgGroupPermissions['*'    ]['edit']             = false;
user: mip
pwd: ********
email: miki.mip@noekeon.org
real name: Mike
  • Setup favicon.ico (this file), but saved as /favicon.icon (because otherwise Opera does not display it, go figure why).
    Edit file ./includes/DefaultSettings.php:
$wgFavicon                       = '/favicon.icon';
  • Enable user CSS:
$wgAllowUserCss = true;
# Enable some extra permissions (https://www.mediawiki.org/wiki/Manual:RevisionDelete)
$wgGroupPermissions['sysop']['deletelogentry'] = true;
$wgGroupPermissions['sysop']['deleterevision'] = true;
$wgGroupPermissions['oversight']['hideuser'] = true;
$wgGroupPermissions['oversight']['suppressrevision'] = true;
$wgGroupPermissions['oversight']['suppressionlog'] = true;
$wgGroupPermissions['observer']['viewsuppressed'] = true;

Extensions

Here the list of extensions installed on the Wiki:

SyntaxHighlight_GeSHi.
  • (2007-07-21) Version r24298 / GeSHi version 1.0.8.
  • (2010-01-06) Version r60735 / GeSHi version 1.0.8.6.
  • Patched to restore old GeSHi 1.0.7 formatting and to support enclose="valid". Using a custome style in MediaWiki:Common.css.
  • (2013-01-15) Use version bundled in MV 1.22.1
Cite
RawFile
  • (2009-09-05) Version 0.2
    • Patched to add optional param to {{#filelink}}.
    • Patched to allows using html attribute class instead of {{#fileanchor}}
  • (2013-01-15) Version 0.4.1
  • (2013-01-15) DISABLED — conflict with MW 1.22.1.
MathJax
  • Keep default configuration
# Extension:MathJax
require_once "$IP/extensions/MathJax/MathJax.php";
# $wgParserCacheType = CACHE_NONE;  // See http://www.mediawiki.org/wiki/Extension:MathJax


Here the list of extensions that are no longer installed on the Wiki:

JsMath.
  • DEPRECATED — no longer used, replaced by Extension:Math / MathJax (better rendering, more powerful, easier to install, and jsMath is no longer updated).
Math
  • DEPRECATED — We don't use this extension anymore, but use MathJax extension instead (which allows for $...$ formulas).
  • Configure Math to use MathJax javascript engine for much better results.
require_once "$IP/extensions/Math/Math.php";
// Set this if you don't use MediaWiki Math's texvc:
# $wgTexvc =  '/your/path/to/texvc';

$wgUseMathJax = true; // enabeling MathJax as rendering option
$wgDefaultUserOptions['math'] = MW_MATH_MATHJAX; // setting MathJax as default rendering option (optional)
/**
 * The default parser for MathJax is 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML'
 * If you don't want to or can't use the default and your run your own locally
 * replace the below url with something like:
 * $wgMathJaxUrl = '/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
 */
$wgMathJaxUrl = 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML';
MathJax_Parser::$do_dollar = false;

Installation

  • Version mediawiki 1.13.0.
  • First go to Priorweb control panel, MySQL section, and creates new user (see $wgDBname, $wgDBuser and $wgDBpassword above)
  • and go to Priorweb mailmanager to create email address (see $wgEmergencyContact)
  • then ssh to daemenj@ftp.noekeon.org:
cd kiwi.noekeon.org/
wget http://download.wikimedia.org/mediawiki/1.13/mediawiki-1.13.0.tar.gz
tar -xvzf mediawiki-1.13.0.tar.gz
mv mediawiki-1.13.0 miki
cd miki
chmod +w config
mv config/LocalSettings.php .
chmod 600 LocalSettings.php
rm -r config
  • It's done!

Upgrade

Version 1.15.1

  • Update procedure explained in UPGRADE:
mv miki miki-old
tar -xvzf mediawiki-1.15.1.tar.gz
mv mediawiki-1.15.1 miki
cp miki-old/LocalSettings.php miki
cp -r miki-old/images miki
cp -r miki-old/extensions miki
rm -r miki/config
cd miki
cp AdminSettings.sample AdminSettings.php
vi AdminSettings.php                          # Edit the file as necessary
cd maintenance
php update.php
rm -r ../miki-old
# Don't forget to remove miki-old when everything's fine

Version 1.22.1

  • Not really an upgrade, but reinstall. Upgrade caused issue with the new short-URL, and our LocalSettings.php was too old.
mv miki oldmiki 
wget http://download.wikimedia.org/mediawiki/1.22/mediawiki-1.22.1.tar.gz 
tar -xvzf mediawiki-1.22.1.tar.gz
mv mediawiki-1.22.1 miki
cp -iar oldmiki/images miki
cp -iar oldmiki/upload miki
cp oldmiki/kiwi.png miki

Version 1.28.1

First tentative, install from .tar.gz file. Aborted because of two reasons:

  • Tried to install the new mathoid extension.
  • Extension GeSHi was not working.
Mathoid
  • Reference:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
  • None of the install procedure works on Debian Jessie. This is what I did:
# Make sure umask is correct *** IMPORTANT ***
umask 022

# Install newest node.js -- the one of Jessie is much too old for Mathoid
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
apt install -y nodejs
# Install some dependencies
apt install librsvg2-dev
# Install npm *GLOBALLY*, as root, YES AS ROOT, GOSH
# ... Installing as root was the only way to solve the problem of "./app.js" module not found 
npm install -g mathoid
# ... mathoid is installed in /usr/lib/node_modules/mathoid
# ... test that it works:
cd /usr/lib/node_modules/mathoid
node server.js
# ... in a separate shell:
curl -d 'q=E=mc^2' localhost:10044

# Make sure umask is correct
umask 022

# We do a few things (from debian/mathoid.install / debian/mathoid.postinst)
addgroup --system mathoid
adduser --system --home /usr/lib/node_modules/mathoid --no-create-home --disabled-password --ingroup mathoid mathoid
cd /var/log
mkdir mathoid
chown mathoid:mathoid mathoid
chmod 700 mathoid

# If ok, generate the scripts
# We run the script to generate the startup scripts:
mkdir scripts/init
cd scripts/init
../gen-init-scripts.rb .

# Edit the files and copy as necessary

vi debian/mathoid.upstart
vi debian/mathoid.default
vi debian/mathoid.logrotate
vi config.dev.yaml
vi script/init/mathoid.service

cp debian/mathoid.upstart /etc/init/mathoid.conf
cp debian/mathoid.default /etc/default/mathoid
cp debian/mathoid.logrotate /etc/logrotate.d/mathoid
cp config.dev.yaml /etc/mathoid/config.yaml
cp script/init/mathoid.service /etc/systemd/system/mathoid.service

# Test everything is ok
systemctl start mathoid
systemctl status mathoid -l
ss -tupan|grep 10044
curl -d 'q=E=mc^2' localhost:10044
GeSHi
  • No rendering, no error, nothing, except category page with highlight problems.
  • Actually the issue was that shell_exec and proc_open (and maybe others) was disabled in PHP on server. See Phabricator bug T128993.
  • To get debug output, add to LocalSettings.php:
$wgShowExceptionDetails = true;
$wgDevelopmentWarnings = true;
error_reporting( -1 );
ini_set( 'display_startup_errors', 1 );
ini_set( 'display_errors', 1 );

$wgDebugLogFile = "/var/lib/mediawiki/images/debug.log";
  • To remove all interfering permissions, check files /etc/php5/apache2/php.ini and possibly files in /etc/php5/apache2/conf.d/, for lines like
disable_functions = shell_exec, escapeshellarg, escapeshellcmd, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate

and clear out everything (doing so MAY EXPOSE YOUR SERVER TO FOREIGN ATTACKS!):

disable_functions =

version 1.27.1

Installed from debian package:

  • First, import logo kiwi.png as an image, such that now file is in ./images/e/ea/Kiwi.png.
  • Install the package
apt install mediawiki
vi /etc/apache2/conf-available/mediawiki.conf
# Remove Alias /mediawiki /var/lib/mediawiki
vi /etc/apache2/sites-available/www.immie.org.conf
# Add 'Alias /wiki /var/lib/mediawiki'
  • Now visit the site and follow instruction. This upgrade the database and generate a new Localsettings.php
cp LocalSettings.php /etc/LocalSettings.php
chown www-data:www-data /etc/LocalSettings.php
chmod 700 /etc/LocalSettings.php
rm LocalSettings.php
cd /var/www
cp -rp --no-clobber /wiki/images /var/lib/mediawiki
mv wiki mediawiki
  • Add MathJax.
cd /var/lib/mediawiki/extensions
git clone https://github.com/hbshim/mediawiki-mathjax MathJax
chown -R www-data:www-data MathJax
cd /usr/share/javascript/mathjax/config/local
ln -sf /var/lib/mediawiki/extensions/MathJax/mwMathJaxConfig.js
vi mwMathJaxConfig.js
# Edit URL at the end of the file
vi /etc/mediawiki/LocalSettings.php
# Add Mathjax stuff:
#
# # Extension:MathJax
# wfLoadExtension( 'MathJax' );
# # MathJax location
# $wgMathJaxJS = "/mathjax/MathJax.js";
# # Configuration - see "http://docs.mathjax.org/en/latest/config-files.html"
# $wgMathJaxProcConf = "TeX-AMS-MML_HTMLorMML-full";
# # Local configuration file (excluding .js)
# $wgMathJaxLocConf = "local/mwMathJaxConfig";
# $wgParserCacheType = CACHE_NONE;
Troubleshooting
  • See above for GeSHi not running.

Troubleshooting

See MediaWiki - how to debug.

Mainly add to LocalSettings.php:

$wgShowExceptionDetails = true;
$wgDevelopmentWarnings = true;
error_reporting( -1 );
ini_set( 'display_startup_errors', 1 );
ini_set( 'display_errors', 1 );

$wgDebugLogFile = "/var/lib/mediawiki/images/debug.log";

Backup

Some references:

My procedure:

  • Copy this file to the wiki server, and make it executable.
  • Run this script on the machine where the backup files are to be saved (adapt the script to your needs):

To restore a MediaWiki backup on a local LAMP server (see also [3] for DB creation, and [4] for MySQL restore command):

MYSQL_HISTFILE=/dev/null  mysql --user=root -p mysql
mysql> CREATE DATABASE mikiwiki;
mysql> GRANT ALL PRIVILEGES ON mikiwiki.* TO miki@localhost IDENTIFIED BY '********';
mysql> quit
#Restore the wiki files
sudo mkdir /var/www/miki
cd /var/www/miki
sudo tar --strip 1 -xvzf ~/backup/wiki-20091111-www.noekeon.org_miki.daily.tar.gz
sudo chown -R www-data /var/www/miki
sudo chgrp -R www-data /var/www/miki
#Edit /var/www/miki/LocalSettings.php to match current config
sudo vi /var/www/miki/LocalSettings.php
# ... $wgDBserver="localhost"

# Restore the SQL backup (! note that mikiwiki is not the password, but the db name !!!):
gunzip < wiki-20091111-www.noekeon.org_miki.daily.sql.gz | mysql -u miki -p mikiwiki
# ... enter password for user miki

To Do

  • DONE — Upgrade jsMath to MathJax (see also [5]) (this requires MediaWiki 1.19 or higher)