CentOS 部署 KodBox 个人网盘

  KodExplorer可道云,原名芒果云,是基于Web技术的私有云和在线文件管理系统。致力于为用户提供安全可控、可靠易用、高扩展性的私有云解决方案。用户只需通过简单环境搭建,即可使用KodExplorer快速完成私有云/私有网盘/在线文档管理系统的部署和搭建。可道云提供了类windows经典用户界面,延续了windows平台的用户界面、操作逻辑和使用习惯,支持100余种文件格式的在线预览,解决了文件在线存储与管理、共享和跨平台访问、在线办公影音娱乐等一系列问题,使得用户的私有云产品可以拥有本地操作一样方便、快捷、安全的体验。

  目前KodExplorer项目处于维护阶段,不再更新,KodBox为全新升级产品。KodBox是可道云推出的企业级私有云存储解决方案,旨在为中小企业提供安全可控、可靠易用的一站式在线文件存储管理与协同办公平台。

KodExplorer 与 KodBox 区别

  KodBox是在KodExplorer基础上进行了系统重构的全新产品。为满足系统更强性能、更安全、更多特性的拓展需求,Kodbox对底层架构、存储方式、权限机制等进行了重构,同时继承并升级了KodExplorer优秀前端体验。

  底层架构方面,KodBox采用了数据库+文件存储的方式,用户、权限、文件关系等结构化数据等存储于数据库,文档、多媒体等非结构性数据经加密处理后存储于文件系统,二者通过唯一的ID标识相关联。Kodexplorer采用文件夹目录直接存取的方式,管理员可以在后台直接查看用户目录。(KodBox系统管理员也可以通过物理路径对服务器文件进行管理,不过不能直接对KOD系统中文件进行操作)

  在新的技术架构基础上,KodBox优化了数据传输、操作体验、权限管理、后台增强、审计日志、存储安全等多方面的功能特性。

  • 文件传输方面,KodBox采用数据去重技术,支持相同文件急速上传、系统内多文件快速复制和移动,优化了大文件、多文件上传机制;
  • 操作体验方面,KodBox在KodExplorer基础上进行了持续优化,提供了多窗口互拖操作、高级搜索、文件分类、文件夹排序等多项细节优化;
  • 权限管理方面,解决了KodExplorer仅能分享个人空间的文件、部门间文件分享协作不方便的问题。KodBox采用细粒度的文档权限,提供了灵活强大的权限体系,可满足多样化的文件分享与协作需求,支持便捷的部门内、部门间及随机的文档协作。
  • 管理后台也进行了优化和增强,设计了独立的操作界面、新增了日志审计、计划任务、统计面板等多项功能。
  • 存储方面,支持用户任意存储到本地服务器、FTP服务器或阿里云OSS、AWS S3、七牛等对象存储,可以方便地进行存储空间拓展。可以在多个不同的存储平台之间快速地进行文件的预览和转移,不同服务器、对象存储直接数据转移就好像C盘到D盘一样简单。

  此外,还提供了客户端、客户端文件备份等多种功能特性,更多功能更新也正在开发中。

  整体而言,KodExplorer适用于个人用户或小型团队和企业;Kodbox更多针对企业级的应用需求,可支撑高并发、更多用户数、更高协作和安全要求。

基础环境

系统版本:CentOS Linux release 7.9.2009 (Core)
IP地址:192.168.31.210
Kodbox版本:官网最新版本
运行依赖:Nnginx 1.20+、PHP 7.4、MySQL 5.7、Redis 6.2

Nnginx 1.20+、PHP 7.4、MySQL 5.7、Redis 6.2 需提前安装好!

修改 Nginx 配置

  • 备份 nginx.conf 文件
# mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old

image.png

# yum install -y vim
# vim /etc/nginx/nginx.conf
user  nginx;
worker_processes auto;
pid        /var/run/nginx.pid;

events {
    use epoll;
    worker_connections 51200;
    multi_accept on;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
                      
    server_names_hash_bucket_size 512;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 10240M;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;
    keepalive_timeout 60;

    fastcgi_connect_timeout 3600;
    fastcgi_send_timeout 3600;
    fastcgi_read_timeout 3600;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_intercept_errors on;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";
    server_tokens off;

    server {
        listen 80;
        root /var/www/html;             #改成自己的站点目录
        index index.php;
        server_name _;
        error_log  /var/log/nginx/kodbox_error.log  notice;
#        access_log /var/log/nginx/kodbox_access.log main;
        location ~ [^/]\.php(/|$) {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            fastcgi_index index.php;
            set $path_info $fastcgi_path_info;
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
            include fastcgi_params;
        }
        location ~* \.(jpg|jpeg|gif|png|css|js|ico|webp|tiff|ttf|svg)$ {
            expires      30d;
        }
        location ~ .*\.(js|css)?$ {
            expires      12h;
        }
        location = /favicon.ico {
            log_not_found off;
        }
    }
}

修改 /var/lib/php 目录权限

# chown -R nginx:nginx /var/lib/php

image.png

创建 KodBox 数据库和用户

mysql> CREATE DATABASE db_kodbox;
mysql> CREATE USER 'user_kodbox'@'%' IDENTIFIED BY '123456';
mysql> grant all privileges on db_kodbox.* to 'user_kodbox'@'%' identified by '123456';
mysql> flush privileges;

配置 KodBox

  • 关闭 selinux
# setenforce 0
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

image.png

  • 下载最新kodbox安装包,解压到站点目录
# yum install -y unzip
# cd /var/www/html/
# curl -L "https://api.kodcloud.com/?app/version&download=server.link" -o kodbox.zip
# unzip kodbox.zip && rm -f kodbox.zip
# chown -R nginx:nginx /var/www/html
# chmod -R 755 /var/www/html
# systemctl restart nginx 
# systemctl restart php-fpm
  • 设置防火墙
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --reload

image.png

访问初始化页面

  • 浏览器访问服务器IP地址,进入初始化页面
http://192.168.31.210/

image.png

初始化KodBox

  • 数据库类型选择 MySQL,系统缓存类型选择 Redis,用户名、密码、数据库输入上述步骤设置的用户名、密码、数据库,存储引擎选择 InnoDB

image.png

  • 设置管理员密码

image.png

  • 创建成功

image.png

登录 KoxBox

image.png

image.png

image.png

  • Windows 客户端 - 输入http://IP,点击立即进入,即可连接 KoxBox,Android、IOS客户端亦如此

image.png

上传速度调优

  • 修改 Nginx 配置
client_max_body_size 10240M;        
client_header_timeout 3600s;
client_body_timeout 3600s;
fastcgi_connect_timeout 3600s;
fastcgi_send_timeout 3600s;
fastcgi_read_timeout 3600s;

image.png

  • 修改 php.ini 配置
post_max_size = 10240M
upload_max_filesize = 10240M
memory_limit = 1024M
max_execution_time = 3600
max_input_time = 3600
cgi.fix_pathinfo=1
  • 修改 kodcloud 上传配置,管理员登陆可道云:桌面---系统设置---基础设置---上传/下载
  • 设置分片大小为100MB

image.png


标题:CentOS 部署 KodBox 个人网盘
作者:Mune
地址:https://cnxiaobai.com/articles/2022/04/06/1649240550786.html

    评论
    0 评论
avatar

取消