前言
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
//正常会输出以下内容
9222 ? 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 以内。
测试