【好玩的项目】可能是史上最全的基于宝塔面板(海外版aapanel)的Nextcloud网盘搭建教程! |
您所在的位置:网站首页 › 宝塔面板安装nextcloud › 【好玩的项目】可能是史上最全的基于宝塔面板(海外版aapanel)的Nextcloud网盘搭建教程! |
Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。 今天我们从零开始来搭建一个Nextcloud网盘,搭建其实很简单,所以也会多介绍一些搭建完成之后,安全与设置警告报错信息的解决方法。 优点功能丰富,社区生态丰富遇到问题容易在网上找到解决方案高速(直链下载速度起飞,与服务器带宽有关)私密(自己全权管理所有文件)稳定(不存在服务商关闭网盘服务的问题)实现了PC、iPhone、iPad三端自动同步可以直接编辑云端的文件(代码文件也直接查看编辑)缺点不够轻量,而且比较吃服务器资源(内存等),服务器的硬盘容量通常不大(多为几十G,不适合做仓库盘)后续配置比较复杂私有云盘需要自己维护(出现各种问题就很糟心)之前搭建的网盘:告别百度网盘,安装自己的专属网盘——Cloudreve,不限制下载速度! 1. 项目展示GitHub项目地址:https://github.com/nextcloud Demo:https://try.nextcloud.com 2. 搭建环境服务器:腾讯香港轻量应用服务器24元/月VPS一台(最好是选非大陆的服务器)(购买链接)系统:Debian 10(DD脚本 非必需DD用原来的系统也OK)域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)【非必需】安装好Docker、Docker-compose(相关脚本)安装好宝塔面板海外版本aapanel,并安装好Nginx(安装地址)【非必需】安装好Nginx Proxy Manager(相关教程)3. 搭建视频YouTube:待补充 哔哩哔哩:待补充(心态发生了问题,自己已经安装好了,演示视频的时候安装一直提示“内部服务器错误”,搜索了很多内容,依旧无法解决,玄学 =,=) 4. 搭建方式参考——新买了一台服务器“必须”要做的6件小事: apt update -y # 升级packagesapt install wget #如果出现 wget:command not found,可以用这个命令安装Debian宝塔海外版安装命令: wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh forum遇到访问不了的情况,请在宝塔面板的防火墙和服务商的后台防火墙里打开对应端口。 在选择安装LNMP过程中,可以先去把域名解析到服务器上先~ 等待半小时左右,LNMP基本都能安装完成。 Nextcloud官方下载地址:https://nextcloud.com/install/#instructions-server ![]() Docker搭建参考:https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/insecure/postgres/fpm/docker-compose.yml 不是很推荐用Docker搭建,因为Nextcloud后续配置会 ![]() 远程下载:https://download.nextcloud.com/server/releases/nextcloud-23.0.2.zip 修改权限:宝塔面板——文件——找到/www/wwwroot路径,将Nextcloud整个网站目录的权限由755修改为775(不设置打开网址会报“内部服务器错误”的问题) 6. 安全与设置警告排错(重点,适用于宝塔面板)6.1 Nextcloud性能优化6.1.1 使用APCu和Redis内存缓存通过使用内存作为数据缓存的话,可以提高Nextcloud的性能,以加快访问速度,并且Nextcloud支持多个内存缓存后端,如APCu、Redis,其他的缓存后端配置请参阅:Nextcloud内存缓存优化的官方文档 [1] 安装PHP的APCu+Redis扩展 在宝塔面板的首页处,找到PHP并点开,在安装扩展处安装redis和apcu。 [2] 配置APCu和Redis 安装完毕后,打开/www/wwwroot/域名/config/config.php,在其尾部添加以下代码: 'memcache.local' => '\OC\Memcache\APCu','memcache.distributed' => '\OC\Memcache\Redis','redis' => [ 'host' => '127.0.0.1', 'port' => 6379,],'memcache.locking' => '\OC\Memcache\Redis',6.1.2 开启PHP OPcache通过安装OPcache扩展,也可以在一定程度上提升PHP的性能。 在宝塔面板的首页处,找到PHP并点开,在安装扩展处安装OPcache。 6.1.3 官方推荐的PHP扩展官方推荐的其他PHP扩展:fileinfo,gmp,imagick,安装完上述扩展及设置后,重载PHP配置并重启PHP服务。 咕咕在自己的Netcup上出现了gmp扩展模块安装不上的情况,参考了宝塔论坛的教程, 该问题是因为操作系统未安装libgmp3-dev软件包导致,建议宝塔的自动安装脚本修复该问题,自动检测这个软件包的状态和自动安装该软件包。 具体命令是: apt install libgmp3-dev -y之后再到php这边点击gmp模块安装,就能安装成功了。 6.1.4 文件扫描有时候,我们直接使用Linux命令,如:wget、curl等命令直接下载文件到服务器内Nextcloud里的用户目录,但是用户登录Nextcloud却并没有显示,怎么办?我们可以使用PHP配合Nextcloud命令,来自动扫描文件: sudo -u www php occ files:scan --allCopy其中: 命令使用需要在Nextcloud根目录下需要使用sudo -u命令提权到www用户(即:Nginx用户)扫描文件夹 6.1.5 后台任务优化Nextcloud的后台任务,默认是使用Ajax异步方法进行后台任务,即在每次访问Nextcloud任意页面都会通过AJAX的方式发起定时任务的执行请求,这种方式如果没有自己的独立服务器或者VPS的话还是比较方便省心的,但官方推荐使用Cron,和Nginx或Apache等WEB服务独立开来,互不影响: 后台任务 为了使用Cron,我们需要用到Linux的定时任务。SSH连接服务器后,输入: crontab -e创建一个Cron任务,并使用正则表达式: */5 * * * * sudo -u www php /PathToNextcloud/cron.php保存即可。 当然,如果你用宝塔面板,也可以直接使用宝塔自带的控制面板,设置定时任务: 宝塔设置定时任务 6.2 安全及设置警告问题排查打开Nextcloud的设置——概览——安全及设置警告,可以看到检测出的一些问题,下面我们将对其逐一排查解决。 [1] PHP 的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”) 函数测试返回了一个空值。 宝塔面板——首页的PHP——FPM配置文件,在其尾部添加一行: env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin注:该配置文件的位置为/www/server/php/php版本号/etc/php-fpm.conf [2] 您的网页服务器未正确设置以解析“/.well-known/caldav”、“/.well-known/carddav、/.well-known/webfinger、/.well-known/nodeinfo” 宝塔面板——网站——设置——配置文件,在server里添加如下两行: rewrite /.well-known/carddav /remote.php/dav permanent;rewrite /.well-known/caldav /remote.php/dav permanent;打开伪静态,加入这段: 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; }之后保存即可。 [3] 数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。 Step1:临时修改一下config.php的权限,然后切换到occ的目录下(即cd /www/wwwroot/域名) Step2:执行以下命令即可: sudo -u www php occ db:convert-filecache-bigint[4] HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议启用HSTS 宝塔面板—— 网站——文件——找到/www/server/panel/vhost/nginx/yourdomain.conf文件——在末尾的‘}’前加入如下代码: add_header Strict-Transport-Security "max-age=15768000;preload;";[5] PHP configuration option output_buffering must be disabled 宝塔面板——首页的PHP——配置文件——搜索“output_buffering”,在默认配置output_buffering = 4096前加个分号(php的注释) ;output_buffering = 40966.3 Nextcloud常见问题6.3.1 解决大文件上传问题Step1:修改php.ini上传文件大小限制 宝塔面板——文件——打开/www/server/php/PHP版本号/etc路径——打开php.ini文件,搜索修改以下配置: max_execution_time = 0 #默认是300秒,改为0,表示没有上传时间限制post_max_size = 10800M #设定POST数据所允许的最大大小upload_max_filesize = 10240M #表示所上传的文件的最大大小Step2:修改nginx.conf的文件大小限制 宝塔面板——文件——打开/www/server/nginx/conf/路径——打开nginx.conf,修改的内容如下: client_max_body_size 10240M;Step3:修改连接超时时间限制(同步大文件时可能会超过默认的60s连接超时时间,导致连接关闭。报错为:Connection closed) keepalive_timeout 3600;Step4:重启php和nginx服务,然后进行测试,大文件可以成功上传了。 6.3.2 解决同步时423错误的问题问题描述:使用Nextcloud同步资料时,意外遇到了423错误,文件被锁定,怎么都传不上去。 解决办法:宝塔面板——文件——打开/www/wwwroot/域名/config路径,找到config.php文件,添加一句'filelocking.enabled' => false,即可。 6.3.3 Nextcloud退出维护模式问题描述:升级NextCloud后一直处于维护状态,无法自动解除。 解决办法:宝塔面板——文件——打开/www/wwwroot/域名/config路径,找到config.php文件,把'maintenance' => true改为 false,或者直接删掉这句即可。 7. Nextcloud基本使用7.1 Nextcloud基本设置Chrome打开https://域名地址,进去之后点击头像下的设置,根据自己的习惯进行配置即可。 同步冲突处理:使用Everything搜索conflicted copy文件并删除(Everything可以添加书签) 7.2 Nextcloud客户端全平台客户端下载:Nextcloud官网传送门(如果服务器端太老,可能会用不了新版的客户端,下载适合的版本即可) 客户端的使用和配置 Win端:网页端授权登录,安装exe后设置开机自启、文件夹同步。iOS、iPadOS端:App Store直接搜索下载Nextcloud即可(点击下面的“改用旧的登录方式”,输入服务器地址、用户名、密码)7.3 Nextcloud的WebDAV功能NextCloud 支持 WebDAV 协议,用户可以完全通过 WebDAV 来连接并同步文件。虽然官方还是推荐 使用客户端来同步文件,不过如果要临时访问 NextCloud 上的文件,使用 WebDAV 方式还是很便捷的。 打开Nextcloud网页登录后,单击设置,复制WebDAV下的URL地址: 使用WebDAV连接时的用户名和密码就是登录Nextcloud的用户名和密码。 注:可以用WebDAV功能给一些第三方软件实现全平台同步的功能。 8. 结尾祝大家用得开心,有问题可以去GitHub提Issues,也可以在评论区互相交流探讨。 咕咕上期还搭建了一个网盘直链程序,相比Nextcloud,它搭建更加容易(docker一条命令搞定),升级也非常简单,支持的网盘也更多,UI也非常漂亮。 相关代码都在博客里:https://blog.laoda.de/archives/docker-install-alist 参考资料好朋友的Mintimate的博客:https://mintimate.cn/2021/02/20/deployNextcloud/ Nextcloud 21 使用笔记 - 系统要求及警告排除:https://www.cnswiz.com/3376.html VPS搭建Nextcloud私有云盘 | Eulaの小破站:https://www.eula.club/VPS%E6%90%AD%E5%BB%BANextcloud%E7%A7%81%E6%9C%89%E4%BA%91%E7%9B%98.html 附:1、内部错误和警告的解决方法一些常见Nextcloud内部错误解决方法,建议使用浏览器搜索功能进行定位 1)您的安装没有设置默认的电话区域。这对验证配置设定中没有国家代码的电话号码而言是必需的。要允许没有国家代码的电话号码,请添加带区域相应的 ISO 3166-1 code ↗ 的“默认_电话_区域”到你的配置文件中。 在网站配置文件(如:/www/wwwroot/nextcloud.laoda.de/config/config.php)中添加如下代码后保存即可: 'default_phone_region' => 'CN',2)通过HTTP访问网站不安全。强烈建议您将服务器设置成要求使用HTTPS协议 这个问题最好解决,同时也可能是无法解决问题:服务器绑定域名,并配置SSL证书,域名解析到服务器即可但是:国内服务器需要绑定备案的域名,若无备案域名,则只能使用IP访问Nextcloud,那么该条警告无法去除。 3)一些文件没有通过完整性检查. 了解如何解决该问题请查看我们的文档. (无效的文件列表… / 重新扫描…) 无效文件 你的无效的文件列表和我的可能不一样,但是方法是一样的,打开(无效的文件列表… / 重新扫描…)这个链接: 4)PHP configuration option output_buffering must be disabled 其实这个很好解决,PHP默认是有4096字节缓冲的。但是Nextcloud希望你关闭。如果你是自己安装的PHP,在你安装PHP的路径下,打开PHP配置文件(php.ini),将要 output_buffering = 4096Copy改为: ; output_buffering = 4096Copy;为PHP的注释符号如果你是根据上文,使用宝塔安装配置的php,更简单了。在宝塔面板,依次打开:软件商店-已安装-PHP7.3设置-配置文件查找文本output_buffering,并在前面加上;注释: 加上注释 之后,可能需要重载PHP配置或者重启PHP服务才能生效。再次查看Nextcloud概述,就没有这条警告了。 5)您的数据目录和文件可以从互联网直接访问。.htaccess文件不起作用。强烈建议您配置Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web服务器文档根目录。 这个其实是Nginx的问题,为了进一步提升安全性,我们打开Nginx网站设置: 宝塔内网站Nginx设置 在location内的禁止访问目录内,加入data目录。 6)PHP 的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”) 函数测试返回了一个空值 这个处理方法很简单;如果你是自己安装配置的PHP,一般不会出现这个问题,当时如果是使用宝塔安装,一般都会有这个问题,解决方法很简单:在宝塔面板,依次打开:软件商店-已安装-PHP7.3设置-FPM配置文件在文末添加: env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/binCopy添加配置 之后,可能需要重载PHP配置或者重启PHP服务才能生效。 7)您的网页服务器未正确设置以解析。更多信息请参见文档 这个处理方法很简单,简单地说,设置Nginx即可。如果你的Nginx是宝塔安装的,那么打开网站的Nginx: 打开Nginx设置 之后追加以下内容: rewrite /.well-known/carddav /remote.php/dav permanent;rewrite /.well-known/caldav /remote.php/dav permanent;Copy追加内容 打开伪静态,加入这段: 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; }之后保存即可 2、PHP模块问题PHP模块问题包括: 未找到PHP的”fileinfo”模块。强烈推荐启用该模块,从而获得更好的MIME类型探测结果。内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。PHP的OPcache模块未载入。推荐开启获得更好的性能。PHP模块问题 安装如下模块: 咕咕在自己的Netcup上出现了gmp扩展模块安装不上的情况,参考了宝塔论坛的教程, 该问题是因为操作系统未安装libgmp3-dev软件包导致,建议宝塔的自动安装脚本修复该问题,自动检测这个软件包的状态和自动安装该软件包。 具体命令是: apt install libgmp3-dev -y之后再到php这边点击gmp模块安装,就能安装成功了。 同时,因为使用Redis作为缓冲,所以我们需要打开Nextcloud的配置文件,追加以下内容: 'memcache.local' => '\OC\Memcache\Redis','redis' => array( 'host' => 'localhost', 'port' => 6379, ),1、数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复 这个因为我之前修复了,所以我的警告和错误列表没有提示。如果你有报这条警告,直接运行: php occ db:add-missing-indicesCopy但是注意文件夹所属的用户组,比如:你Terminal上使用的是root或者Ubuntu用户,那么就需要用sudo提权 sudo -u php occ db:add-missing-indices |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |