2024年4月4日更新
如果只是github的速度慢,但是用gerrit速度还可以的话,升级就不必像下文中写得这样麻烦(纯粹是绕了个大弯,但也不失为一种思路),只需要把git pull的命令稍作修改,比如:
git pull https://gerrit.wikimedia.org/r/mediawiki/core.git REL1_39
如果连gerrit的速度也上不去,那就试试下面的方法。
2023年12月14日原文
话说用git升级MediaWiki也不是头一遭了,但每一次都很折腾。国内服务器要连接到MediaWiki的库可太难了,下载速度就几个KB,而且每次到20%就断了。之前都是在虚拟机上git后平移到服务器上,这次是铁了心要用git pull的方法升级一次。国内服务器连接国外库的速度真心感人,不论我选择什么时间段进行升级都没成功过,最高也就到三十几K。
发过工单给工程师,阿里云表示他们也没办法,只能靠我自己了。首先排除两个网上的方法,一个是再买一台香港服务器,然后通过香港服务器中转,这思路我接受不了,如果恰巧有一台国外的服务器倒也不失为一种办法(之前搭过一台国外的,最近发现我当初申请的域名都被炒到五千多了,感觉替别人做嫁衣了)。还有一种就是在服务器上安装vpn服务,这个我也接受不了,因为不确定会给服务器留下什么漏洞。
剩下的基本上也就下面几种了。
一、修改git配置
配置git的最低速与最低速时间。
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
增加缓存大小。
git config --global http.postBuffer 1048576000
还有设置默认压缩方法
git config --global core.compression -1
反正这些方法我都试过了,没用。
二、修改hosts
运行vim /etc/hosts
命令,在最后加入下面内容:
208.80.154.151 gerrit.wikimedia.org
保存后记得刷新一下。
/etc/init.d/network restart
根据官方的说明,208.80.154.137的ip地址已经被用于gerrit-old.wikimedia.org。将上面的域名改为wikimedia.org还是一样没用。
不确定是不是地址和域名的设置有问题,反正修改hosts的方法用在拉取gerrit上的代码却可以达到几M的速度。
三、修改ssh_config文件
网上还有一个方法,号称能够让git的速度从几K提升几十倍甚至数百倍,就是修改ssh配置文件。
vim /etc/ssh/ssh_config
将GSSAPIAuthentication no
前的注释符号#删除并保存。
我不知道别人是怎么做到提速的,反正在我这里无效。修改hosts文件后改不改这项,我在gerrit上的速度同样很快。
四、设置克隆深度
在git clone时加上--depth=1即可解决depth用于指定克隆深度,为1即表示只克隆最近一次commit。内容少就意味着下载时间短,中断的概率也就低。
可是上述的配置如果没用,那么几K的速度再怎么减少克隆的内容还是无济于事。
五、将源码仓库同步到Gitee仓库
其实现在回过头来想想也非必要,因为既然github的速度能够达到几M,那么也可以直接用github上的源码来升级。只不过在刚开始的时候操作失误(没有指定版本号),网站还被我整崩溃了。
不得已才用了网上说的方法,把源码仓库同步到Gitee仓库,方法见下图:
地址中填入https://gerrit.wikimedia.org/r/mediawiki/core.git。
稍等片刻就拉取完成了。重新执行升级步骤:
git pull https://gitee.com/elan365/mediawiki.git REL1_39
因为我的当前版本是1.39,只是小升级,所以还要指定版本号,否则会提示合并代码等问题或像github那次一样把网站整崩溃了。
然后执行以下命令:
composer update --no-dev
php maintenance/update.php
打开特殊页面中的版本,升级成功。