• includes/installer, mw-config, maintenance/install.php (Manual:install.php), Manual:Installation guide, INSTALL
  • Using maintenance/install.php (todo: test and make sure of the parameters; add some documentation to the file and its Manual entry):
    rm -rf LocalSettings.php database/* && mkdir -p database/ && chmod a+w database/
    php maintenance/install.php [wikiname] [username] --pass=[password] --dbtype=sqlite --dbpath=database/
    note: for now the --scriptpath parameter needs to be explicitly set for this to work out of the box. gerrit:133222 addresses this.
    todo: allow password not to be set in the command line, and get a prompt instead
    todo: fix timezone issue w/ installer.php. In both cases the default time zone of the wiki is not correct (it either is set to UTC or doesn't take DST into account), but in the installer.php-generated wiki trying to edit the main page gets an edit conflict because the new edit uses the actual local timezone and the history uses the server timezone (one hour later, in my case). Both LocalSettings.php are identical, however...
  • See also: MediaWiki-Vagrant
  • https://bitnami.com/stack/mediawiki

Portable mediawikiEdit

There doesn't seem to be an easy way to make mediawiki self-contained. (update: see Manual:Wiki on a stick)

  • I tried using an sqlite database and put it in the root folder of the wiki, but that has problems if you try to version-control the wiki itself, e.g. with git, to track changes to the configuration files, extensions, skins, images, etc. If you try to include the database in the repo, you start getting edit conflicts (??) if you clone the wiki. This seems to be because the cloned database is owned by the user who performs the cloning, so it isn't writable by the apache user (www-data). This allows the wiki to be readable, but not writable. Worse still, if you try to chmod the database so it's writable by all, the wiki stops working. Perhaps another way to tweak the database file's permissions will work better, but essentially this means that it will never be plug-and-play (put it in a php-enabled server and you're done).
  • There's also the issue that a wiki content is typically version-controlled, so tracking the database (which contains all the revisions of the wiki's pages) within git does seem redundant; not to mention the added clumsiness if you want to revert some configuration changes (involving, say, several files and/or directories) without reverting the content of the wiki (i.e., excluding the database file from the revert).
  • Alternatives seem to be TiddlyWiki (with the added benefit of being an entirely client-side app -- but how does it handle large amounts of content? all in a single file doesn't scale...), and git-based wikis like Gollum, Gitit or Olelo/Gitwiki (where the wiki content is stored as a git repo -- I need to check how the config is managed, whether they require a web and database server to work, and whether they can work in a plug-and-play fashion)
  • See also: OrganicDesign.co.nz/MediaWikiLite, phpdesktop ("for developing native desktop GUI applications using web technologies such as PHP, HTML5, JavaScript and SQLite.")

Useful stuffEdit

Wikicode markupEdit

API + JavaScript (client-side apps)Edit


Languages and internationalizationEdit