Nextcloud安装完成后内存缓存设置问题

Nexcloud虽好,安装完后却总是出现各种奇奇怪怪的问题,特别是在点击概览一项看到没有显示绿色的所有检查已通过字样时让强迫症感到尤为不舒服,接下来简单看一下显示内存缓存未安装时的简单的解决方法,未必适合每个人,仅作参考。

说明

提前说明以下,这里的解决方案是同时安装redisapcu的,其实简单地安装一下apcu就可以消除Nextcloud给出的这条提示的,内存不太够的机器上稍微注意一下。

安装redis

安装redis其实和其他软件一样,基本都有两种安装方法的,我个人比较喜欢用Debian,所以以此为例稍微说一下。

  1. 发行版软件源安装

    如Debian,

    1
    
    apt-get install redis -y
    

    就解决了,不过最好再

    1
    
    systemctl enable redis-server && systemctl restart redis-server
    

    加入一下开机启动项。

    不过这样安装的问题很明显,那就是软件太旧,毕竟是求稳,也没办法,不过对我这样的懒人来说倒是够了。。。(逃)

  2. 源码编译

    基于上面所说,也就有了源码编译这一项,不过我的破机器撑不住,所以也就没实践,可以搜索一下相关文章,如这篇可以参考一下。

PS:redis的相关端口和密码我是默认的,为安全性考虑的话可以修改一下

PHP集成模块

很显然是要安装集成redis和apcu两个模块了,写了个小脚本试一下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
php_prefix="/usr/local/php" #换成你的php安装路径
phpredis_version="5.3.4"    #可以看看是不是有最新版本,可以换掉
apcu_version="5.1.20"       #同理

cd ~
mkdir build && cd build
wget "https://github.com/phpredis/phpredis/archive/${phpredis_version}.tar.gz"
tar -xf "${phpredis_version}.tar.gz" && cd "phpredis-${phpredis_version}"
${php_prefix}/bin/phpize
./configure --with-php-config=${php_prefix}/bin/php-config
make && make install
echo 'extension=redis.so' >> ${php_prefix}/etc/php.ini

cd ~/build
wget "https://pecl.php.net/get/apcu-${apcu_version}.tgz"
tar -xf "apcu-${apcu_version}.tgz" && cd "apcu-${apcu_version}"
${php_prefix}/bin/phpize
./configure --with-php-config=${php_prefix}/bin/php-config
make && make install
echo 'extension=apcu.so' >>  ${php_prefix}/etc/php.ini

cd ~ && rm -rf build 
#下面我是根据自己的web服务器情况搞的,要根据自己的配置修改
systemctl restart nginx && systemctl restart php-fpm 

以上的配置最好根据自己的需要和具体的机器情况修改一下,要不然估计会出幺蛾子的😭。。。

修改Nextcloud配置

这里就是要修改一下具体的配置文件了。

打开nextcloud安装目录下config/config.php文件,进行编辑

PS:建议备份一下,免得出现意外情况

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'filelocking.enabled' => 'true',
'redis' => [
   'host' => '127.0.0.1',
   'port' => 6379, #如果修改了监听端口的话注意这里也要修改
   'password' => 'xxxxxxxx', #如果没有设置密码的话要删掉
  ],

如果只安装apcu的话,只添加

'memcache.local' => '\OC\Memcache\APCu',

就可以了。

PS:注意要在结尾);内添加

重新检查一下,不在提示这一问题就算大功告成了😄。

updatedupdated2023-04-072023-04-07