说明:现在越来越多云盘都相继宣布关闭,差不多都去用百度云盘了,而我们手上有些比如小姐姐电影之类传上去就会被和谐,于是我们有必要自己搭建个私有云来存这些资源了,也安全,这里推荐NextCloud ,一款继ownCloud 之后,又一个很不错的私有云。uQu免费翻墙网
简介
Nextcloud 是一套用于创建和使用文件托管服务的客户端-服务器软件。它在功能上类似于Dropbox ,虽然Nextcloud 是免费的和开源的,允许任何人在私人服务器上安装和操作它。与Dropbox 等专有服务相反,开放架构允许以应用程序的形式向服务器添加附加功能。uQu免费翻墙网
虽然Nextcloud 作为ownCloud 的衍生版本,在其基础上做了许多改进,但有一些差异。ownCloud 提供了一个开源社区版本,但它们还提供了一个专有的企业版,具有附加功能和支持订阅。相比之下,Nextcloud 是完全开源的。uQu免费翻墙网
截图
.png)
uQu免费翻墙网
更新
【2019年6月28日】
更新教程,替换为宝塔安装,并新增Redis缓存优化方案以提高NextCloud运行速度。
安装
如果不喜欢折腾的,可参考1 分钟就能安装完成的方法:Snap安装教程、Docker安装教程。uQu免费翻墙网
环境要求:PHP 5.6 + 、Mysql 、Nginx 、Redis (非必需)。uQu免费翻墙网
1、安装宝塔uQu免费翻墙网
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
安装完成后,进入面板,点击左侧软件商店,然后安装PHP 5.6+ 、Mysql 、Nginx 、Redis 。uQu免费翻墙网
然后点击左侧软件商店-PHP 设置-安装扩展,安装Redis 模块即可uQu免费翻墙网
接下来点击左侧网站-添加站点,填好域名和Mysql 数据库用户名和密码信息。uQu免费翻墙网
2、上传Nextcloud程序
Nextcloud 程序下载地址→传送门,目前为16.0.1 版本,使用命令:uQu免费翻墙网
cd /www/wwwroot/www.moerats.com
wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
unzip nextcloud-*.zip && rm -rf nextcloud-*.zip index.html
mv nextcloud/* . && rm -rf nextcloud
chown -R www:www ./
3、伪静态设置 点击站点设置-伪静态设置,添加以下代码:uQu免费翻墙网
location / {
rewrite ^ /index.php$request_uri;
}
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
}
4、新增Redis缓存配置 使用宝塔点击左侧文件,找到网站根目录的config/config.php 配置文件,在后面新增以下代码:uQu免费翻墙网
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],
5、安装Nextcloud
.png) 打开网址,选择Mysql 数据库,填上数据库信息,并设置管理员账号和密码后,点击安装即可!到这里属于我们的私有云盘Nextcloud 就搭建好了。uQu免费翻墙网
最后该网盘挺不错的,特别是更新到15.0 版本之后,不过加载速度在国内还是慢点,官方推荐的是用APCu 缓存,相比较Redis 更快,不过博主一般只在小内存上跑,所以就直接使用了Redis 缓存。如果你的内存很大,可以看下APCu 使用文档→传送门,配置也不难。uQu免费翻墙网
https://www.higgs.xyz/archives/6/uQu免费翻墙网
国内的生态环境下存活着无数的毒瘤软件,试问一下,有没有网盘上传 / 下载时被百度云的限速弄的焦头烂额的时候?有没有下载种子进度到了 99.9% 的时候迅雷突然卡死的情况?有没有在视频网站中观看一个视频弹出数个广告的时候?以及最令人气愤的是,很多时候即使支付了相关费用,也仍然享受不到本应享受的服务待遇!uQu免费翻墙网
而今天我所带来的,也不止是只有私人网盘这一个解决办法,而是集成私人云盘、离线下载、娱乐影音的一条龙解决方案:uQu免费翻墙网
uQu免费翻墙网
Nextcloud:uQu免费翻墙网
目前全球最强大的开源云盘软件,说起云盘的话,相信很多人都听过 Owncloud 。而 Nextcloud 就是 Owncloud 主创人员出走创立的新品牌。而 Nextcloud 社区也是非常的活跃,现在就已经开发有 RSS 阅读器、Markdown 编辑器、通讯录、脑图 、日程安排等应用,所以它又不仅仅是一台私人云盘。官网戳这里uQu免费翻墙网
Aria2:uQu免费翻墙网
一款开源、轻量级的多协议命令行下载工具,支持 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink 等协议(这正是大部分软件所不具备的,国内毒瘤除外),拥有众多第三方支持插件,个人认为是目前市面上最好的下载软件。官网戳这里uQu免费翻墙网
AriaNG:uQu免费翻墙网
一个让 Aria2 更容易使用的现代 Web 前端.(由国人创作)官网戳这里uQu免费翻墙网
Plex:uQu免费翻墙网
Plex 是一套媒体播放器及媒体服务器软件,由于 Plex Media Server 和 Plex Media Player 组成,主要功能是存储 + 索引 + 转码 + 在线播放。(这里先再议,我过几天先试用下 Kodi 后再做决定)官网戳这里uQu免费翻墙网
对了,最后注明下,这份 Nextcloud 的搭建教程主要参考自大佬荒岛的博客,不过已经获取了引用权限了嘻嘻uQu免费翻墙网
Ok,开始进入本篇的正题吧:uQu免费翻墙网
—— Nextcloud 搭建教程 ——
如果你 Google 相关搭建教程的话,网上其实能找到一大堆,不过 90% 都是基于 Docker 或者官方的 Snap 一键安装方式,但这些一键包实在是不推荐,且不提无法实时部署到官方的最新版本,这些方式的可维护性也都特别低,我之前就遇到过 Snap 安装之后重启服务器后软件直接崩掉的情形,考虑到稳定对于个人网盘的重要性,个人感觉这种一键包就该直接扔进垃圾堆好了;至于剩下的 10% 的基于 Nginx 或者 Apache 的,大部分都写的相当简略(以至于我怀疑大部分都是瞎写的),1 月份那次我找了不下 20 多份教程才找到一份可以用的,但也是小问题不断,直到我发现了荒岛大佬的这份教程,写的非常棒,而且实际上我是从这份教程中才学会如何正确的配置 Nginx 环境的。uQu免费翻墙网
操作系统选择的是 Debian,其实 Ubuntu 也能照猫画虎了,但我一直用的南琴浪大佬的魔改 BBR 只支持 Debian 和 Centos,Centos 又感觉有些麻烦的。uQu免费翻墙网
— 安装 SSL 证书 —
好了,废话就不多说了,先申请一个 SSL 证书,这里我使用 certbot:uQu免费翻墙网
目前 certbot 支持签发一个叫 buypass 的 SSL 证书,这个证书签一次时长是 6 个月,不用总是担心证书过期了(相应的域名换成你们自己的):uQu免费翻墙网
签发成功之后的证书和私钥路径:uQu免费翻墙网
接着来安装 Openssl,如果给 Nginx 配置上 TLS1.3 的话,可能在某种程度上为其加点速:uQu免费翻墙网
完成之后查看一下 openssl 的版本号,这个版本就是支持 TLS1.3 的了:uQu免费翻墙网
uQu免费翻墙网
— LNMP 环境配置 —
安装 NginxuQu免费翻墙网
启动以及设置 Nginx 的开机启动:uQu免费翻墙网
-
systemctl start nginx
-
systemctl enable nginx
接下来安装 MariaDB:uQu免费翻墙网
完成之后启动并查看一下运行状态,确保是 Active:uQu免费翻墙网
然后执行如下命令开始配置 Mariadb:uQu免费翻墙网
这个向导按照如下配置:uQu免费翻墙网
-
Enter current password for root (enter for none):回车
-
Set root password? [Y/n] Y
-
New password: 设置你的Mariadb数据库root密码
-
Re-enter new password: 重复输入一次密码
-
Remove anonymous users? [Y/n] Y
-
Disallow root login remotely? [Y/n] n
-
Remove test database and access to it? [Y/n] Y
-
Reload privilege tables now? [Y/n] Y
然后重启一遍 Mariadb,使新的设置生效:uQu免费翻墙网
这里配置的这个 Disallow root login remotely,无法生效。应该是个 BUG,无论你是选 y 还是选 n 最后 root 都没有 localhost 的远程访问权限。因为我打算安装一个 phpMyAdmin,如果 localhost 没有远程访问权限的话,phpMyAdmin 无法用 root 用户登录。什么?你问我为什么要装 phpMyAdmin?如果你是老用 Nextcloud 的你就知道到时候你会经常碰到文件 lock 的问题,解决办法只能去 MySQL 里面清表,是用一个图形化方便还是每次都用命令行方便,自行考量。uQu免费翻墙网
所以这里我们得进到 MySQL 的 shell 内:uQu免费翻墙网
依次执行如下语句修复:uQu免费翻墙网
完成之后,再重启一次:uQu免费翻墙网
现在安装 PHP7.3:uQu免费翻墙网
创建一个 wwwroot 目录,用于存放所有的站点文件:uQu免费翻墙网
完成之后现在开始下载 phpMyAdmin 并设置相应的权限:uQu免费翻墙网
-
apt -y install unzip
-
cd /opt/wwwroot
-
wget https://img.higgs.xyz/uploads/big/6c670ee0d40098ec621c72aee4372df7.jpg
-
unzip phpMyAdmin-4.9.1-all-languages.zip
-
mv phpMyAdmin-4.9.1-all-languages phpmyadmin
-
rm -rf phpMyAdmin-4.9.1-all-languages.zip
-
chown -R www-data:www-data /opt/wwwroot/phpmyadmin
-
chmod -R 755 /opt/wwwroot/phpmyadmin
接下来是 Nextcloud 的安装包:uQu免费翻墙网
-
cd /opt/wwwroot
-
wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip
-
unzip nextcloud-17.0.1.zip
-
rm -rf nextcloud-17.0.1.zip
-
chown -R www-data:www-data /opt/wwwroot/nextcloud
-
chmod -R 755 /opt/wwwroot/nextcloud
新建一个用于 phpMyAdmin 的站点配置文件:uQu免费翻墙网
写入:uQu免费翻墙网
-
server {
-
listen 51529;
-
server_name 你的服务器公网IP;
-
-
location / {
-
root /opt/wwwroot/phpmyadmin;
-
index index.html index.htm index.php;
-
}
-
-
location ~ \.php$ {
-
root /opt/wwwroot/phpmyadmin;
-
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
-
fastcgi_index index.php;
-
fastcgi_param SCRIPT_FILENAME /opt/wwwroot/phpmyadmin$fastcgi_script_name;
-
include fastcgi_params;
-
}
-
-
}
注:phpMyAdmin 是一个数据库管理工具,算是一个比较敏感的资源,不应该能够轻松被外网访问到,所以我在这里监听的端口是一个高位端口,你也可以修改为其他的端口,只要端口不冲突就行。当然你也可以设置登陆密码,后面会提及。uQu免费翻墙网
测试无误后重启 Nginx:uQu免费翻墙网
-
nginx -t
-
systemctl restart nginx
通过端口 51529 访问到 phpMyAdmin 登录进去创建一个数据库,注意编码格式为如图所示的:uQu免费翻墙网
uQu免费翻墙网
现在开始新建 Nextcloud 的站点配置文件:uQu免费翻墙网
写入如下配置(相应的域名等信息修改为你自己的):uQu免费翻墙网
-
upstream php-handler {
-
server unix:/run/php/php7.3-fpm.sock;
-
}
-
-
server {
-
listen 80;
-
listen 443 ssl http2;
-
server_name www.你的网站.com;
-
-
client_max_body_size 100000M;
-
if ($server_port !~ 443){
-
rewrite ^(/.*)$ https://$host$1 permanent;
-
}
-
-
-
ssl_certificate /etc/letsencrypt/live/www.你的网站.com/fullchain.pem;
-
ssl_certificate_key /etc/letsencrypt/live/www.你的网站.com/privkey.pem;
-
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
-
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
-
ssl_prefer_server_ciphers on;
-
ssl_session_cache shared:SSL:10m;
-
ssl_session_timeout 10m;
-
error_page 497 https://$host$request_uri;
-
-
-
add_header X-Content-Type-Options nosniff;
-
add_header X-Frame-Options SAMEORIGIN;
-
add_header X-XSS-Protection "1; mode=block";
-
add_header X-Robots-Tag none;
-
add_header X-Download-Options noopen;
-
add_header X-Permitted-Cross-Domain-Policies none;
-
add_header Referrer-Policy no-referrer;
-
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-
fastcgi_hide_header X-Powered-By;
-
-
root /opt/wwwroot/nextcloud/;
-
-
location = /robots.txt {
-
allow all;
-
log_not_found off;
-
access_log off;
-
}
-
-
location = /.well-known/carddav {
-
return 301 $scheme://$host/remote.php/dav;
-
}
-
location = /.well-known/caldav {
-
return 301 $scheme://$host/remote.php/dav;
-
}
-
-
-
gzip on;
-
gzip_vary on;
-
gzip_comp_level 4;
-
gzip_min_length 256;
-
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
-
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
-
-
-
location / {
-
rewrite ^ /index.php$request_uri;
-
}
-
-
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
-
deny all;
-
}
-
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
-
deny all;
-
}
-
-
-
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+)\.php(?:$|\/) {
-
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
-
include fastcgi_params;
-
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-
fastcgi_param PATH_INFO $fastcgi_path_info;
-
fastcgi_param HTTPS on;
-
-
fastcgi_param modHeadersAvailable true;
-
fastcgi_param front_controller_active true;
-
fastcgi_pass php-handler;
-
fastcgi_intercept_errors on;
-
fastcgi_request_buffering off;
-
}
-
-
location ~ ^\/(?:updater|ocs-provider)(?:$|\/) {
-
try_files $uri/ =404;
-
index index.php;
-
}
-
-
location ~ \.(?:css|js|woff2?|svg|gif)$ {
-
try_files $uri /index.php$request_uri;
-
add_header Cache-Control "public, max-age=15778463";
-
add_header X-Content-Type-Options nosniff;
-
add_header X-XSS-Protection "1; mode=block";
-
add_header X-Robots-Tag none;
-
add_header X-Download-Options noopen;
-
add_header X-Permitted-Cross-Domain-Policies none;
-
add_header Referrer-Policy no-referrer;
-
access_log off;
-
}
-
-
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
-
try_files $uri /index.php$request_uri;
-
-
access_log off;
-
}
-
}
完成之后再次测试重启 Nginx:uQu免费翻墙网
-
nginx -t
-
systemctl restart nginx
现在打开你的站点域名应该就可以看到 Nextcloud 的安装界面了,填写相应的信息即可完成安装。uQu免费翻墙网
uQu免费翻墙网
— 优化 Nextcloud 配置 —
现在我们开始修复 Nextcloud 安装完成之后后台提示的一些警告和错误信息:uQu免费翻墙网
首先安装 php-imagick 和 redis/php-redis 扩展:uQu免费翻墙网
php-imagick 用于修复后台提示的:该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。uQu免费翻墙网
redis 和 php-redis 用于配置内存缓存:内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。uQu免费翻墙网
现在编辑 Nextcloud 的配置文件:uQu免费翻墙网
加入如下配置,这里我把 lock 文件锁定的功能也配置为 redis,这是官方推荐的,也是非常重要的,因为在 Nextcloud 同步文件的过程中比较耗费资源的就是这个 lock 锁定:uQu免费翻墙网
-
'memcache.local' => '\OC\Memcache\Redis',
-
'memcache.locking' => '\OC\Memcache\Redis',
-
'redis' => [
-
'host' => 'localhost',
-
'port' => 6379,
-
],
加入位置在最后面,如图所示,注意缩进:uQu免费翻墙网
uQu免费翻墙网
现在编辑 php.ini:uQu免费翻墙网
在 [opcache] 段的末尾加入如下内容:uQu免费翻墙网
-
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
用于解决 Nextcloud 后台提示的:PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini 中使用下列设置。uQu免费翻墙网
接着编辑 php-fpm.conf:uQu免费翻墙网
在文件的末尾加上:uQu免费翻墙网
用于解决 Nextcloud 后台提示的:PHP 的安装似乎不正确,无法访问系统环境变量。getenv (“PATH”) 函数测试返回了一个空值。 请参照安装说明文档 ↗中的 PHP 配置说明查阅您服务器的 PHP 配置信息,特别是在使用 php-fpm 时。uQu免费翻墙网
这些修改都完成之后重启 PHP-FPM,让修改生效:uQu免费翻墙网
最后安装 sudo:uQu免费翻墙网
进入到 nextcloud 的站点根目录:uQu免费翻墙网
执行如下命令:uQu免费翻墙网
用于修复 Nextcloud 后台提示的:数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。您可以通过命令行手动执行 “occ db:convert-filecache-bigint” 命令以应用挂起的更改。该操作需要当整个实例变为离线状态后执行。uQu免费翻墙网
按 y 同意,注意如果你不是全新安装的 Nextcloud,并且本身就已经存储了大量数据的情况下,我建议这个修复不要做,因为要耗费大量时间还可能出错。uQu免费翻墙网
在你做完了上面这些操作之后,再次检查一下,应该全部都通过了:uQu免费翻墙网
uQu免费翻墙网
接下来我们做一些相关的性能调优,首先是 Cron 计划任务,在 Nextcloud 中默认是 AJAX 的模式,这个模式是性能最低下,也最不推荐的,官方推荐的是使用 Linux 自带的 Crontab 来执行,所以这里我们稍作修改。uQu免费翻墙网
执行如下命令以 www-data 用户运行 crontab:uQu免费翻墙网
在文件末尾加入一行(注意站点路径改为你们自己的):uQu免费翻墙网
回到后台修改计划任务方式为 Cron:uQu免费翻墙网
uQu免费翻墙网
接下来是 MySQL 的性能调优,编辑:uQu免费翻墙网
在这个文件内添加如下内容,注意是 mysqld,不是 mysql,你可以在这个文件内把 mysql 这一段删除再加入下面的内容:uQu免费翻墙网
重启 Mariadb:uQu免费翻墙网
最后调整 PHP 的进程数:uQu免费翻墙网
按照官方的推荐应该修改为:uQu免费翻墙网
修改位置如图:uQu免费翻墙网
uQu免费翻墙网
重启 PHP-FPM:uQu免费翻墙网
至此已经完成了全部操作,现在开始享受一个完美的 Nextcloud 网盘啦~uQu免费翻墙网
— Ocdownloader 离线下载 —
如果没有离线下载的话,可能一个网盘就废了一半吧,所以简单介绍下 Nextcloud 的离线下载功能 —Ocdownloader 下载器uQu免费翻墙网
安装插件:uQu免费翻墙网
-
cd /opt/wwwroot/nextcloud/apps
-
wget https://github.com/e-alfred/ocdownloader/releases/download/1.7.4/ocdownloader_1.7.4.tar.gz
-
tar -xzvf ocdownloader_1.7.4.tar.gz
-
rm -rf ocdownloader_1.7.4.tar.gz
-
chown -R www-data:www-data /opt/wwwroot/nextcloud/apps/ocdownloader
-
chmod -R 755 /opt/wwwroot/nextcloud/apps/ocdownloader
一般 Ocdownlaoder 是由 Aria2 驱动的,但配置稍显繁琐,这里介绍一种比较简单的方式 — 使用 Curl 下载,如果有 Aria2 的使用需求可以看后续的更新uQu免费翻墙网
现在访问你的 Nextcloud 后台,启用 ocDownloader(应用界面滑到最下),然后进入设置页面的管理 - 其它设置,将下载器勾选维 cURL 方式,这种下载方式除了 BT 种子之外都是支持的。uQu免费翻墙网
如果想下载 Youtube 的视频,则需要安装 YouTube-dl 插件uQu免费翻墙网
— 补充:OCC 命令 —
最后补充一点 Nextcloud 的 OCC 操作:(用于更新或者扫描文件)uQu免费翻墙网
在站点路径下(例如本文是 /opt/wwwroot/nextcloud/),即可运行 OCC 命令:uQu免费翻墙网
示例如下:uQu免费翻墙网
uQu免费翻墙网
更新命令:uQu免费翻墙网
完成后打开网页如果仍然显示处于维护操作中,输入下列命令解除锁定uQu免费翻墙网
不过还是要提示一下,因为 Nextcloud 有些臃肿,所以一般没事别瞎球升级 23333uQu免费翻墙网
|