How to migrate a mediawiki site: Difference between revisions

Created page with "相同版本的迁移很简单,重建旧环境,再把 database 和 file system 移过去就行。所以本文重点讨论升级式迁移:新 code + 旧重点备份 + update.php 等于升级成功。 新版本的数据,恢复至旧版本 MediaWiki,不支持。 旧版本的数据,恢复至新版本 MediaWiki,支持。不过要运行 update script. * 若 mediawiki/ 全量备份,则不用再装 mediawiki * 若 mediawiki/* 部分备份,则需在服务器..."
 
Tag: Manual revert
 
(12 intermediate revisions by the same user not shown)
Line 7: Line 7:
* 若 mediawiki/* 部分备份,则需在服务器安装同版本 mediawiki,再把备份部分移到它应去的位置
* 若 mediawiki/* 部分备份,则需在服务器安装同版本 mediawiki,再把备份部分移到它应去的位置


最好的迁移,是保持相同 MediaWiki 版本。不过,现实中多数是在新服务器上安装更新版本的 MediaWiki,把数据迁移进去后,在新服务器上做一个 upgrade 操作。
最好的迁移,是保持相同 MediaWiki 版本。不过,现实中多数是在新服务器上安装更新版本的 MediaWiki,把数据迁移进去后,在新服务器上做一个 update 或 upgrade 操作。


传文件进新服务器的方法有 putty 或 WinSCP 或 SSH 或 FTP。
传文件进新服务器的方法有 putty 或 WinSCP 或 SSH 或 FTP。
== 概览 ==
MediaWiki 的安装位置:
[[File:MediaWiki 安装位置.png|600px]]


步骤概览:
步骤概览:
Line 41: Line 46:
除了用 automysqlbackup,用 mysqldump 一样也能实现 Database 的备份,这是第二种方法。
除了用 automysqlbackup,用 mysqldump 一样也能实现 Database 的备份,这是第二种方法。
<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>
mysqldump --default-character-set=binary --user=wikidb_user --password=wikidb_userpassword wikidbname > dump_of_wikidb.sql
mysqldump --default-character-set=binary --user=wikidb_user --password=wikidb_userpassword wikidbname > dump_of_wikidb.sql 或者
mariadb-dump -u DBuser -p DBname > mysqlbackup20250815.sql
</syntaxhighlight>
</syntaxhighlight>


Line 75: Line 81:


== 迁移 File System ==
== 迁移 File System ==
* 特别注意,链接文件复制到新机器就没用了。解决这个问题,可以采用 <code>rsync -avL source_dir/ dest_dir/</code> 复制,L 选项令它追踪软链后的实体文件。
* LocalSettings.php 一般复制过去能直接用
* LocalSettings.php 一般复制过去能直接用
* logo 也要备份
* logo 也要备份
* 如果有 .htaccess,也需要备份
* 如果有 .htaccess,也需要备份
* 上传的文件,包括删除文件、缩略图、渲染的数学图、svg图,多半都放在 images/ 文件夹下
* 上传的文件,包括删除文件、缩略图、渲染的数学图、svg图,多半都放在 images/ 文件夹下。images 文件夹的所有者为 www-data,权限为 755。php 文件一定不能为 www-data 所有。
* extensions/ 也需要备份
* extensions/ 也需要备份


Line 91: Line 98:
tar -xvzf mediawikimybackup.tgz
tar -xvzf mediawikimybackup.tgz
</syntaxhighlight>
</syntaxhighlight>
== update ==
<syntaxhighlight lang="bash" line>
php maintenance/update.php # 解决缩略图的小毛病
</syntaxhighlight>
[[Category: MediaWiki]]