Manual:Moving a wiki

From Linux Web Expert

If you are looking to just move your wiki e.g. from /var/www/html/ to /var/www/html/mywiki/, instructions are here.

This page explains how to move a wiki to another server. This is often needed when moving to a different web server or domain (or both).

The safest way to do it is by using the same MediaWiki version on both wikis. However, it's possible to install newer MediaWiki version on the new server and perform an upgrade directly on the new server. In fact, this may be your only option if you want to upgrade your wiki to a new version that has higher requirements than those available on your old server (like php version).

The steps are basically explained in other pages:

  1. Make a backup of your wiki.
  2. Transfer backups from the old server to the new one.
  3. Restore the backup on the new server.
Before you start to backup your wiki, you may want to put it under "read-only" mode so that nobody can edit it while you are moving it. If you don't, you might lose edits/uploads/logs etc. that were made during the migration process. To do this, use $wgReadOnly in LocalSettings.php. For example:
$wgReadOnly = 'Down for maintenance: access will be restored shortly';

Upgrading the new server

If you are upgrading to a newer MediaWiki version on the new server, instead of copying the old MediaWiki directory and extensions to the new server, you should follow the upgrading procedure. You'll download a new MediaWiki version on the new server and fresh versions of the extensions you use, matching the new MediaWiki version. Remember to run the update script.

Notes

  • If the URL has changed (for example, a new domain), be sure to update all references to it in LocalSettings.php. If using VisualEditor, you'll need to update Parsoid configuration too.
    • Links on cached pages may still point to the old domain. You may need to bump $wgCacheEpoch to discard cached pages prior to that time.
  • Check that the upload/ directory has the correct permissions set if using uploads; it must be writable by the web server.
  • Make sure any extension directories have the correct permissions as well (e.g., if linux: chmod -R o=rx extensions)
  • When manually transferring a wiki from a windows platform to a Linux platform the best method is to:
  1. Manually install MediaWiki on the Linux platform from a tar file as outlined here: Manual Install of Wiki (i.e., try not to use install from an automated package)
  2. Replace the newly installed MediaWiki folder (e.g., /var/www/mediawiki...) on your Linux machine with the MediaWiki base folder from your windows machine
  3. Update your Linux machine's MySQL Database (e.g. wikidb) with the wiki database from your windows machine (i.e., use the backup and restore features of mysql as outlined above)
  • After importing a wiki database, even if the database can work, some minor problems may arise:
  1. You might need to repair Searchindex: In phpMyAdmin, enter "REPAIR TABLE wikidb.searchindex; " for rebuilding the search index. wikidb is your database's name.
  2. The collation of some rows may be changed. Cross-check it with the original database.

Test

At this point, try to use the wiki on the new server. Log in as a sysop and a regular user and check that viewing, creating and editing pages and uploading files still works. Fix any problems reported either by PHP or MediaWiki itself.

You can do the entire process to test if the move will work without problems, before actually putting the old wiki in read-only mode. Once you know your wiki in the new server works as expected, you can put your old wiki in read-only mode and perform the move again.

Frequent problems

Inaccessible files after changing the domain

The column md_deps in the module_deps table contains absolute file paths, which are used to locate the images and LESS files that CSS depends on. These paths break when the wiki is, e.g., moved to another folder or another server. After your move, you might see PHP warnings that certain files could not be accessed. In current versions of MediaWiki, this can be solved by running update.php, thus clearing caches.

In versions older than MediaWiki 1.25 (where phabricator:T37472 is not implemented), update.php does not delete the contents of the module_deps table. For these versions, the workaround is to manually fix wrong entries in the module_deps table:

-- Update entries in module_deps table
SET @old='wiki.old-domain.org';
SET @new='wiki.new-domain.org';

UPDATE `module_deps` SET `md_deps` = REPLACE( `md_deps`, @old, @new );

This can be used to update wrong path segments and to fix the error.

A similar issue can happen when MediaWiki tries to read resource loader messages. In this case the solution is to truncate the according tables:

-- Truncate message related caches
TRUNCATE TABLE `msg_resource`;
TRUNCATE TABLE `msg_resource_links`;

See also


External links


Notes