Nextcloud 速度优化

Nextcloud 功能强大,但是过于臃肿,加上缓存性能会好一些。

请注意,本文编写于 273 天前,最后修改于 204 天前,其中某些信息可能已经过时。

前言

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 以内。

添加新评论

已有 1 条评论