Mediawiki备份迁移:修订间差异
跳转到导航
跳转到搜索
(未显示同一用户的2个中间版本) | |||
第1行: | 第1行: | ||
=2025迁移 导出导入用 cli 方便自动化= | |||
<pre> | |||
#导出 | |||
cat dumpxml.sh | |||
#!/bin/bash | |||
cd /data/docker4wiki | |||
#timestamp=$(date +%Y%m%d%H%M%S) | |||
timestamp=$(date +%Y%m%d%H%M) | |||
filename="wiki_pages_${timestamp}.txt" | |||
docker exec mediawiki php maintenance/dumpBackup.php --full > /data/docker4wiki/${filename}.xml | |||
cat tranwiki.sh | |||
#!/bin/bash | |||
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | |||
/usr/bin/rsync -avz [email protected]:/data/docker4wiki/*.xml /home/evan/data/backup_website/ | |||
MediaWiki 提供的 importDump.php 脚本不受上传限制: | |||
root@cfd65a785e:/var/www/html# php maintenance/importDump.php linux中国网wiki-20250619-071749.xml | |||
******************************************************************************* | |||
NOTE: Do not run maintenance scripts directly, use maintenance/run.php instead! | |||
Running scripts directly has been deprecated in MediaWiki 1.40. | |||
It may not work for some (or any) scripts in the future. | |||
******************************************************************************* | |||
100 (9.51 pages/sec 9.51 revs/sec) | |||
**** | |||
1400 (6.61 pages/sec 6.61 revs/sec) | |||
Done! | |||
You might want to run rebuildrecentchanges.php to regenerate RecentChanges, | |||
and initSiteStats.php to update page and revision counts | |||
</pre> | |||
=2019迁移= | =2019迁移= | ||
第36行: | 第74行: | ||
<pre> | <pre> | ||
nginx.conf | |||
client_max_body_size 20M; | client_max_body_size 20M; | ||
http { | |||
## | |||
# Basic Settings | |||
## | |||
server_tokens off; | |||
client_max_body_size 2000m; | |||
#想快的话 全改成 3000M 哈哈 | |||
大文件可能因两个原因被拒绝。PHP确认文件php.ini中的PHP上传限制。 | 大文件可能因两个原因被拒绝。PHP确认文件php.ini中的PHP上传限制。 | ||
第44行: | 第92行: | ||
upload_max_filesize = 20M | upload_max_filesize = 20M | ||
您或许应更改php.ini中的以下4条指令: | 您或许应更改php.ini中的以下4条指令: | ||
第64行: | 第110行: | ||
也可能是隐藏变量限制了输入框的大小。这需要在mediawiki源代码中查找, includes/specials/SpecialImport.php: | |||
<input type='hidden' name='MAX_FILE_SIZE' value='20000000' /> | |||
2025年6月21日 (六) 04:07的最新版本
2025迁移 导出导入用 cli 方便自动化
#导出 cat dumpxml.sh #!/bin/bash cd /data/docker4wiki #timestamp=$(date +%Y%m%d%H%M%S) timestamp=$(date +%Y%m%d%H%M) filename="wiki_pages_${timestamp}.txt" docker exec mediawiki php maintenance/dumpBackup.php --full > /data/docker4wiki/${filename}.xml cat tranwiki.sh #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin /usr/bin/rsync -avz [email protected]:/data/docker4wiki/*.xml /home/evan/data/backup_website/ MediaWiki 提供的 importDump.php 脚本不受上传限制: root@cfd65a785e:/var/www/html# php maintenance/importDump.php linux中国网wiki-20250619-071749.xml ******************************************************************************* NOTE: Do not run maintenance scripts directly, use maintenance/run.php instead! Running scripts directly has been deprecated in MediaWiki 1.40. It may not work for some (or any) scripts in the future. ******************************************************************************* 100 (9.51 pages/sec 9.51 revs/sec) **** 1400 (6.61 pages/sec 6.61 revs/sec) Done! You might want to run rebuildrecentchanges.php to regenerate RecentChanges, and initSiteStats.php to update page and revision counts
2019迁移
2019的 详情请见 Docker 安装mediawiki
特殊页面 -> 导出页面 -> 从分类添加页面: 里面填写上 分类名 然后 点击 添加 -> 导出
现在有个问题是 分类下面关联不了相关文章 因为redis的问题 只能每个文章都手工一次后 才能完全生效 哈哈
这次用了别的cache 也是得每个文章变一下 内容才和分类关联呢 201910
备份和还原
备份 也就是导出
整理标题列表 导致所有一次性 2025
左边菜单下 特殊页面 -->页面列表--> 所有页面 复制页面列表内容,整理成一行一个页面名称的文本列表 其实很方便复制的 我以前还一个个类死 笨蛋 昨天在irc上问了 别人给了参考 和认真看了一下
用所有标题列表导出内容
左边菜单下 特殊页面 -->导出页面 https://wiki.linuxchina.net/index.php/%E7%89%B9%E6%AE%8A:%E5%AF%BC%E5%87%BA%E9%A1%B5%E9%9D%A2
在上一步 整理好的 页面列表内容 放到 手动添加页面 导出为 xml
导入
就很容易啦 参考上面
在导入时要填写这个 跨wiki前缀 wiki
就很容易啦 参考上面
在导入时要填写这个 跨wiki前缀 wiki
nginx.conf client_max_body_size 20M; http { ## # Basic Settings ## server_tokens off; client_max_body_size 2000m; #想快的话 全改成 3000M 哈哈 大文件可能因两个原因被拒绝。PHP确认文件php.ini中的PHP上传限制。 ; Maximum allowed size for uploaded files. upload_max_filesize = 20M 您或许应更改php.ini中的以下4条指令: ; Maximum size of POST data that PHP will accept. post_max_size = 20M max_execution_time = 1000 ; Maximum execution time of each script, in seconds max_input_time = 2000 ; Maximum amount of time each script may spend parsing request data ; Default timeout for socket based streams (seconds) default_socket_timeout = 2000 mediawiki 导入 504 nginx代理文件上传时报错:504 gateway time-out的一种解决办法 也可能是隐藏变量限制了输入框的大小。这需要在mediawiki源代码中查找, includes/specials/SpecialImport.php: <input type='hidden' name='MAX_FILE_SIZE' value='20000000' /> #http请求被放在nginx待处理池中等待被服务器处理的最长时间,默认为60秒,可以改大到600秒 proxy_connect_timeout 600; #http请求被服务器处理完后,把数据返回给nginx的时间,默认60秒,可以改大到600秒 proxy_send_timeout 600;
https://meta.wikimedia.org/wiki/Help:Import/zh
https://www.mediawiki.org/wiki/Manual:DumpBackup.php
用脚本
https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki/zh#%E8%84%9A%E6%9C%AC
以后 mediawiki 记得db 换为postgresql 得有空才行