前言

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

最后修改:2019 年 12 月 24 日
如果觉得我的文章对你有用,请随意赞赏