nextcloud


目录:

自己搭建了一个网盘(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,这么极客的我肯定是选择了第一种哦,这么极客的我肯定是选择了第一种哦

image-20230214162956272

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密码

image-20230214163352488

删除匿名用户;禁止root管理员从远程登录;移除测试数据库,取消访问权限;刷新授权,使立即生效

image-20230214163405393

nextcloud 还需要数据库:

在装有mysql的服务器上执行

原文链接:https://blog.csdn.net/weixin_41004350/java/article/details/80479051

$ mysql -u root -p
create database nextcloud_db default charset=utf8;

image-20230214163451827

授权给自定义用户,这里以用户名:nextclouduser,密码:nextcloudpasswd,代替。

grant all privileges on nextcloud_db.* to nextcloud@localhost identified by '666666';
flush privileges;

3.5 安装 NextCloud

官网链接 https://nextcloud.com

参考: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

如果上面的步骤都没有问题直接进入如下页面

image-20230214163646828

image-20230214163702681

所有的文件会存储在下面的目录,如果你想存放云,当然也可以,不过本文就不叙述了。

/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

免责声明: 本文部分内容转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除。