概述:
操作系统: Centos 停止更新, Debian 最新版本发布: Centos7 -> Debian 12.7
Wiki:
产品 | 版本 |
---|---|
MediaWiki | 1.21.2 |
PHP | 5.4.16 (apache2handler) |
MySQL | 5.5.68-MariaDB |
升级到
产品 | 版本 |
---|---|
MediaWiki | 1.42.3 |
PHP | 8.2.24 (fpm-fcgi) |
ICU | 72.1 |
MariaDB | 10.11.6-MariaDB-0+deb12u1 |
Pygments | 2.17.2 |
3.博客迁移 blog.mreald.com
阿里云申请新的ECS再安装LAMP
hostnamectl hostname mreald sudo apt update sudo apt install apache2 -y sudo apt install mariadb-server -y sudo apt install php libapache2-mod-php php-mysql php-fpm -y sudo apt install php8.2-mbstring php8.2-xml php8.2-intl -y
配置Apache2 (几种配置方法官方文档: https://httpd.apache.org/docs/2.4/en/vhosts/ )
vim /etc/apache2/sites-available/myblog.conf <VirtualHost *:80> ServerName blog.mreald.com DocumentRoot /var/www/html/webdir/ DirectoryIndex index.html index.php Options FollowSymLinks </VirtualHost>
加载网站: a2ensite myblog
会在 /etc/apache2/sites-enabled/ 下生成/etc/apache2/sites-available/myblog.conf 的软链接 myblog.cnf,表示生效
改两个地方,不然除了首页正常,其它页面都是404
vim /etc/apache2/apache2.conf <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All ###这里的None 改为All Require all granted
加载这个模块: a2enmod rewrite systemctl restart apache2
配置下Mariadb用户密码什么的:
mariadb-secure-installation
create database websit; mysql -uroot -p websit < /home/ecs-user/websit.sql
Mediawiki 升级:
开始不懂,以后像之前, 把数据库导过去,用新的网站代码就行. 最后发现新的wiki 数据库的表结构都不一样.
想自己把老的表一个个导过去.就做了半天下面的功夫:
insert into text select * from mediawiki.mediawikitext where not exists (select * from text where text.old_id=mediawiki.mediawikitext.old_id); INSERT INTO revision (`rev_id`, `rev_page`, `rev_timestamp`, `rev_minor_edit`, `rev_deleted`, `rev_len`, `rev_parent_id`, `rev_sha1`) select `rev_id`, `rev_page`, `rev_timestamp`, `rev_minor_edit`, `rev_deleted`, `rev_len`, `rev_parent_id`, `rev_sha1` from mediawiki.mediawikirevision where not exists (select * from revision where revision.rev_id=mediawiki.mediawikirevision.rev_id); 有一个文字格式的,以至于总是提示语法错误,真服了.. INSERT INTO `archive` (`ar_id`, `ar_namespace`, `ar_title`, `ar_comment_id`, `ar_actor`, `ar_timestamp`, `ar_minor_edit`, `ar_rev_id`, `ar_deleted`, `ar_len`, `ar_page_id`, `ar_parent_id`, `ar_sha1`) VALUES (NULL, '0', '', '', '', '', '0', '', '0', NULL, NULL, NULL, '') .....
折腾了一天,发现有页面内容,但是链接打不开.
网上又查了一下.说 1.34之前的升级到1.42 需要两步升级. 先升级到 1.34, 再1.34升级到1.42
网站代码下载地址与 更新方法参考如下:
wget https://releases.wikimedia.org/mediawiki/
https://www.mediawiki.org/wiki/Manual:Upgrading/zh
https://www.zxw.pub/mediawiki/202001/mediawiki-update.html
大致过程:
create database mediawiki; mysql -uroot -p mediawiki < /home/ecs-user/mediawiki.sql 第一步升级: cd /var/www/html/ wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.34.tar.gz tar xzf mediawiki-1.34.tar.gz php mediawiki-1.34/maintenance/update.php 第二步升级: wget https://releases.wikimedia.org/mediawiki/1.42/mediawiki-1.42.tar.gz tar xzf mediawiki-1.42.tar.gz php mediawiki-1.42/maintenance/update.php 中间会提示一些 LocalSettings.php 配置内容的改变,做下变更就行 最后把原来的Logo.png 什么的更换一下就OK
博客迁移:
php 升级版本比较大,有一些问题汇总一下:
foreach ($values as $value) { ... } 改为 if (is_array($uniquerel) || is_object($uniquerel)) { foreach ($values as $value) { ... } }
strlen(ABC); //ABC 为Null的时候会提醒不用这个函数 strlen((string)ABC); // returns 0
public $indent=0; public $content=array(); public $lines=0; public $context=array(); public $rooturl; public $request; public function __construct($content,$rooturl,$request){ #return get_magic_quotes_gpc() ? addslashes($string) : $string; return $string; isset($this->content['logo']) && !empty($this->content['logo']) ?$this->content['logo']:''
遇到的问题:
1. ssh 客户端 连接服务器的总是3分钟左右断开,没使用的时候
本地Client端 修改(加下面两行): vim /etc/ssh/ssh_config ServerAliveInterval 30 ServerAliveCountMax 1300
解释:客户端每30s给服务器一次心跳, 最大 1300次
或者:
ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=300 user@hostname
之前是改的Sever 端的如下,一般是有用,但这次一直不行
/etc/ssh/sshd_config ClientAliveInterval 60 ClientAliveCountMax 100
2. 学到的知识点
vim 代码自动格式化对齐 = == 行 gg=G 全部
多进程删除文件: find /var/spool/postfix/maildrop/ -type f -print0 |xargs -0 -P 30 rm -f