手把手教你免费建立属于自己的网盘,NextCloud私有云,借助Google免费的云主机与开源的NextCloud程序,只需要几步便可以创建私人网盘。
首先要去谷歌云免费申请一台云主机,具体申请办法请参考:2020申请谷歌云攻略,免费获得300美元或一年期赠送
云主机环境搭建好后就可以安装网盘系统了,关于系统环境搭建,请浏览:centos8使用yum/dnf安装LNMP php+mysql+nginx环境配置详解
新手建议使用dnf/yum方式安装软件包,简单快捷!下面就开始一步一步的搭建私有云NextCloud吧!
首先去https://nextcloud.com官方网站下载源码包,有两种安装方式,一种是傻瓜式安装,一种是非傻瓜式安装!
免费建立网盘,创建属于你的私有云NextCloud
点击Get Nextcloud-> 进入到Nextcloud网盘下载页面。
免费建立网盘,创建属于你的私有云NextCloud
点击Download for server获取Nextcloud网盘下载地址。
免费建立网盘,创建属于你的私有云NextCloud
2020年3月当前最新的稳定版本是18.02,鼠标点击downlond nextcloud右键盘,复制链接地址,然后在服务器上使用wget下载

1
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.2.zip

免费建立网盘,创建属于你的私有云NextCloud
另外一种傻瓜安装方式是web安装程序。该Web安装程序是在网络空间安装Nextcloud最简单的方法。它检查依赖关系,从官方服务器下载Nextcloud,使用正确的权限和正确的用户帐户将其解压缩。最后,您将被重定向到Nextcloud安装程序。
1.右键单击此处,然后将文件保存到计算机
2.将setup-nextcloud.php上传到您的网站空间
3.将您的Web浏览器指向Webspace上的setup-nextcloud.php
4.按照说明进行操作并配置Nextcloud
5.登录到您新创建的Nextcloud实例!
在Right-click here处单击右键,链接另存为。然后上传到服务器的web目录下。或者直接在服务器上的web目录下载该文件。

1
https://download.nextcloud.com/server/installer/setup-nextcloud.php

万事俱备,只欠东风。接下来就是进行安装了,不过在安装前要对服务器进行一些设置改动。确保一次性安装成功或者说坑踩的少一些。
检查php的扩展是否满足安装需求。如果缺少扩展,要先安装扩展。

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
PHP module ctype
PHP module curl
PHP module dom
PHP module GD
PHP module hash (only on FreeBSD)
PHP module iconv
PHP module JSON
PHP module libxml (Linux package libxml2 must be >=2.7.0)
PHP module mbstring
PHP module openssl
PHP module posix
PHP module session
PHP module SimpleXML
PHP module XMLReader
PHP module XMLWriter
PHP module zip
PHP module zlib
PHP module pdo_mysql (MySQL/MariaDB)
PHP module fileinfo (highly recommended, enhances file analysis performance)
PHP module bz2 (recommended, required for extraction of apps)
PHP module intl (increases language translation performance and fixes sorting of non-ASCII characters)
PHP module ldap (for LDAP integration)
PHP module smbclient (SMB/CIFS integration, see SMB/CIFS)
PHP module ftp (for FTP storage / external user authentication)
PHP module imap (for external user authentication)
PHP module exif (for image rotation in pictures app)
PHP module gmp (for SFTP storage)
PHP module apcu (>= 4.0.6)
PHP module memcached
PHP module redis (>= 2.2.6, required for Transactional File Locking)
PHP module imagick
avconv or ffmpeg
OpenOffice or LibreOffice
PHP module pcntl (enables command interruption by pressing ctrl-c)

ffmpeg的php扩展目前只支持到php5.6这个可以放弃,LibreOffice安装参考:centos8手动和dnf/yum安装LibreOffice
其它扩展直接yum安装就可以了。
php-fpm有一些需要修改的地方。
编辑www.conf文件

1
2
3
4
5
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

将上面的注释去掉,然后运行命令确认你的变量路径,例如在命令行输入:

1
2
printenv PATH
/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/remi/php74/root/usr/bin/

屏幕上会显示出printenv的变量路径,如果没有显示任何变量路径,你需要在系统变量里添加变量。
或者可以通过修改www.conf里的内容来使用系统的environemt变量,取消clear_env的注释,数值修改成no。

1
clear_env = no

文件上传大小如果需要修改的话,需要修改upload_max_filesize和post_max_size的数值。
PHP设置完之后是web服务器的设置,web服务器现在使用比较多的一个是Apache,另一个是Nginx。
如果没有安装Redis请先安装在进行下一步操作。

1
2
3
yum install -y redis
systemctl enable redis.service
systemctl start redis.service

Apache服务器下面的配置相对简单一些。新手推荐使用Apache。
在httpd/conf.d/下新建立个站点配置文件/etc/httpd/conf.d/nextcloud.conf

1
2
3
4
5
6
7
8
DocumentRoot /var/www/html/nextcloud/
ServerName cloud.uzbox.com

Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

Dav off

添加php7支持,如果是yum安装的Apache无需手工修改。在中添加:

1
2
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php7

libphp7.so如果是php74的话就是libphp74.so

1
LoadModule php7_module modules/libphp7.so

解析好域名,设置好web路径,上传好网站源代码文件。输入域名就可以访问了。安装时无论是Apache还是Nginx如果访问出现502错误,请参考http://uzbox.com/tech/linux/1284.html
进行安装Nextcloud源代码:
解压缩刚才下载好的文件,zip格式的解压缩如果无法解压缩,请参考:RAR和ZIP文件在Centos下的解压方法

1
nextcloud-18.0.2.zip

解压缩后将文件放置到web服务器设置好的目录。

1
cp -R nextcloud/ /var/www/html/

确保apache具有对整个nextcloud文件夹的读写访问权限,给nextcloud目录授权。如果你的用户组和web用户名称是www,请改变用户和组的名称。

1
2
chown -R apache:apache /var/www/html/nextcloud
systemctl restart httpd

如果web服务器使用的是nginx的话,设置要相对麻烦一点。
将Nextcloud源代码存放在Nginx的Web服务器根目录/var/www/nextcloud下。
在/etc/nginx/conf.d/目录下建立cloud站点配置文件,cloud.conf
使用HTTP访问的站点配置如下:

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
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php/php7.2-fpm.sock;
#用于nginx与PHP互动,一种是通过9000端口执行php,也是最常用的,另外一种是unix连接,需要配置正确的fpm.sock路径。
}
server {
listen 80;
listen [::]:80;
server_name cloud.example.com; #设置你的网站域名

<h1>enforce https</h1>

#如果使用https访问,301自动跳转到https访问的另外一个server容器内。如果启用ssl的访问的话,可以将注释的#号删除掉!
#return 301 https://$server_name:443$request_uri;
#}

#server {
#listen 443 ssl http2;
#listen [::]:443 ssl http2;
#server_name cloud.example.com;
#ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; #ssl的证书
#ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key; #ssl的密钥。
#添加标头以提供与安全性相关的标头在启用Strict-Transport-Security标头之前,请先阅读本主题。
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
#警告:仅在https://hstspreload.org/中了解后果后,才添加preload选项。
#此选项会将域添加到所有主要浏览器附带的硬编码列表中,并且从该列表中删除可能需要几个月的时间。
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
fastcgi_hide_header X-Powered-By; #屏蔽掉X-Powered-By
root /var/www/nextcloud; #nextcloud存放的路径
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
client_max_body_size 512M; #上传文件大小,需要上传大文件请修改此处。
fastcgi_buffers 64 4K;
#打开gzip压缩
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;
}

location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:&#46;|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)&#46;php(?:$|\/) {
fastcgi_split_path_info ^(.+?&#46;php)(\/.*|)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
#fastcgi_param HTTPS on;

<h1>Avoid sending the security headers twice</h1>

fastcgi_param modHeadersAvailable true;

<h1>Enable pretty urls</h1>

fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
#为js,css和map文件添加缓存控制标头
location ~ &#46;(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
access_log off;
}
location ~ &#46;(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri;

<h1>Optional: Don't log access to other assets</h1>

access_log off;
}
}

如果有防火墙,先创建防火墙规则,SELinux建议关闭!
打开网站域名,开始进入web安装页面!
免费建立网盘,创建属于你的私有云NextCloud
输入你的用户名和密码,选择mysql数据库,输入mysql的用户和密码,自定义一个数据库名称,然后输入sql的服务器地址,一般默认localhost:3306就可以了。
最后一步,点击finish setup等待安装结束,自动跳转到nextcloud的网盘登录页面。恭喜你,你已经成功的安装了nextcloud网盘!
最后测试一下谷歌云的上传速度吧!Google造福全人类!
免费建立网盘,创建属于你的私有云NextCloud

订阅
提醒
guest
0 评论
内联反馈
查看所有评论