How to migrate a mediawiki site
Jump to navigation
Jump to search
相同版本的迁移很简单,重建旧环境,再把 database 和 file system 移过去就行。所以本文重点讨论升级式迁移:新 code + 旧重点备份 + update.php 等于升级成功。
新版本的数据,恢复至旧版本 MediaWiki,不支持。
旧版本的数据,恢复至新版本 MediaWiki,支持。不过要运行 update script.
- 若 mediawiki/ 全量备份,则不用再装 mediawiki
- 若 mediawiki/* 部分备份,则需在服务器安装同版本 mediawiki,再把备份部分移到它应去的位置
最好的迁移,是保持相同 MediaWiki 版本。不过,现实中多数是在新服务器上安装更新版本的 MediaWiki,把数据迁移进去后,在新服务器上做一个 upgrade 操作。
传文件进新服务器的方法有 putty 或 WinSCP 或 SSH 或 FTP。
步骤概览:
- 重建数据库、用户、权限
- 导入 database
- 导入 files
- 检查 configuration
- 测试
对公共 MediaWiki 迁移前,先把权限改为只读,避免丢失用户在迁移期间编辑的内容。在 LocalSettings.php 中添加:
$wgReadOnly = 'Down for maintenance: access will be restored shortly';
而且,记得重启 apache2 的 php 模块:
sudo a2enmod php8.2
迁移 Database
Database 包含页面内容、用户配置、metadata、索引内容。
备份 Database
sudo apt install automysqlbackup
sudo automysqlbackup
sudo find /var/lib/automysqlbackup/
sudo cp /var/lib/automysqlbackup/weekly/my_wiki/my_wiki_week.18.2016-05-07_15h32m.sql.gz /some/place/you/want
除了用 automysqlbackup,用 mysqldump 一样也能实现 Database 的备份,这是第二种方法。
mysqldump --default-character-set=binary --user=wikidb_user --password=wikidb_userpassword wikidbname > dump_of_wikidb.sql
创建 MySQL 环境
多数重要数据存在 database 中。迁移的前提准备:创建一个正常使用的 MySQL 环境,合适的 MySQL 用户权限。备份在旧机器上操作,备份后的步骤到新机器做。
- create a NEW mysql user (new_mysql_user)
- create a NEW mysql database my_wiki
- GRANT the NEW mysql user access to the NEW created mysql database my_wiki
mysqladmin -u wikidb_user -p
drop wikidb
sudo mysql -u root -p
mysql> CREATE USER 'new_mysql_user'@'localhost' IDENTIFIED BY 'THISpasswordSHOULDbeCHANGED';
mysql> quit;
sudo mysql -u root -p
mysql> CREATE DATABASE my_wiki;
mysql> use my_wiki;
mysql> GRANT ALL ON my_wiki.* TO 'new_mysql_user'@'localhost';
mysql> commit;
mysql> quit;
迁移 Database
sudo chown user:user somebackup.sql
gunzip < var/lib/automysqlbackup/weekly/my_wiki/my_wiki_week.18.2016-05-07_15h32m.sql.gz|mysql -uUSER -pPASSWORD my_wiki 或
mysql -u wikidb_user -p wikidb < dump_of_wikidb.sql
php wikifolder/maintenance/update.php
迁移 File System
- LocalSettings.php 一般复制过去能直接用
- logo 也要备份
- 如果有 .htaccess,也需要备份
- 上传的文件,包括删除文件、缩略图、渲染的数学图、svg图,多半都放在 images/ 文件夹下
- extensions/ 也需要备份
不要覆盖文件夹。可先在别处解压备份文件。把 File System 移到相应位置,再打开浏览器运行 Config script 以生成 LocalSettings.php。需要迁移的文件如上。以下仅为压缩、解压缩示例。
备份 File System
sudo tar zcvhf mediawikimybackup.tgz /var/lib/mediawiki
迁移 File System
tar -xvzf mediawikimybackup.tgz