正文:
NextCloud云盘程序,一个高自由度、高扩展性、免费的云盘程序!
教程仍然有许多不完善的地方,后续慢慢补齐!也同时欢迎大家补充问题!
环境要求:
服务器系统:Centos 7 64位
环境:安装LNMP / PHP 7.0+ / MySQL 5.5+
推荐使用PHP7.3版本(官方大力支持此版本)
注意事项:MySQL5.5 建议安装内存小于1GB的;MySQL 5.6 建议安装内存大于1GB;MySQL 5.7 建议安装内存大于2GB!
本文章采用NextCloud 15.0.0版本进行搭建,搭建完毕后可以自行升级!
如果配置过CloudFlare的SSL证书的用户请注意:新开站点必须开启SSL证书才可以访问!把以前的证书和密钥复制进去即可!
本教程搭建环境为:LNMP / MySQL 5.7 / PHP 7.3 (其他是宝塔默认选项)
上传NextCloud源码:
官网下载地址:download.nextcloud.com (在server–>releases目录下)
黑科技云下载地址:点击进入 访问密码:HKJBASE001 ——黑科技基地专有云
TIP:如果你不知道在官网下载哪一个文件的话,请直接使用黑科技云所提供的源码!
1.登陆宝塔,点击–>网站–>添加网站–>填写相关信息–>提交–>完成
2.点击–>文件–>进去自己刚刚创建的站点目录下–>删除里面的全部文件–>上传刚刚下载的源码–>解压–>此时会在此目录新出来一个文件夹–>完成
3.点击–>网站–>选择刚刚创建的网站–>设置–>网站目录–>网站目录选择刚刚解压出来源码的根目录–>保存–>完成
4.此时就可以访问刚刚所创建的站点了,输入自己配置的域名即可打开!
5.打开程序,程序要求设置一个账号和密码(自己设置一个),然后点击–>创建数据库–>选择有MySQL的选项–>输入刚刚宝塔里创建数据库的表、用户名和密码–>完成
6.此时即可访问NextCloud了!
配置Nextcloud程序:
1.点击–>设置(齿轮)–>概览–>耐心等待几分钟,程序自动会列出所有问题的–>完成
2.修复问题,先打开宝塔面板,打开–>软件管理–>PHP 7.3(选择自己所用的版本)–>设置–>安装扩展–>安装以下插件:
3.安装完成后,进入–>配置文件–>找到1904行代码附近–>把默认配置删除–>复制如下代码进去–>保存–>完成
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
4.解决内存限制低于512MB。。。问题解决方案:
点击–>PHP 7.3–>设置–>配置修改–>把memory_limit选项值写为:1024MB(512MB以上即可,512MB也行)–>保存–>完成
请忽略PHP版本,图片懒得重新截。照做即可。
5.配置完成PHP后一定要点击–>服务–>重载配置–>重启–>完成
此时刷新NextCloud界面会少一些错误!
安装完成后有些错需要修复
6.打开–>网站–>设置–>伪静态–>把以下代码复制进去–>保存–>完成
location
~ ^/(data|config|.ht|db_structure.xml|README) {
deny all;
}
7.getenv(\”PATH\”) 这个问题的解决方案:
点击–>软件管理–>PHP 7.3–>服务–>停止–>完成
点击–>文件–>进入如下目录:
/www/server/php/73/etc/php-fpm.conf
打开–>php-fpm.conf–>在最后一行添加如下代码:
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
然后点击–>保存–>软件管理–>PHP7.3–>服务–>重启–>完成
8.内存缓存未配置(解决方案)————进入如下目录:
/www/wwwroot/你的域名/nextcloud/config/config.php
在倒数第二行添加如下代码:
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
完成后点击保存即可。
9.解决:您的网页服务器未正确设置以解析/.well-known/……………(俩个错的解决方案)
点击–>网站–>设置–>配置文件–>如图所示加入以下代码即可
rewrite /.well-known/carddav /remote.php/dav permanent; rewrite /.well-known/caldav /remote.php/dav permanent;
完成后点击保存即可。
10.https报错修复,解决方案:
点击–>网站–>设置–>配置文件–>添加如下代码到图片中对应位置即可:
add_header Strict-Transport-Security "max-age=63072000;";
TIP:似乎我配置了CloudFlare的SSL后没出现过这问题,如果你有此问题就修吧,没有就忽略!
11.数据库中的一些列由于进行长整型转换而缺失。。。解决方案:
打开–>SSH–>进入站点目录–>输入如下命令:
sudo -u www php occ db:convert-filecache-bigint sudo -u www php occ files:scan --all
然后刷新NextCloud页面,看看问题是否消失。
12.一些文件没有通过完整性检查。。。解决方案:
点击–>文件–>进入NextCloud目录–>删除user.ini文件–>但似乎并没有解决问题–>更新软件程序后我的故障消失
至此,NextCloud程序全部问题解决完毕!
配置NextCloud定时任务:
官方文档:点击进入
TIP:方案一与方案二效果相同,,但只能选择一种方法使用,二者不可并存!
解决方案一:
1.先去宝塔–>文件–>退出全部目录–>找到home目录–>创建一个以www命名的文件–>打开SSH–>然后执行下面内容(在系统根目录执行):
crontab -u www -e #执行完上面命令后会进入一个界面 */1 * * * * php -f /www/wwwroot/自己的域名/nextcloud/cron.php #上面的命令意思是1分钟执行一次!
此界面的基本操作:
| 按下 i 键 | 进行内容编辑 |
| 按下 ESC 键 | 退出 |
| 输入 :wq 命令 | 保存并退出此界面 |
输入完毕后,可以运行实时监视命令进行监视程序是否运行,命令如下:
tail -f /var/log/cron
正常运行就完成了定时任务的添加,对照网站的基本设置里,–>上次定时任务执行于xxxx判断!
方案二:
打开–>宝塔–>计划任务–>shell脚本–>设置为1分钟一次–>输入以下命令:
sudo -u www php /www/wwwroot/你的站点目录/nextcloud/cron.php
添加成功后点击–>执行–>日志–>看看日志里写的是不是只有如下命令:
★[2019-01-24 12:30:01] Successful
如果有,则证明成功!
补充:
Tip:上述第八个问题问题补充
如果报出服务器内部错误等信息的话,可以尝试此方法:
补充:Redis服务停止后,可能就会引起此问题,我不太确定。23333….
PHP插件补充:gmp、imagemagick、apcu、redis、opcache、fileinfo
8.内存缓存未配置(解决方案)————进入如下目录:
/www/wwwroot/你的域名/nextcloud/config/config.php
在倒数第二行添加如下代码:
'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '127.0.0.1', 'port' => 6379, ],
如图所示:
补充:一些文件没有通过完整性检查问题解决方案:
先上传NextCloud安装一遍,然后删除站点数据文件和数据库后,重新上传NextCloud文件解压并安装,就不会报错啦!(无意间发现的哦,经验总结!!!)
值得注意的事情是,不要把PHP、NGINX等配置程序不要删除卸载。保留更改,然后再此基础上安装。
补充(20210321):
时间过的很快,在最新的NextCloud 21.0.0版本安装好后,会在曾经安装好的版本基础上新增很多新的问题,首先环境要求变成了PHP7.4、MySQL 8.0,当然这样安装时候服务器性能开销也大幅增加了,必须是2核6GB内存起步的服务器,所以升级之前考虑好这些东西,我个人还是不建议经常升级nextcloud的,毕竟每次升级都会新增很多问题,处理起来也是挺麻烦的。
问题一:
您的安装没有设置默认的电话区域。这对验证配置设定中没有国家代码的电话号码而言是必需的。要允许没有国家代码的电话号码,请添加带区域相应的 ISO 3166-1 code ↗ 的“默认_电话_区域”到你的配置文件中。
首先打开以下目录中的文件:
/www/wwwroot/你的域名/nextcloud/config/config.php
在此文件内最后第二行里插入以下代码:
'default_phone_region' => 'CN',
最后保存并退出即可修复。

问题二:
PHP configuration option output_buffering must be disabled
首先打开PHP7.4管理—->配置文件—->搜索 output_buffering (Ctrl+F)—->找到如下代码并注释掉即可.

修改完毕后,重启PHP并重载配置,即可修复。
补充(20220614):
我又来填坑了,现在NextCloud版本号已经更新到了24.0.1了,所以又出现一些新BUG…..
BUG-1:
一些文件没有通过完整性检查。(我的错误提示是说 .user.ini 这个文件)
解决方法是,首先打开NextCloud的官方原生ZIP压缩包,找到这个文件,然后把里面的内容完整的复制替换到你的网站目录里进去一份,我的BUG就解决掉了
mbstring.func_overload=0 always_populate_raw_post_data=-1 default_charset='UTF-8' output_buffering=0
上面是所替换的内容。
BUG-2:
错误提示:.well-known/webfinger 和 .well-known/nodeinfo
解决方法是:写入如下伪静态就修复了
location = /.well-known/webfinger {
return 301 $scheme://$host:$server_port/index.php/.well-known/webfinger;
}
location = /.well-known/nodeinfo {
return 301 $scheme://$host:$server_port/index.php/.well-known/nodeinfo;
}
location
~ ^/(data|config|.ht|db_structure.xml|README) {
deny all;
}
结尾:
至此安装NextCloud云盘已经全部完成了!
NextCloud支持许多插件,可以根据自身需要进行安装,这些插件我就不推荐了。谢谢!
写此教程花了我十几天时间,希望能对各位有所帮助!
如果看了本教程仍然不会搭建的,可以联系站长帮忙搭建!辛苦费准备好就OK。网站下方有组织群!
NextCloud官网:www.nextcloud.com




