手把手教你免费建立属于自己的网盘,NextCloud私有云,借助Google免费的云主机与开源的NextCloud程序,只需要几步便可以创建私人网盘。
首先要去谷歌云免费申请一台云主机,具体申请办法请参考:2020申请谷歌云攻略,免费获得300美元或一年期赠送
云主机环境搭建好后就可以安装网盘系统了,关于系统环境搭建,请浏览:centos8使用yum/dnf安装LNMP php+mysql+nginx环境配置详解
新手建议使用dnf/yum方式安装软件包,简单快捷!下面就开始一步一步的搭建私有云NextCloud吧!
首先去https://nextcloud.com官方网站下载源码包,有两种安装方式,一种是傻瓜式安装,一种是非傻瓜式安装!
点击Get Nextcloud-> 进入到Nextcloud网盘下载页面。
点击Download for server获取Nextcloud网盘下载地址。
2020年3月当前最新的稳定版本是18.02,鼠标点击downlond nextcloud右键盘,复制链接地址,然后在服务器上使用wget下载
另外一种傻瓜安装方式是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目录下载该文件。
万事俱备,只欠东风。接下来就是进行安装了,不过在安装前要对服务器进行一些设置改动。确保一次性安装成功或者说坑踩的少一些。
检查php的扩展是否满足安装需求。如果缺少扩展,要先安装扩展。
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文件
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
将上面的注释去掉,然后运行命令确认你的变量路径,例如在命令行输入:
/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。
文件上传大小如果需要修改的话,需要修改upload_max_filesize和post_max_size的数值。
PHP设置完之后是web服务器的设置,web服务器现在使用比较多的一个是Apache,另一个是Nginx。
如果没有安装Redis请先安装在进行下一步操作。
systemctl enable redis.service
systemctl start redis.service
Apache服务器下面的配置相对简单一些。新手推荐使用Apache。
在httpd/conf.d/下新建立个站点配置文件/etc/httpd/conf.d/nextcloud.conf
ServerName cloud.uzbox.com
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
Dav off
添加php7支持,如果是yum安装的Apache无需手工修改。在中添加:
AddType application/x-httpd-php-source .php7
libphp7.so如果是php74的话就是libphp74.so
解析好域名,设置好web路径,上传好网站源代码文件。输入域名就可以访问了。安装时无论是Apache还是Nginx如果访问出现502错误,请参考http://uzbox.com/tech/linux/1284.html
进行安装Nextcloud源代码:
解压缩刚才下载好的文件,zip格式的解压缩如果无法解压缩,请参考:RAR和ZIP文件在Centos下的解压方法
解压缩后将文件放置到web服务器设置好的目录。
确保apache具有对整个nextcloud文件夹的读写访问权限,给nextcloud目录授权。如果你的用户组和web用户名称是www,请改变用户和组的名称。
systemctl restart httpd
如果web服务器使用的是nginx的话,设置要相对麻烦一点。
将Nextcloud源代码存放在Nginx的Web服务器根目录/var/www/nextcloud下。
在/etc/nginx/conf.d/目录下建立cloud站点配置文件,cloud.conf
使用HTTP访问的站点配置如下:
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 ~ ^\/(?:.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+).php(?:$|\/) {
fastcgi_split_path_info ^(.+?.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 ~ .(?: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 ~ .(?: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安装页面!
输入你的用户名和密码,选择mysql数据库,输入mysql的用户和密码,自定义一个数据库名称,然后输入sql的服务器地址,一般默认localhost:3306就可以了。
最后一步,点击finish setup等待安装结束,自动跳转到nextcloud的网盘登录页面。恭喜你,你已经成功的安装了nextcloud网盘!
最后测试一下谷歌云的上传速度吧!Google造福全人类!