转自http://www.cnblogs.com/kevingrace/p/8343060.html

同时参考:https://blog.csdn.net/qq_36731677/article/details/79501993

搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典。而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储。初一看觉得“口气”不小,刚推出来就重新“定义”了Cloud,真正试用过后就由衷地赞同这个Nextcloud:它是个人云存储服务的绝佳选择。可以说Nextcloud 是一款自由 (开源) 的类 Dropbox 软件,由 ownCloud 分支演化形成。它使用 PHP 和 JavaScript 编写,支持多种数据库系统,比如 MySQL/MariaDB、PostgreSQL、Oracle 数据库和 SQLite。它可以使你的桌面系统和云服务器中的文件保持同步,Nextcloud 为 Windows、Linux、Mac、安卓以及苹果手机都提供了客户端支持。同时,Nextcloud 也并非只是 Dropbox 的克隆,它还提供了很多附加特性,如日历、联系人、计划任务以及流媒体 Ampache。

与ownCloud相比,Nextcloud的功能丝毫没有减弱,甚至由于可以安装云存储服务应用,自制性更强,也更符合用户的需求。Nextcloud官网的帮助文档写得相当地详细,几乎任何关于Nextcloud的问题都可以找到答案,这说明Nextcloud开发团队确实比ownCloud更加优秀。

一开始以为Nextcloud只是一个网盘云存储,后来看到Nextcloud内置了Office文档、图片相册、日历联系人、两步验证、文件管理、RSS阅读等丰富的应用,我发现Nextcloud已经仅仅可以用作个人或者团队存储与共享,还可以打造成为一个个人办公平台,几乎相当于一个个人的Dropbox了。

以下内容将介绍如何在 CentOS 7 服务器中安装和配置最新版本的 Nextcloud 12,并且会通过 Nginx 和 PHP7-FPM 来运行 Nextcloud,同时使用 MariaDB 做为数据库系统。Nextcloud云盘环境部署后,可以实现web网页端、手机移动端和桌面客户端三者数据同步,其中桌面客户端可以在本地设置一个文件夹,用于同步数据,这样也就相当于在本地备份了数据。同时客户端只要设置开机启动,即只要是启动状态中,它和网页端的数据就是自动同步的。废话不多说了,直接看部署笔记:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
部署机器的系统是Centos7.4版本
[root@nextcloud-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
   
一、安装并配置Nginx和php-fpm
================================================================
将自带的epel、nginx、php全部卸载(rpm -e ... --nodeps)
[root@nextcloud-server ~]# rpm -qa|grep php
[root@nextcloud-server ~]# rpm -qa|grep php-common
[root@nextcloud-server ~]# rpm -qa|grep nginx
===============================================================
CentOS默认的yum源中并不包含Nginx和php-fpm,首先要为CentOS添加epel源:
[root@nextcloud-server ~]# yum -y install epel-release
[root@nextcloud-server ~]# yum -y install nginx
   
需要再添加一个yum源来安装php-fpm,可以使用webtatic(这个yum源对国内网络来说恐怕有些慢,当然你也可以选择其它的yum源)
[root@nextcloud-server ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
 
安装php7-fpm和一些其它的必要的组件
[root@nextcloud-server ~]# yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json php70w-pecl-apcu php70w-pecl-apcu-devel
 
完成后,检查一下php-fpm是否已正常安装
[root@nextcloud-server ~]# php -v
PHP 7.0.25 (cli) (built: Oct 29 2017 13:43:03) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
   
配置php-fpm
[root@nextcloud-server ~]# vim /etc/php-fpm.d/www.conf
.....
user = nginx                                   //将用户和组都改为nginx
group = nginx
.....
listen = 127.0.0.1:9000                        //php-fpm所监听的端口为9000
......
env[HOSTNAME] = $HOSTNAME                     //去掉下面几行注释
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
   
/var/lib目录下为session路径创建一个新的文件夹,并将用户名和组设为nginx
[root@nextcloud-server ~]# mkdir -p /var/lib/php/session
[root@nextcloud-server ~]# chown nginx:nginx -R /var/lib/php/session/
[root@nextcloud-server ~]# ll -d /var/lib/php/session/
drwxr-xr-x. 2 nginx nginx 4096 1月  25 09:47 /var/lib/php/session/
   
启动Nginx和php-fpm服务,并添加开机启动
[root@nextcloud-server ~]# systemctl start php-fpm
[root@nextcloud-server ~]# systemctl start nginx
[root@nextcloud-server ~]# systemctl enable php-fpm
[root@nextcloud-server ~]# systemctl enable nginx
   
二、安装并配置MariaDB
使用MaraiDB作为Nextcloud数据库。yum安装MaraiDB服务
[root@nextcloud-server ~]# yum -y install mariadb mariadb-server
   
启动MariaDB服务并添加开机启动
[root@nextcloud-server ~]# systemctl start mariadb
[root@nextcloud-server ~]# systemctl enable mariadb
   
接下来设置MariaDB的root密码
[root@nextcloud-server ~]# mysql_secure_installation        //按照提示设置密码,首先会询问当前密码,密码默认为空,直接回车即可
Enter current password for root (enter for none):          //直接回车
Set root password? [Y/n] Y
New password:                                              //输入新密码
Re-enter new password:                                     //再次输入新密码
    
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
==============================================================================================
或者采用另一种修改密码的方式:跳过授权表
1)在/etc/my.cnf文件里添加"skip-grant-tables"
2)重启mariadb服务
3)无密码登陆mariadb,然后重置mysql密码
MariaDB [(none)]> update mysql.user set password=password("kevin@123") where user="root";
4)去掉/etc/my.cnf文件里的"skip-grant-tables"内容
5)重启mariadb服务
6)这样就可以使用上面重置的新密码kevin@123登陆mariadb了
==============================================================================================
   
设置完MariaDB的密码后,使用命令行登录MariaDB,并为Nextcloud创建相应的用户和数据库。
例如数据库为nextcloud_db,用户为nextclouduser,密码为nextcloudpasswd:
[root@nextcloud-server ~]# mysql -p
......
MariaDB [(none)]> create database nextcloud_db;          
MariaDB [(none)]> create user nextclouduser@localhost identified by 'nextcloudpasswd';
MariaDB [(none)]> grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'nextcloudpasswd';
MariaDB [(none)]> flush privileges;
   
三、为Nextcloud生成自签名SSL证书
为SSL证书创建一个新的文件夹:
[root@nextcloud-server ~]# cd /etc/nginx/cert/
[root@nextcloud-server cert]# openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/nextcloud.crt -keyout /etc/nginx/cert/nextcloud.key
.....
Country Name (2 letter code) [XX]:cn                                           //国家
State or Province Name (full name) []:beijing                                  //省份
Locality Name (eg, city) [Default City]:beijing                                //地区名字
Organization Name (eg, company) [Default Company Ltd]:kevin                    //公司名
Organizational Unit Name (eg, section) []:Technology                           //部门
Common Name (eg, your name or your server's hostname) []:kevin                 //CA主机名
Email Address []:kevin@wangshibo.cn                                                 
   
然后将证书文件的权限设置为660
[root@nextcloud-server cert]# chmod 700 /etc/nginx/cert
[root@nextcloud-server cert]# chmod 600 /etc/nginx/cert/*
   
四、下载并安装Nextcloud
[root@nextcloud-server ~]# yum -y install wget unzip
[root@nextcloud-server ~]# cd /usr/local/src/
[root@nextcloud-server src]# wget https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
[root@nextcloud-server src]# unzip nextcloud-12.0.4.zip
[root@nextcloud-server src]# ls
nextcloud nextcloud-12.0.4.zip
[root@nextcloud-server src]# mv nextcloud /usr/share/nginx/html/
   
进入Nginx的root目录,并为Nextcloud创建data目录,将Nextcloud的用户和组修改为nginx
[root@nextcloud-server src]# cd /usr/share/nginx/html/
[root@nextcloud-server html]# mkdir -p nextcloud/data/
[root@nextcloud-server html]# chown nginx:nginx -R nextcloud/
[root@nextcloud-server html]# ll -d nextcloud
drwxr-xr-x. 15 nginx nginx 4096 1月  24 17:04 nextcloud
   
五、设置Nginx虚拟主机
进入Nginx的虚拟主机配置文件所在目录并创建一个新的虚拟主机配置(记得修改两个server_name为自己的域名):
[root@nextcloud-server ~]# cd /etc/nginx/conf.d/
[root@nextcloud-server conf.d]# vim nextcloud.conf
upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
}
    
server {
    listen 80;
    server_name nextcloud.kevin-inc.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}
    
server {
    listen 443 ssl;
    server_name nextcloud.kevin-inc.com;
    
    ssl_certificate /etc/nginx/cert/nextcloud.crt;
    ssl_certificate_key /etc/nginx/cert/nextcloud.key;
    
    # Add headers to serve security related headers
    # Before enabling Strict-Transport-Security headers please read into this
    # topic first.
    add_header Strict-Transport-Security "max-age=15768000;
    includeSubDomains; preload;";
    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;
    
    # Path to the root of your installation
    root /usr/share/nginx/html/nextcloud/;
    
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
    
    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
    # last;
    
    location = /.well-known/carddav {
      return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
      return 301 $scheme://$host/remote.php/dav;
    }
    
    # set max upload size
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;
    
    # Disable gzip to avoid the removal of the ETag header
    gzip off;
    
    # Uncomment if your server is build with the ngx_pagespeed module
    # This module is currently not supported.
    #pagespeed off;
    
    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;
    
    location / {
        rewrite ^ /index.php$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/.+|core/templates/40[34])\.php(?:$|/) {
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        #Avoid sending the security headers twice
        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;
    }
    
    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Add headers to serve security related headers (It is intended to
        # have those duplicated to the ones above)
        # Before enabling Strict-Transport-Security headers please read into
        # this topic first.
        add_header Strict-Transport-Security "max-age=15768000;includeSubDomains; preload;";
        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;
        # Optional: Don't log access to assets
        access_log off;
    }
    
    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
    }
}
   
接下来测试以下配置文件是否有错误,确保没有问题后重启Nginx服务。
[root@nextcloud-server conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nextcloud-server conf.d]# systemctl restart nginx
   
六、为Nextcloud设置Firewalld防火墙和SELinux
可以选择关闭Firewalld和SELinux
[root@nextcloud-server ~]# systemctl stop firewalld
[root@nextcloud-server ~]# systemctl disable firewalld
[root@nextcloud-server ~]# setenforce 0
[root@nextcloud-server ~]# getenforce
disable
[root@nextcloud-server ~]# cat /etc/sysconfig/selinux
......
SELINUX=disabled
   
如果打开了防火墙,则需要设置Firewalld和SELinux
首先需要安装SElinux管理工具policycoreutils-python
[root@nextcloud-server ~]# yum -y install policycoreutils-python
   
接着设置SELinux
[root@nextcloud-server ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/nextcloud/data(/.*)?'
[root@nextcloud-server ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/nextcloud/config(/.*)?'
[root@nextcloud-server ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/nextcloud/apps(/.*)?'
[root@nextcloud-server ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/nextcloud/assets(/.*)?'
[root@nextcloud-server ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/nextcloud/.htaccess'
[root@nextcloud-server ~]# semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/nextcloud/.user.ini'
[root@nextcloud-server ~]# restorecon -Rv '/usr/share/nginx/html/nextcloud/'
   
接下来设置Firewlld防火墙,为Nextcloud开放http和https两个端口
[root@nextcloud-server ~]# systemctl start firewalld
[root@nextcloud-server ~]# systemctl enable firewalld
[root@nextcloud-server ~]# firewall-cmd --permanent --add-service=http
[root@nextcloud-server ~]# firewall-cmd --permanent --add-service=https
[root@nextcloud-server ~]# firewall-cmd --reload
   
七、安装Nextcloud
解析上面nginx中配置的域名nextcloud.kevin-inc.com,访问访问http://nextcloud.kevin-inc.com进行Nextcloud界面安装(访问http域名会自动跳转到https,安装提示安装即可!)

==================NextCloud安全与性能优化==================

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
这种提示一般在NextCloud的服务器管理中可以看到,建议缓存类的直接安装一个即可,安装多了也没有什么用。
为了Nextcloud服务的安全和性能, 请将所有设置配置正确.
PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.
HTTP 请求头 “Strict-Transport-Security” 没有配置为至少 “15552000” 秒. 出于增强安全性考虑, 推荐按照安全提示中的说明启用HSTS.
内存缓存未配置. 如果可用, 需要配置 memcache 以增强性能.
PHP 的组件 OPcache 没有正确配置. 为了提供更好的性能, 我们建议在php.ini文件中使用下列设置:
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添加Memcached缓存=============

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
修改nextcloud程序目录下的config目录中的config.php文件,在配置文件中添加如下,这个是多个Memcached实例,单个自己改:
 
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
     array('localhost', 11211),
     array('server1.example.com', 11211),
     array('server2.example.com', 11211),
     ),
==================================================================
依据本篇如上安装记录,添加memcache缓存的方法(本机单机安装memcahced)
[root@nextcloud src]# yum -y install memcached
[root@nextcloud src]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
[root@nextcloud src]# systemctl start memcached
[root@nextcloud src]# systemctl enable memcached
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@nextcloud src]# lsof -i:11211
COMMAND      PID      USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
memcached 146026 memcached   26u  IPv4 3320544      0t0  TCP *:memcache (LISTEN)
memcached 146026 memcached   27u  IPv6 3320545      0t0  TCP *:memcache (LISTEN)
memcached 146026 memcached   28u  IPv4 3320549      0t0  UDP *:memcache
memcached 146026 memcached   29u  IPv6 3320550      0t0  UDP *:memcache
修改nextcloud的config配置文件,添加memcached缓存配置
[root@nextcloud config]# pwd
/usr/share/nginx/html/nextcloud/config
[root@nextcloud config]# cp config.php config.php.bak
[root@nextcloud config]# vim config.php
......
  'memcache.local' => '\OC\Memcache\APCu',
  'memcache.distributed' => '\OC\Memcache\Memcached',
  'memcached_servers' => array(
   array('localhost', 11211),
     ),

==================NextCloud添加Redis缓存==================

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在nextcloud的config配置文件中添加如下,这个是通过TCP连接的:
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),
还有性能更好的UNIX连接:
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/redis/redis.sock',
     'port' => 0,
     'dbindex' => 0,
     'password' => 'secret',
     'timeout' => 1.5,
      ),
同时,官方还推荐加入如下,来用于存储文件锁:
'memcache.locking' => '\OC\Memcache\Redis',

========Nextcloud的邮件发信设置========
Nextcloud发送邮件信息的前提:每个用户(包括管理员)都要事先设置好自己的邮箱地址!
1)使用管理员账号登陆Nextcloud。点击右上角的设置图标里的”管理“-“其他设置

前提是管理员(admin)要事先设置好自己的邮箱地址。如下设置好邮箱地址后,按Enter键后就会显示一个”对勾”

满足条件:

1
2
3
1)在admin登陆后的"管理"->"其他设置"的后台里配置好"电子邮件服务器"(配置后可以测试发送邮件是否成功,前提是admin也要事先配置好自己的邮箱地址)
2)各用户创建并登陆后,要记得配置各自的邮箱地址。比如wangshibo用户登录后,配置自己的邮箱地址
3)在分享文件的时候,只要使用对方账号名进行分享,对方邮箱里就会收到一封分享信息的邮件!

如下,在admin账号下分享Nextcloud Manual.pdf这个文件给wangshibo用户

然后登陆wangshibo用户,就会发现Nextcloud Manual.pdf文件已经分享过来了

登陆wangshibo账号配置的邮箱,就会发现有上面分享的邮件信

也可以在文件来源方取消分享

==========云盘上传文件大小限制==============
nextcloud上传文件大小的自身限制为512M,如果要想调整这个大小,操作方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1)修改php.ini上传文件大小限制
[root@nextcloud ~]# vim /etc/php.ini
......
max_execution_time = 0    #默认是30秒,改为0,表示没有限制
......
post_max_size = 10800M    #设定 POST 数据所允许的最大大小,如果POST数据尺寸大于post_max_size $_POST 和 $_FILES superglobals 便会为空.
......
upload_max_filesize = 10240M   #表示所上传的文件的最大大小
#另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
2)修改nginx.conf
[root@nextcloud ~]# vim /etc/nginx/conf.d/nextcloud.conf
.....
client_max_body_size 10240M;
3)重启php和nginx服务
[root@nextcloud ~]# systemctl restart php-fpm
[root@nextcloud ~]# systemctl restart nginx

==========云盘创建新用户==============
碰到一个问题:在admin管理员登录nextclod,点击右上角的”用户”,创建新用户时候,点击”创建”无反应,即无法在web界面里创建新用户!
此时可以去数据库中创建新用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[root@nextcloud ~]# mysql -pnextcloud@123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 53445
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+----------------------+
| Database             |
+----------------------+
| information_schema   |
| binlog               |
| mysql                |
#mysql50#mysql.mysql |
| nextcloud_db         |
| performance_schema   |
+----------------------+
6 rows in set (0.00 sec)
MariaDB [(none)]> use nextcloud_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [nextcloud_db]> select * from oc_users;
+--------------+---------------------------+----------------------------------------------------------------+
| uid          | displayname               | password                                                       |
+--------------+---------------------------+----------------------------------------------------------------+
| admin        | NULL                      | 1|$2y$10$EeJacmgPRJW1VWcJVyEtA.u37fjWh3YRLvSKN1fxtdYDxRUdM4pSu |
| kevin        | 信息科技部-kevin          | 1|$2y$10$GA18mMkIyZ58eDvE/e6eMuQMJQyWP7BgwyhymuUpykDgWLKQdFotC |
| grace        | 信息科技部-grace          | 1|$2y$10$eCsuuK.ZrWx7qGrMKi88l.myL6GAj33TYtJ9x288SWq7qx25xiFN2 |
添加新用户"wangshibo",密码为"wangshibo@123"
MariaDB [nextcloud_db]> insert into oc_users(uid,password) valuses("wangshibo","wangshibo@123");
再次查看:
MariaDB [nextcloud_db]> select * from oc_users;
+--------------+---------------------------+----------------------------------------------------------------+
| uid          | displayname               | password                                                       |
+--------------+---------------------------+----------------------------------------------------------------+
| admin        | NULL                      | 1|$2y$10$EeJacmgPRJW1VWcJVyEtA.u37fjWh3YRLvSKN1fxtdYDxRUdM4pSu |
| kevin        | 信息科技部-kevin          | 1|$2y$10$GA18mMkIyZ58eDvE/e6eMuQMJQyWP7BgwyhymuUpykDgWLKQdFotC |
| grace        | 信息科技部-grace          | 1|$2y$10$eCsuuK.ZrWx7qGrMKi88l.myL6GAj33TYtJ9x288SWq7qx25xiFN2 |
| grace        | NULL                      | wangshibo@123                                                  |
发现在数据库中创建的新用户的密码是明文保存的。
接着用admin管理员登录nextcloud,点击右上角"用户",就能看到上面在数据库中新创建的wangshibo用户了,然后在这里重置密码!
(重置密码时,输入新密码,然后按"Enter"键回车即可),最后确保用新重置的密码登录wangshibo账号的云盘。
wangshibo账号登录成功后,再登录数据库发现,该用户的密码就会密文保存了!
========================================================================
创建用户组的正确方法:
点击右上角"用户",在"分组"->"添加分组"
也可以登录数据库里创建:
MariaDB [nextcloud_db]> select * from oc_groups;
MariaDB [nextcloud_db]> insert into oc_groups values("运维组");
可以将新用户分组到对应的组内,也可以禁用或删除用户。
点击左下角的"设置",可以显示用户的存储目录,邮件地址等。

图片 1

yuanwendizhi:https://www.logcg.com/archives/2007.html

 

优点

  • 文件夹同步功能(我就是奔着这个来的);
  • 不会被审查(你可不想自己的艺术照被别人全看一遍吧?)
  • 全平台客户端的!(web、ios、android、wendows、mac os、linux)
  • 开源!免费!免费!免费!(某度云的文件夹同步功能要充VIP;真TM会挣钱)
  • 离线下载功能(即使不在家,也会帮你下载女神 orz你懂得。支持:直链、bt、ftp、youtube。注:这个功能需要安装第三方插件“ocdownload”,但是因为owncloud被作者弃坑了,所以这个教程我就不放出来了,我准备写一篇nextcloud的教程,在那个教程里会有详细说明)
  • 资源分享(一键分享女神给射友舍友 orz)
  • 移动客户端自动备份相册(手机拍张照片,无需人工任何干涉,5秒钟后,电脑上就能看到这张照片了)

缺点

  • 钱!钱!!钱!!!全都TM是钱!(买服务器、买域名、买带宽、买硬盘组、买raid卡;不说了,我去泡面了)

 

好,既然有这么多优点,那我还有什么理由去花钱让别人欣赏我的艺术照、然后还要使用像屎一样客户端的某度云呢?!

那么,进入正题…


一、预配置

首先我们需要一个静态地址,然后还有一些工具,这些东西其实是可有可无的,但是根据我的习惯会使用这些工具,感觉用起来效果棒棒哒~

1、静态IP地址

内网的静态地址或者外网的静态地址都可以,如果你连这个都不会配置,那就不要勉强自己了…

2、安装ssh服务端

安装完成之后,你可以用 ssh 连接到你的服务器,很方便,不用控制台操作了(如果你坚持使用控制台:请便)

3、安装vim编辑器

怎么说呢,自己看着办好了,如果你不安装的话,那后面的所有” vim “命令请替换成” vi “

二、安装ownCloud

1、打开网址:

https://download.owncloud.org/download/repositories/stable/owncloud/

2、选择操作系统

我的操作系统我选择的是ubuntu。

3、输入命令

选择标题不带files的,在CLI里输入这2行,然后就ownCloud就安装好了。

图片 1

懒人福利,命令如下:

三、初始化ownCloud

1、打开在浏览器输入:

2、创建一个管理员帐号和密码

图片 1

3、数据目录

如果有特殊需求可以更改数据目录,点击数据目录,输入你要设置的目录就可以;或者在下一小节会介绍如何更改数据的存储路径。

4、点击安装完成

四、修改上传文件大小限制

 

OwnCloud默认上传文件较小,只有513M,对于日常应用很不方便。

1、打开配置文件

2、找到这两行代码

3、改为你需要的大小即可

注:里面分为php5和php7,你需要把两处都修改了,总共是4个地方。

 五、修改ownCloud为默认网站

 

1、编辑apache2的配置文件

2、把DocumentRoot后面的路径设置成owncloud的路径

3、重启apache服务

六、修改ownCloud存储路径

 

1、停止web服务:

2、打开配置文件

3、修改路径

找到 datadirectory 项,把后面的’ /var/www/owncloud/data ‘修改为你想要设置的路径,

例:’ /var/data/ ‘

4、转移数据

/var/www/owncloud/data 目录下的所有文件移动到新的 /var/data/ 目录下。

5、修改权限

修改 /var/data/ 目录所述的组及用户与原 /var/www/owncloud/data 目录相同,例如所述组和用户都修改为 www 。

6、启动web服务


高级教程

如果你需要在互联网上使用自己ownCloud,那你就需要一个静态的公网IP地址,假设你没有公网的IP地址,那你可以选择使用DDNS(动态域名解析)。然后在内网的服务器的80端口映射到外网的80端口。

     题外话:现在国家通讯管理局要求运营商关闭80端口,所以即使上面的步骤都做好了,你也发现在外网你不能访问到你的网站,那该怎么办呢?3种方法可以解决:

1、备案你的网站: 备案成功之后自然会把你的 80 端口打开(到当地运营商营业厅办理);

2、不使用 80 端口: 换一个端口就行了,比如使用88端口;方法请参照下面的文章;

3、使用 https: https 是用的 443 端口,而且还可以实现数据加密;方法请参照下面的文章。

七、修改apache端口

 

1、编辑 apache2 的配置文件

把<VirtualHost *:80>改成<VirtualHost *:88>

2、编辑apache2的端口配置文件

把Listen 80改成Listen 88

3、重启apache服务

八、使用HTTPS加密我的流量

 

1、安装签名工具

2、生成证书

因为现在国家通讯部的规定,运营商把所有的80端口都ban掉了。所以咱们申请证书不能使用正常的80端口进行申请证书,只能通过DNS解析的方法得到证书。

图片 1

然后得到这张图,你需要去你的域名运营商的控制面板里,给你的域名加上你的二级域名,如果没有二级域名,那就直接添加一个txt类型的记录,主机记录填写Domain里的值,然后把TXT value里的值写到记录值里。

例图如下:

图片 1

3、申请证书

成功之后会出现这样的提示

图片 1

4、安装证书

然后现在咱们去配置把证书放到网站存放证书的文件夹,并把名字更正成它需要的名字

首先要看看存放证书的文件夹在什么地方,然后把证书复制过去

找到这2行

然后把证书和私钥cp进去

5、安装openssl

6、开启SSL模块

7、修改https的默认路径

8、启用https

上文安装完后,会在 /etc/apache2/sitesavailable/ 目录下生成一个缺省的 defaultssl 文件。缺省的网页目录仍然是 /var/www/ 。我们可以创建一个链接到 siteenabled 目录。

9、重启apache服务

Syncthing

文章转自异次元

文章原链接地址https://www.iplaysoft.com/syncthing.html

无论办公、文件共享、团队协作还是家庭照片、视频、音乐、高清电影的存储,我们常常都有文件同步和存储的需求。但随着国内各大网盘的花式阵亡或限速,早已没什么好选择了。

除了转战 Office365 (OneDrive) 或 番·羽·土·啬 用 Dropbox、Google Drive 以外,个人认为最靠谱的还是利用 VPS、NAS 或自己的电脑搭建私有同步网盘了!不仅速度快空间足,最重要是所有数据都能握在自己手中不受别人限制干涉。而今天推荐的 Syncthing 可能正是这类工具中的最佳选择……

Syncthing – 开源免费的文件夹同步神器 (Resilio Sync 的替代品)

自建网盘云储存同步服务的软件有很多,异次元就推荐过 Seafile、NextCloud、ownCloud、BT Sync (Resilio Sync) 等。而 Syncthing 则有着自己非常特别的优点,受到众多高手们的推荐,被誉为是 Resilio Sync / BT Sync 和 Dropbox 的最佳开源替代品。

Syncthing

Syncthing 最大的特色是采用了与 Resilio Sync (BitTorrent Sync) 类似的 P2P 分布式技术,无需中心服务器,即可让多台设备互相实时同步文件,用过 Resilio Sync 的朋友都明白这种同步方式的优势了。它们两者的实现方式很相似,区别是 Resilio 属于商业软件,需付费使用,在国内也已被土·啬,而 Syncthing 不仅完全免费且开源,相比 Resilio 还增加了「文件版本控制」、「单向同步」等堪称杀手级的功能特性。

Syncthing 功能上非常接近于  Resilio Sync / BT Sync,不过说它是一款用于搭建网盘的服务器软件或者云存储服务应用似乎并不十分恰当,相较于 Seafile、NextCloud 等服务器工具,Syncthing 实际上更像是一款文件/文件夹同步工具

你可以非常轻松简单地让同一路由器下的多台 PC 电脑、NAS 设备实现局域网互相同步,也可以在 VPS 服务器或 24 小时不关机且有公网 IP 的电脑上安装和配置 Syncthing,让其成为真正意义上的云同步网盘。

免费、开源、跨平台

Syncthing 免费且开源,跨平台支持 Windows、Mac、Linux、Android 等主流平台,除了 PC、手机以外,在部分路由器、树莓派等硬件上都能轻松运行,它将以网页版的形式呈现,并且 Syncthing 还提供了中文界面的支持。

Syncthing 同步网盘

得益于跨平台,Syncthing 的应用场景和范围非常广泛,可以简单用来备份手机照片视频文档,也可以满足公司、企业、团队、个人的各种复杂的文件/文件夹的同步与共享需求。

Syncthing 安卓版

比较可惜的是,目前 Syncthing 仅有安卓版的官方客户端,并未发布 iOS 版,只有一个由第三方做的相对简陋的 iOS APP 「fsync」可以暂时顶替。

绿色免安装,使用简单!

大多数同类的网盘软件都需要较为麻烦复杂的安装搭建服务器过程,而 Syncthing 在使用上简直超级简单方便!以 Windows 版本为例,Syncthing 本身就是一款绿色免安装的软件,直接下载解压打开 syncthing.exe 即可运行,启动后通过浏览器访问:http://127.0.0.1:8384 进入 Syncthing 的控制面板。

每台设备都会被分配到一个独立的设备 ID 标识 (一长串的字符),在菜单 “操作”->“显示 ID” 里可以找到。

Syncthing ID

Syncthing 设备ID

用户可点击“添加远程设备”,输入其他设备的 ID 来配对 (互相添加对方为可同步设备),然后就可以设定需要同步的文件夹,让它们在这些设备之间互相同步文件了。

Windows 图形界面增强版的 Syncthing 客户端 – SyncTrayzor

由于绿色免安装,因此 Syncthing 使用上非常方便!你可以根据需要长期保持 Syncthing 运行时刻监视文件变化并进行同步,也可以仅在需要同步的时候才手动去启动它,平时完全关闭不占用任何系统资源,这取决于你的使用需求。

默认情况下,Windows 版的 Syncthing 启动后会弹出一个命令行窗口一直保持在那里,想要常驻后台时刻同步就得忍受它的存在,有点烦人。为此,Syncthing 官方还提供了一个图形界面版的「SyncTrayzor」工具,如下图:

SyncTrayzor

SyncTrayzor 不仅内置了 Syncthing 本身,并且还可以帮助你实现将 Syncthing 完全最小化到右下角托盘、保持常驻后台运行、或者设置开机启动。虽然体积稍大了点,还需要 .NetFramework 4.5的支持,但使用上则方便了许多,推荐打算常驻后台同步的 Windows 用户使用它。

文件版本控制,神奇的后悔药

话说人生最痛苦的事情莫过于重要文件被误删除、被覆盖等痛心疾首的经历了,而 Syncthing 支持文件版本控制 (File Versioning) 功能,会自动保留文件的历史版本,每次文件在变化之后都会增加一个版本 (总数量可以由你设置),一旦出现文件被删除、丢失、文件内容被替换、同步出错等情况,用户均能从该文件的历史版本中选一个恢复回来,帮助你挽回无可弥补的损失,简直就像是后悔药一样神奇。

文件版本控制

在共享文件夹的“选项”->“高级设置”里即可开启或关闭目录的文件版本控制功能,其中分为「回收站式版本控制」、「简易版本控制」、「阶段版本控制」以及「外部版本控制」,选择其中一项均会有对应的说明,大家可根据需要选择。

版本控制对于数据比较重要的朋友来说,绝对是一大必备功能!起码文件都多了一重保障,可靠性大大增加!

众多优点:无限空间、多文件夹同步、加密传输等

Syncthing 可以支持同步多个文件夹,支持设置单向同步、双向同步、设置扫描文件变化的间隔;不限制文件大小,不限制空间  (仅受限于你设备的存储容量);所有的通讯和传输均会被加密,支持 https,安全性高;而且既能支持局域网同步,也可实现互联网同步。

对比 BT Sync 来看,Syncthing 的功能和可配置选项要多一些,不过感觉同步速度似乎比前者稍差一点,当然这个还没实际对比测试过,仅仅是凭印象猜测的,或许并不准确。

总结:

总的来看,Syncthing 就像是整合了 Resilio Sync 和 Dropbox 的优点后的开源替代品,它的应用范围广,你完全可以利用它轻松打造出属于自己的私有云同步网盘服务。

免费、跨平台、开源、绿色免安装、支持文件版本控制、无需中心服务器,方方面面都让 Syncthing 显得相当优秀,加上开源社区源源不断的更新和维护,相信 Syncthing 将会成为文件同步工具中的佼佼者。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装
该文转载于SMZDM

原文网址https://post.smzdm.com/p/569125/

版权归原作者和平台所有,本人转载纯用于本人安装记录教程

群晖系统的安装教程

在网上看了很多教程都是5.2或者是6.0的教程,很少有6.1的教程可能是6.1的引导还没有完善还是怎样就不清楚了,本文要安装的群晖系统为6.1.15101,因使用的引导系统是6.0的所以安装6.0的系统是可以正常升级的(升级到6.1就是不行)但是安装了6.1系统后就不能升级,所以如果安装了6.1系统了那就切记,不要升级、一定记住不要升级、千万记住不要升级,如果不小心升级了,那恭喜你,请重新安装群晖系统但是里面的文件还是有的,这点可以放心,只是系统重新安装一遍,而且是要全新安装不是升级安装。因为升级以后就不能引导进入群晖系统,我就在5月份的时候就是升级了6.1以后就进不了系统,后来只有重新安装6.1的系统连6.0的系统都不能安装。好了不说了,现在开始正文。

这里我分为  以下工具都可以在我的百度网盘内下载到,其中群晖系统有两个版本一个是6.0(15047)另外一个是6.1(15101)的。

百度网盘地址:http://pan.baidu.com/s/1eSL3OPk  密码:4jak

注意:制作该群晖系统建议用windows10系统,windows7的话无法修改启动盘里的参数。

1、需要的工具:U盘一个4G以上都可以,启动盘镜像文件(osfmount),U盘芯片读取工具(芯片无忧 V1.630(ChipEasy),驱动盘制作软件(Win32_Disk_Imager),群晖助手,群晖序列号算号器(Excel打开后点是和启用宏),群晖系统文件。

2、 先将U盘插入自己的电脑(有Windows系统的电脑),运行U盘检测工具(芯片无忧 V1.630(ChipEasy)后,记录vid和pid两个参数。我用的是东芝的U盘所以VID=0930 PID=6544,没个U盘的这两个参数都是不同的哦,不要抄袭我的这个参数。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

3、打开osfmount软件将镜像文件加载后把第三步的勾去掉

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

选择Partition 0 点击 OK

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

打开后将grub.cfg文件用文本打开,如果不能打开就用Notepad++软件打开。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

打开文件后找到 VID 和 PID 参数,分别替换自己U盘的两个参数,将sn替换成文章最后给出的序列号,将下图中的MAC地址的后六位随便修改一下就可以,修改后 保存 退出挂载。

4、打开win32DiskImager软件将系统引导文件(就是img后缀的文件)写入U盘。

点击后找到启动镜像文件所在路径,加载启动镜像,那个“G:”就是U盘盘符。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

加载启动镜像后点击 write 写入U盘

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

弹出下面对话窗口点击 YES

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

后就是进度条等进度条推满后弹出下面窗口,点击 OK 启动盘制作完成。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

5、将制作好的U盘插入需要做NAS的电脑,主板设置U盘引导启动电脑,启动后选择

1.DS3617xs 6.1 Baremetal with Jum’s Mod v1.02-alpha Reinstall

2.后如果出现 Please Open http://find. synology.com to comtinue就说明已经启动完成了,接下来就是安装系统了。

6、在同一网段内的电脑上安装群晖助手软件,全部下一步直到结束。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

运行群晖助手,在管理栏目内看到一个未安装的DSM,鼠标右键安装。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

点击浏览找到本机上的pat文件并打开。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

输入管理员密码和服务器名称。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

设置网络IP地址,建议设一个固定的方便管理,最后的那个DNS服务器地址是你网络运营商的地址,你可以在 开始菜单内 输入运行 然后 输入 cmd  回车,输入 ipconfig /all 获取DNS的IP地址,如果是架设在局域网内的那这个服务器地址为路由器的管理地址。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

设置好后就是安装了。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

等了一会儿安装好后就出现下面的界面,输入用户名:admin 密码为自己设置的密码。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

这个更新和维护建议不要选自动安装,因为你的系统不是真正的群晖系统,点了的话有更新就自动安装系统容易挂,所以选择下载DSM更新并进行手动安装选项,下载计划,随便填写,下面的也随便填写。

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

设置QuickConnect,其实这个是要你在群晖的官网上注册帐号关联的,官网注册

黑群晖从装机到使用全过程 篇一:黑群晖机器的硬件购买和系统安装

选择已有群晖帐号创建QuickConnect ID,输入注册的电子邮件地址和帐户密码,下面的ID就可以随便填写,点击下一步,如果直接能过的说明你的系统是白群晖了,就是可以用群晖提供的QC外网访问你的DDNS,如果有提示那就是说明不能使用QC,那只能通过系统内的网络设置来解决这个问题。