NextCloud手动升级版本

首先进网站根目录,把nextcloud的维护模式打开:

1
sudo -u www-data php occ maintenance:mode --on

然后手动运行updater/updater.phar:

1
sudo -u www-data php updater.phar

它会提示你它会做什么,然后问你要不要继续,按y回车就会开始。

如果一切顺利,就会问你要不要马上运行occ upgrade来完成升级维护,但是在我的配置里它调用的function被禁用了,所以只能手动运行occ,选n。

然后会问是否保持维护模式打开,因为要手动运行occ,所以选y,然后updater就会退出了。

回到网站根目录,完成occ upgrade:

1
sudo -u www-data php occ upgrade

等它做完事情就可以了,一般不会问其他东西的。最后把维护模式关掉:

Read More

nextcloud的php升级暴毙问题

今天忍不住不想再看WordPress天天抱怨要升级php,决定升tm的。从5.6升到7.2(因为lnmp 1.6官配支持7.2,1.7才是支持7.3,不敢冒险),然后WordPress无压力运行,nextcloud成功暴毙500.

面对这个老问题,这次好好查了论坛,终于找到了解决办法

Had the same issue, was able to load nextcloud with php7.0, and it broke when switching to 7.1 and 7.2; it was an opcache issue.

I suggest you remove the lines relating to Redis and memcache from your config:

1
2
3
"memcache.local": "\\OC\\Memcache\\Redis",
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",

就是把config/config.php里面的三行关于OPcache的配置删掉 (如果配置了redis也把redis的删掉)。删了之后果然成功运行起来了。

Read More

无聊时的无聊程序

其实程序很简单,因为有符号的就是无符号的一半大小,所以直接用无符号赋值-1就会溢出成最大数:

1
2
3
4
5
6
uint8_t int8 = -1;
uint16_t int16 = -1;
uint32_t int32 = -1;
uint64_t int64 = -1;
uint_fast8_t fastint8 = -1;
uint_fast16_t fastint16 = -1;

写的时候代码自动提示发现了一个带“fast”的类型,还挺神奇,标准上说这些类型是在这个处理器上运算最快的、至少有N位的类型,看输出结果就比较奇妙。

输出结果依次是:

1
2
3
4
5
6
uint8_t: 255  
uint16_t: 65535
uint32_t: 4294967295
uint64_t: 18446744073709551615
uint_fast8_t: 255
uint_fast16_t: 4294967295

可以见到在我的电脑上,fast8是普通的int8,而fast16却用了int32的类型。

Read More

Crypto++使用(1)

之前突发奇想想要用SHA256来生成密码,搜索发现C++主要的加密库是Crypto++。但是api比较晦涩难懂(不像Java的Maven那种清晰明了),所以找了个例子来看。

首先是加密部分:

1
2
3
4
CryptoPP::SHA256 hash;
byte digest[CryptoPP::SHA256::DIGESTSIZE];
std::string message;
hash.CalculateDigest(digest, (byte*)message.c_str(), message.length());

这里是以字符串作为计算对象。通用的部分是:

  1. byte数组,长度根据用的算法来确定(有对应的常量),比如SHA256::DIGESTSIZE,MD5的就是MD5::DIGESTSIZE
  2. 算法的class对象
  3. 计算Digest,第一个参数是算出来的东西写到哪里去,第二个参数就是计算的内容(byte指针形式给定),第三个是指明计算内容的长度(这里就是字符串长度)

Read More

今日琐碎

今日份的快乐,是获得了爸爸的一台显示器,接上笔记本之后把笔记本藏在显示器后边,舒服了很多呢。果然还是屏幕大比较好。

Read More

C++ Primer Plus

iostream

cin、cout

提供了coutcin两个常用stream:

cin:char input流

cout:char output流

1
2
3
4
string str;  
cout << "Say something";
cin >> str;
cout << "Hi, " << str << ", nice\n";

读入(>>)的时候会自动根据变量类型读入需要的东西

>>可以连续整:

1
2
3
string a;  
string b;
cin >> a >> b;

宽字符wcin、wcout

Read More

模拟键盘或鼠标输入

今天突发奇想想要在linux上实现模拟鼠标右键按住的效果。linux上用按键精灵就完事了,linux上用的是xdotool,看man就知道,比如需要右键按住,就是

1
xdotool mousedown 3

但是mousedown不支持delay,所以需要写成script,在前面加一句sleep来实现延时。

Read More

昨日

昨天晚饭有一道菜是豆豉鲮鱼,突然想起爷爷还在世的时候我们经常中午饭就开一个鲮鱼罐头、蒸一些腊肠、煮几条菜,然后就在玻璃台那边开饭,一边看有报天天读一边吃饭。

Read More