自己搭建了一个网盘(nextcloud)
官网链接 https://nextcloud.com
参考:
https://docs.nextcloud.com/server/13/admin_manual/installation/nginx.html#nextcloud-in-the-webroot-of-nginx
1.购买机器
比较了几个云服务平台,最终还是选择了 UCloud,目前海外做活动 150 就可以购买一年,购买海外主要是不需要备案,如果想发布到公网,还需要购买一个域名。如下是购买和领取优惠券的方案 1.1 注册链接
https://urlify.cn/ae6bui
1.2 领券链接
https://urlify.cn/buMzi2
购买完服务器,直接选择了经典的系统 CentOS 8,如果你使用的不是 CentOS 8 ,安装过程可能和我有差异。
2.选择项目
原文链接:https://blog.csdn.net/weixin_41004350/java/article/details/80479051
对于私人网盘,市面上已经有很多的产品,很多开源半开源的云盘系统。其中最出名的就是 seafile和owncloud/nextcloud。seafile是国人开发的,分块处理,断点上传,速度比后者要快。有社区版和企业版。社区版免费,但是功能有限,企业版要收费,功能更强大。但是社区版的功能,老实说只能满足个人使用,无法满足企业使用。而企业版要收费,费用根据公司人数不同,还需要发邮件询问
简介:
Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘
市场上面有很多开源的系统,但是最后选择了 NextCloud,主要是他是开源项目,免费;丰富的扩展:预览、分享、子账号能力、手机端和PC端;数据存储在自己的服务器简单又安全。唯一可能有一些成本的地方是 NextCloud 基于 PHP 开发,不多他的官方文档非常完备,只要是开发人员无限 Next 也是可以搞定的,下面开始我的表演。
3.安装 NextCloud
NextCloud 有三种安装方案,分别是 NextCloud 有三种安装方案,分别是 Archive File、Web Installer和Appliances,这么极客的我肯定是选择了第一种哦,这么极客的我肯定是选择了第一种哦
3.1 安装 DNF
可以用原装的 yum,但是用 dnf 更方便一些,接着往下看你就知道他的方便了
yum install dnf
dnf update -y
3.2 安装 Apache
dnf install -y httpd
#启动 Apache
systemctl enable httpd.service
systemctl start httpd.service
3.3 安装 PHP
不同的 Linux 版本需要的 remi 不一样,如果 8 不行把下面的链接改成 7 即可。或者直接百度一下安装方式,这个步骤主要是安装 PHP 和一些依赖
#先来安装Remi存储库
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install yum-utils
#重置php模块
dnf module reset php
#默认设置为remi-7.4版本
dnf module install php:remi-7.4
dnf install -y php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-opcache php-json php-zip php-dom
#配置php.ini
vim /etc/php.ini
将
#cgi.fix_pathinfo=0
的注释删除掉,并改为0,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Web将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击。
扩展:
php-fpm通信有两种方式(默认是第二种):
(1)第一种是通过端口通信,通常在web与php-fpm不在同一台服务器中时使用此方法。
(2)第二种是通过php7.0-fpm.sock文件进行互联通信,一般用于web与php-fpm在同一台服务器时使用
3.4安装数据库
#这里我选择安装 Mariadb
dnf install -y mariadb mariadb-server
#启动数据库
systemctl enable mariadb.service
systemctl start mariadb.service
#安装完成以后是没有设置密码的,运行下面的命令可以非常方便的配置
#进行初始化操作:
mysql_secure_installation
#设置root密码
删除匿名用户;禁止root管理员从远程登录;移除测试数据库,取消访问权限;刷新授权,使立即生效
nextcloud 还需要数据库:
在装有mysql的服务器上执行
原文链接:https://blog.csdn.net/weixin_41004350/java/article/details/80479051
$ mysql -u root -p
create database nextcloud_db default charset=utf8;
授权给自定义用户,这里以用户名:nextclouduser,密码:nextcloudpasswd,代替。
grant all privileges on nextcloud_db.* to nextcloud@localhost identified by '666666';
flush privileges;
3.5 安装 NextCloud
参考:https://docs.nextcloud.com/server/16/admin_manual/installation/source_installation.html#
https://download.nextcloud.com/server/releases/nextcloud-18.0.3.zip
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.3.zip
unzip nextcloud-*.zip
解压后,拷贝项目目录到 Apache 目录
cp -R nextcloud/ /var/www/html/
创建数据存放目录,用于存放日志、文件等
mkdir /var/www/html/nextcloud/data
设置权限并重启
chown -R apache:apache /var/www/html/nextcloud
systemctl restart httpd.service
如果你是 SELinux 需要运行如下命令
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'
restorecon -R '/var/www/html/nextcloud/'
setsebool -P httpd_can_network_connect on
访问部署好的服务,进行接下来的配置
http://youdomain/nextcloud
如果上面的步骤都没有问题直接进入如下页面
所有的文件会存储在下面的目录,如果你想存放云,当然也可以,不过本文就不叙述了。
/var/www/html/nextcloud/data/admin/files
docker-compose部署
version: "3.1"
services:
docker_nextcloud:
image: nextcloud #指定使用的镜像
restart: always
#restart_policy:
# condition: on-failure
# delay: 5s
# max_attempts: 3
# window: 120s
ports:
- 8088:80 #指定映射的端口
environment: #修改容器内部的环境变量
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: docker_nextcloud
WORDPRESS_DB_PASSWORD: 123.com
WORDPRESS_DB_NAME: docker_nextcloud
volumes:
- /nextcloud_Data/www:/var/www/html
db:
image: mysql:5.7
restart: always
#restart_policy:
# condition: on-failure
# delay: 5s
# max_attempts: 3
# window: 120s
environment:
MYSQL_DATABASE: docker_nextcloud
MYSQL_USER: docker_nextcloud
MYSQL_PASSWORD: 123.com
MYSQL_ROOT_PASSWORD: 123.com
volumes:
- /nextcloud_Data/db_data:/var/lib/mysql
免责声明: 本文部分内容转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除。