使用nextcloud自建网盘

gkh 发布于 2020-08-30 21141 次阅读


[info]设置的版本是19.1版本不同设置略有差异[/info]
用了许久的vps想自建个网盘平时分享个小文件使用。刚开始选用的是宝塔里可以一键搭建的可道云,但是经过一阵时间的使用后发现由于只是免费版,许多功能无法使用,文件操作方式是直接显示该目录下的所有文件,有利有弊。而且界面ui已经比较老了不太适合目前简洁风。后来尝试换成国人开发的Cloudreve,界面不错而且可以联合aira进行离线下载很不错,但是导入文件做的非常差劲,每次其他文件更新了必须重新手动操作把文件加入他的数据库。用了一阵也没增加什么文件,就会出现文件无法上传的问题了。无奈只能再次转换。这次尝试了完全开源的nextcloud,听说是开发人员对商业化的前版本不满重新开发的,而且有许多插件可以使用。这个倒是可以让我鼓捣一下。于是尝试安装。
大概查阅了一下,有快照版,编译版,还有php安装版。最后选了比较简单的php安装,通过这个链接下载php文件然后使用宝塔建立网站,通过浏览器打开这个文件即可进行安装。根据提示步骤逐步操作,其中记着填写数据库的各项数据,这里注意数据库的路径最好不要在网站文件夹底下,要移出去。我选用的路径是/www/studio/data。但是这里不能直接确定,不然会提示没有读写权限。刚开始以为是644的权限不够于是升级到777然而还是不行就有点懵逼了。查询网上有说关闭selinux的还是不行。于是继续查发现宝塔有个防跨站的措施设置一个网站所能访问的文件路径的权限,在根目录下的.user.ini文件。修改这个文件的路径即可。然后等待初始化即可进入。
进入后先进入设置-概览进行安全性检查。会发现一堆错误这里记录一下我遇到的一些问题。

一、PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(”PATH”) 测试时仅返回空结果.
编辑/www/server/php/73/etc/php-fpm.conf文件,路径中的73请替换为你的php版本,71为7.1,72为7.2,以此类推。
在文件的最后面添加如下代码:

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

二、php模块缺失,直接去宝塔-软件商店-phpx.x版本下开始安装,按图索骥即可。(另外加个apcu)
另外进入网站根目录,打开config文件夹,编辑config.php文件在最后一个逗号前面增加以下代码

  'memcache.local' => '\OC\Memcache\APCu',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'redis' => 
  array(
    'host' => 'localhost',
    'port' => 6379,
  ),
  'memcache.locking' => '\OC\Memcache\Redis',

在php的配置文件中修改一下几行

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

照着数字改就好,没有前后顺序。
三、还有一个修改数据库该位四字节对齐的
按照官网给出的步骤进行操作,
如果出现权限不足是
mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER privilege for this operation'
修改mysql登录设置
vi /etc/my.cnf
在[mysqld]段中加入 skip-grant-tables
保存之后重启mysql服务
systemctl mysqld restart
如果在设置sudo -u www-data php occ maintenance:repair这条命令时出现报错,看清楚数据库的名字修改下列命令
ALTER TABLE `oc_addressbooks`
MODIFY COLUMN `principaluri` varchar(191) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL AFTER `id`,
MODIFY COLUMN `uri` varchar(191) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL AFTER `displayname`;

其他的关于开启https之类的申请ssl证书部署即可,直到出现绿色对勾即配置完成。我看还有博主配置伪静态,上网查询了一下,伪静态的好处在于增加搜索引擎的排名,想了想自己不需要,故没有操作。至此nextcloud配置完成,后期可以增加邮箱(宝塔邮局可以建立自己的域名邮箱但是需要一个面板)以及离线下载等功能。有空再写

此作者没有提供个人介绍。
最后更新于 2020-08-30