基于wlnmp一键包安装Nextcloud网盘

Nextcloud是一套用于创建网络硬盘的客户端-服务器软件,是一款开源网盘的绝佳解决方案,Nextcloud上的文件存储在一般的目录结构中,并可透过WebDAV访问。用户的文件会在传输时加密。

Nextcloud支持Windows(Windows XP、Vista、7、8、10)、macOS(10.6或更新版本)、iOS、Android、FreeBSD或Linux等客户端。

本文以CentOS7系统为例,基于wlnmp一键安装包,使用php7.4、mysql5.7版本来安装。请严格按照文中步骤进行(注:擅自更换系统及文中所提版本,有安装失败风险)

我这里不得不强调一下防火墙和selinux,请自行关闭或放行防火墙和selinux规则

1、添加wlnmp一键安装包源

2、安装epel源

3、安装lnmp环境

4、安装php依赖

5、Nginx配置

Nextcloud建议使用https,我这里为了方便就直接使用http方式了(请在以下两个配置文件中任选其一),下面我给出了两个nginx的配置,如果你想使用https,请自行申请证书和生成赫尔曼密钥。

http配置文件,请删除原有的/usr/local/nginx/conf/vhost/demo.conf内容,将以下内容复制进来,并替换server_name的地址!

https配置文件,请删除原有的/usr/local/nginx/conf/vhost/demo.conf内容,将以下内容复制进来,并替换server_name的地址!

6、重启nginx服务

7、配置php-fpm.conf

如果不配置此项,可能会导致Nextcloud安装警告:PHP的安装似乎不正确,无法访问系统环境变量。getenv("PATH") 函数测试返回了一个空值。

8、启用php-opcache

9、重启php服务

10、配置mysql

11、下载nextcloud

官方下载的速度很慢,可以使用下面我本地提供的地址,点此捐赠服务器流量支出

12、设置权限

13、安装Nextcloud

访问http://SERVER_NAME,请选择MySQL/MariaDB数据库,默认会在网站根目录下创建一个data目录用来存放数据,该目录可根据情况进行更改,我这里保持默认状态进行安装!

14、修复Nextcloud数据库

在服务器上执行以下命令

如果不执行以上命令,可能会在Nextcloud中出现安全警告,看到以下警告内容!

数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行 "occ db:add-missing-indices" 命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。
在数据表 "oc_calendarobjects_props" 中无法找到索引 "calendarobject_calid_index"。
在数据表 "oc_schedulingobjects" 中无法找到索引 "schedulobj_principuri_index"。

数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。您可以通过命令行手动执行 "occ db:convert-filecache-bigint" 命令以应用挂起的更改。该操作需要当整个实例变为离线状态后执行。查阅相关文档以获得更多详情。
mounts.storage_id
mounts.root_id
mounts.mount_id

15、缓存配置

如果不配置缓存,可能会看到以下警告:内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。

Nextcloud官方提供了几种缓存配置方案,APCu、Memcached及Redis

  • 如果你是小型/私人家庭用途,可以仅使用APCu进行缓存。
  • 如果你是用于公司集群用途,可以使用APCu+redis方式进行缓存。
  • memcached缓存方案,它不适合与事务性文件锁定一起使用(关于事务性文件锁定可以查看官方文档),因为它不存储锁,而且数据可以随时从缓存中消失。

因此官方建议的最佳缓存方案是redis

对于Redis和APCu内存缓存的说明:APCu在本地缓存中比Redis更快。如果您有足够的内存,请使用APCu进行内存缓存,并使用Redis进行文件锁定。如果内存不足,请同时使用Redis。

最佳缓存配置APCu+Redis(推荐)

安装redis及redis模块扩展,默认安装的redis密码为空,建议添加redis密码

编辑config.php配置文件,增加以下内容

纯Redis作为缓存

安装redis及redis模块扩展,默认安装的redis密码为空,建议添加密码

仅使用APCu作为缓存

使用memcached作为缓存

APC用于本地缓存,将memcached作为分布式缓存

至此基于wlnmp一键包安装Nextcloud网盘完成

PS:大文件上传失败,可以更改nginx和php参数限制,参考官方文档