最近突然发现社区服务需要一个论坛类的东西,但是看看新的Discuz X3.4貌似没什么兴趣,而Discuz Q 3.0又跟腾讯的微信绑的太紧,跟微信服务挂着的开发都需要所谓的实名,而实名又不支持外籍,所以一直都没什么兴趣去折腾,后来发现当时练手的一个论坛Flarum终于从0.1 beta升级到1.0版本了,嘿嘿,趁机升级一下看看如何吧。
看了一下文档发现居然还是需要那个不怎么熟悉的Composer,好吧,按照升级页面的简单指令,
改动composer.json里的组件版本从0.1.0 到 *,然后跑一下验证,居然直接出错。。。
那就用这个命令看看flarum的版本吧
php flarum info
继续报错:“PHP Fatal error: Declaration of Doctrine\DBAL\Driver\PDOConnection::query() must be compatible with PDO::query(string $query, ?int $fetchMode = null, mix/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php on line 73”,这个错误看上去是PHP的版本问题,之前提到过在这个Ubuntu上装了多个PHP的版本,那就用PHP 7.3打开一下:
php7.3 flarum info
这回直接输出了正确的版本信息:
后悔当时编辑composer.json的时候没有留一个备份文件,现在还要去修改版本,烦躁。。继续往回改,改完跑了一下composer,发现还有提示版本不对的问题,然后又用同样的方法用php7.3调用composer,但这次出现了新的错误“
Updating dependencies
Killed
”
搜索了一下,发现是内存问题,所以只能创建Swapfile来扩大运存:
#Check free memory before
free -m
mkdir -p /var/_swap_
cd /var/_swap_
#Here, 2G ~ 2GB of swap memory. Feel free to add MORE
sudo fallocate -l 2G swapfile
chmod 600 swapfile
mkswap swapfile
swapon swapfile
#Automatically mount this swap partition at startup
echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
#Check free memory after
free -m
然后命令就继续跑下来,这时候开始dependencies报错,就是反正各种extension的版本错误,好吧,开始艰辛的调整之旅,插入不同的版本,不行,换成*不行,看来是时候考虑要删掉某些extension了。。但发现不用的4个extension删除不了,仔细看了一下错误信息,是已经删除了,只是需要从composer.json里删掉就行了,果真,删除之后,立刻开始升级
php flarum migrate
php flarum cache:clear
进入论坛刷新一下,嘿嘿,新版本的后台貌似大气多了,但具体功能有什么提升还需要慢慢研究。
文章评论