Manual:Moving a wiki

From MediaWiki.org
Jump to: navigation, search

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).

Versions and upgrading[edit | edit source]

The instructions on this page should apply more or less evenly to any given version of MediaWiki. Ensure, prior to moving, that any upgrading of the software and database schema is done. You should only move a database into another MediaWiki installation if they both run the same version. If you need to do both, make sure to upgrade before migrating to a different web server.

File transfer[edit | edit source]

Choose a method for transferring files:

Overview[edit | edit source]

  1. Back up the database
  2. Back up the MediaWiki files
  3. Re-create the database, user and permissions
  4. Import the database backup
  5. Import the MediaWiki files
  6. Check the configuration file
  7. Test

Back up the database[edit | edit source]

TIP: Wiki in read only mode

Before you start the 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';

To move or copy your wiki, you need to start by making a backup of everything. You should probably copy at least the following:

  • The wiki's database content. See Manual:Backing up a wiki.
  • Images and other media files, i.e., the contents of the images and if modified any files from the skins directory.
  • Favicon and .htaccess files.
  • Configuration files, e.g., LocalSettings.php and (on older wiki's maybe AdminSettings.php as well).
  • The contents of the extensions folder.

Set up the destination database[edit | edit source]

On the destination server, create a new MySQL database and a user, and grant that user permissions on the database. SELECT, INSERT, UPDATE and DELETE permissions should suffice. You also need DROP, CREATE and ALTER to import the data base. You may need to consult the MySQL documentation, your hosting provider's control panel documentation, or the documentation of any other utilities you are using for information on how to do this.

Note: The destination database may have a different name, user and/or password. If that is the case, you only have to update the configuration file on the new server (after you completed the following steps, though).

Import the database backup[edit | edit source]

The next step is to import the database backup. This creates the tables in the database and populate them with data. Duplicating the database on the other server. Importing takes a variable amount of time, depending upon the number of pages, users, edits, etc. in the wiki.

Possible methods[edit | edit source]

See Manual:Restoring a wiki from backup for the full details. Possible methods for performing the import include:

Import the MediaWiki files[edit | edit source]

The final "large" step in the moving process is to upload/copy the MediaWiki files (the "wiki" folder) to the destination server. If you followed the instructions above, and backed up the entire directory, this includes the images and extensions directories, plus custom skins, etc. and the configuration file.

If you backed up only portions of the directory, e.g. images, extensions, etc. then you must first upload or copy a fresh install of the MediaWiki files, then transfer the backed-up directories and files into the correct locations in the new filesystem.

Notes[edit | edit source]

  • If following the latter process, ensure that your "fresh install" consists of the same version of MediaWiki as the old one did
  • Check that the upload/ directory (called images/ in MediaWiki 13 and below) 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 or chmod -R o=rx includes)
  • When manually transferring a wiki from a windows platform to a Linux platform the best method is to:
  1. Manually installing wikimedia on the Linux platform from a tar file as outlined here: Manual Install of Wiki (i.e., try not to use install from a automated package)
  2. Replacing the newly installed wikimedia folder (e.g., /var/www/mediawiki...) on your Linux machine with the wikimedia base folder from your windows machine
  3. Updating 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.

Update the configuration file[edit | edit source]

The final step is to update the LocalSettings.php file. Certain entries in this will almost undoubtedly require changing.

Check the following configuration options:

Configuration option Description Default/Example
$IP Usually this is set automatically. However if you set it manually, it must be updated to absolute local file path to the MediaWiki directory on the new server. Default:
$IP = dirname( __FILE__ );
$wgServer Needs to match the hostname of where the new wiki is served from
(must not have a path, that's for $wgScriptPath)
Example:
$wgServer  = 'http://example.org';
$wgScriptPath Needs to match the public url to where the MediaWiki directory is on the new server Example:
$wgScriptPath  = '/w';
$wgArticlePath Needs to match where wiki pages are now primarily read from. See also Manual:Short URL if you have short urls set up to make sure that still works. Examples:
$wgArticlePath = '/w/index.php?title=$1';
$wgArticlePath = '/wiki/$1';
$wgDBserver The hostname to the new database server. Example:
$wgDBserver = 'localhost';
$wgDBname The name of the database. Be sure that this includes any prefixes that your (new) hosting provider may have enforced. Example:
$wgDBname = 'igot_mwiki';
$wgDBuser The username that MediaWiki should use to login on the database server. Example:
$wgDBuser = 'igot_mwiki';
$wgDBpassword The password for the (new?) wgDBuser. Example:
$wgDBpassword = 'xxxxxxx';

You might also need to check the paths to diff3, ImageMagick, etc.

Test[edit | edit source]

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.

Frequent problems[edit | edit source]

Inaccessible files after the changing the domain

After your move, you might see PHP warnings that certain files could not be accessed. This is most likely caused by bug 35472: 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. Until this bug is solved, you can use this workaround to manually fix wrong entries in the 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.

See also[edit | edit source]

External links[edit | edit source]

Notes[edit | edit source]

Language: English  • 日本語