前言
Nextcloud 的地位就有点像 Wordpress ,用的人非常多,生态也很完善,但是比较臃肿,这似乎是无法避免的,既然用了,还是好好优化一下吧。
Nextcloud 是基于 PHP 的,结合数据库,我使用的是 PHP7+Mysql ,每次访问页面,都会耗费资源执行 php文件,查询数据库,htop 上的cpu就血压拉满,卡的不要不要的。而 Redis 就是一个极为强大的键值对存储数据库,更多可以看看这里 这里只是用了很小的一个用途,(学术不精,啥也不懂)
Nextcloud 支持 Redis.
安装环境
可以用编译和包管理器安装,嫌麻烦就用包管理工具吧。
Redhat
sudo yum install redis php-pecl-redis
RPM 系则是
sudo apt-get install Redis-server php-redis
验证是否安装成功
ps ax | grep redis
? Ssl 0:02 /usr/bin/redis-server 127.0.0.1:6379
//Redis 监听在 6379 端口PHP 启用扩展
我是 lnmp1.7 一键安装包安装的 PHP,配置文件在/usr/local/php/etc/php.ini
找到以下内容,取消注释,修改参数等,可用 vim 的查找功能extension = redis.so
Nextcloud 配置
修改$your-nextcloud-path/config/config.php
在 文件底部);
之前加入'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '127.0.0.1', 'port' => 6379, ],
打开 Redis 以及其守护进程
$ sudo systemctl enable redis Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service $ sudo systemctl start redis $ sudo systemctl status redis //Redis状态正常即可
完成
按照我自己的体验来说,是快了那么一点,刷新网页的时候占用率会低一些。
其他
既然装了 Redis ,为什么不让 Typecho 也用上 Redis 呢?
Typecho 也是基于 PHP 本身已经比较轻巧了,现在主要的 Redis 插件有好几个,最近更新的就是 TPcache ,但好像也有少许 bug。git clone https://github.com/phpgao/TpCache.git sudo mv ./TPcache /home/wwwroot/$blog-program-path/usr/plugins # 自己更改为程序目录 sudo chown -R www:www /home/wwwroot/usr/plugins/TPcache //更改目录用户
在后台启用配置即可, Redis 默认端口就是 6379
我觉得还是快了不少,总的时间能控制在 3s 以内。