在Linux服务器上搭建可道云
本文发布于657天前,最后更新于130天前,其中的信息可能有所发展或是发生改变。如有疑问请联系邮箱:admin@yemengstar.com。

1.项目介绍

项目地址:可道云-私有云存储&协同办公平台_企业网盘_企业云盘_网盘_云盘 (kodcloud.com)

帮助文档:Kodcloud Documentation | Kodcloud Documentation

这次教程仅展示在Linux服务器上面搭建可道云。

本次教程使用的服务器为雨云

2.Docker安装

2.1系统环境

纯净ubuntu系统

2.2安装docker

安装并启动docker服务, 新版本docker会自动安装docker-compose-plugin

apt-get update
curl -sSL https://get.daocloud.io/docker | sh
systemctl enable docker && systemctl start docker

2.3快速部署

首先创建一个目录作为项目目录,后面所有命令都在这个目录下执行

创建文件.env来设置环境变量(必须修改等号右边的值,形式如 MYSQL_USER=kodbox,值不要包含&符号),这些在docker启动时会自动传入容器

mkdir -p data/docker_data/kodbox
cd data/docker_data/kodbox
vim .env

i进入编辑模式后,修改如下内容:

#自己设置!
MYSQL_ROOT_PASSWORD=[数据库root密码]
MYSQL_DATABASE=[数据库名称]
MYSQL_USER=[数据库用户]
MYSQL_PASSWORD=[数据库密码]

创建docker-compose.yml 文件,在其中配置映射端口、持久化目录

vim docker-compose.yml

i进入编辑模式后,填入如下内容,可以按照自己的需求修改:

version: '3.5'

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - "./db:/var/lib/mysql"       #./db是数据库持久化目录,可以修改
    environment:
      - "TZ=Asia/Shanghai"
      - "MYSQL_ROOT_PASSWORD"
      - "MYSQL_DATABASE"
      - "MYSQL_USER"
      - "MYSQL_PASSWORD"
    restart: always
      
  app:
    image: kodcloud/kodbox
    ports:
      - 80:80                       #左边80是使用端口,可以修改(修改完记得访问IP:端口)
    links:
      - db
      - redis
    volumes:
      - "./site:/var/www/html"      #./site是站点目录位置,可以修改
    restart: always

  redis:
    image: redis:alpine
    environment:
      - "TZ=Asia/Shanghai"
    restart: always

进入项目目录,执行docker compose up -d启动命令,会自动拉取容器并运行

docker compose up -d

[+] Running 4/4
⠿ Network kodbox_default Created 0.2s
⠿ Container kodbox-db-1 Started 3.8s
⠿ Container kodbox-redis-1 Started 3.8s
⠿ Container kodbox-app-1 Started 2.1s

列出docker容器

docker ps 

如果正常运行的话,会看到3个容器正在运行:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1542c08ea8b kodcloud/kodbox “/entrypoint.sh /usr…” About a minute ago Up About a minute 443/tcp, 0.0.0.0:80->80/tcp, :::80->80/tcp, 9000/tcp kodbox-app-1
8b74aff4ef9d mariadb “docker-entrypoint.s…” 2 minutes ago Up About a minute 3306/tcp kodbox-db-1
1e2572f67aaa redis:alpine “docker-entrypoint.s…” 2 minutes ago Up About a minute 6379/tcp kodbox-redis-1

然后你就可以访问IP配置可道云了。如果你修改了上面的80:80,那么访问地址为IP:你的端口

2.4配置https证书

如果你有SSL证书的话,可以部署SSL证书。具体操作如下:

创建一个证书目录,把下载的nginx版ssl证书放入目录

mkdir /etc/kodbox/ssl

将证书重命名

mv xxx.pem fullchain.pem
mv xxx.key privkey.pem

httpdocker-compose.yml增加证书配置

mkdir kodbox && cd kodbox
vim docker-compose.yaml
version: '3.5'

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - "./db:/var/lib/mysql"             #./db是数据库持久化目录,可以修改
    environment:
      - "TZ=Asia/Shanghai"
      - "MYSQL_ROOT_PASSWORD"
      - "MYSQL_DATABASE"
      - "MYSQL_USER"
      - "MYSQL_PASSWORD"
    restart: always
    
  app:
    image: kodcloud/kodbox
    ports:
      - 443:443                            #左边443是使用端口,可以修改
    links:
      - db
      - redis
    volumes:
      - "/etc/kodbox/ssl:/etc/nginx/ssl"  #左边配置主机证书目录
      - "./site:/var/www/html"            #./site是站点持久化目录,可以修改
    restart: always

  redis:
    image: redis:alpine
    environment:
      - "TZ=Asia/Shanghai"
    restart: always

然后进入项目目录,执行docker compose up -d命令启动

3.常规部署

3.1系统环境

纯净ubuntu系统。

在Ubuntu 22.04 LTS 上部署kodbox,安装依赖软件环境比较简单,所有软件在默认源中已经包含。

需要的软件:

  • nginx 1.18
  • php 8.1
  • MySQL 8.0
  • redis 6.0

3.2安装依赖环境

sudo apt update && sudo apt upgrade
sudo apt install nginx mysql-server redis-server
sudo apt install php php-fpm php-mysqli php-gd php-redis php-mbstring php-curl php-xml
sudo systemctl disable apache2.service
sudo systemctl enable nginx php8.1-fpm mysql redis-server

支持图片视频等文件生成封面缩略图

sudo apt install imagemagick ffmpeg

3.3NGINX

/etc/nginx/sites-enabled/default配置调整

需要注意的配置

listen 80;              ##访问端口
root /var/www/html;     #改成自己的站点目录
server_name _;          #访问域名 '_'代表任何域名都能访问

需要添加的配置, 以解析PHP

location ~ [^/]\.php(/|$) {
   try_files $uri =404;
   fastcgi_pass unix:/run/php/php8.1-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;
}

3.4PHP

PHP_INI=/etc/php/8.1/fpm/php.ini
PHP_FPM=/etc/php/8.1/fpm/pool.d/www.conf
sed -i \
   -e "s/max_execution_time = 30/max_execution_time = 3600/g" \
   -e "s/max_input_time = 60/max_input_time = 3600/g" \
   -e "s/memory_limit = 128M/memory_limit = 512M/g" \
   -e "s/post_max_size = 8M/post_max_size = 512M/g" \
   -e "s/upload_max_filesize = 2M/upload_max_filesize = 512M/g" \
   ${PHP_INI}
    
sed -i \
   -e "s/pm.max_children = 5/pm.max_children = 100/g" \
   -e "s/pm.start_servers = 2/pm.start_servers = 10/g" \
   -e "s/pm.min_spare_servers = 1/pm.min_spare_servers = 10/g" \
   -e "s/pm.max_spare_servers = 3/pm.max_spare_servers = 50/g" \
   -e "s/;pm.max_requests = 500/pm.max_requests = 500/g" \
   -e "s/;listen.mode = 0660/listen.mode = 0666/g" \
   ${PHP_FPM}

systemctl restart php-fpm

3.5MySQL

这里需要使用 MySQL 命令行界面创建KodBox所使用的数据库用户和数据库。首次登录时, KodBox将创建数据库表。

要启动 MySQL 命令行模式,请使用以下命令:

sudo mysql

然后会出现 mysql [root]> 窗口。首次登陆建议先设置数据库root账号的密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'xxxx';
mysql> quit

并执行数据库安全设置向导, 根据提示步骤设置密码规则、删除匿名用户等

sudo mysql_secure_installation

再次启动 MySQL 命令行模式,输入以下行,将usernamepassword替换为适当的值,并使用 Enter 键确认:

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
mysql> CREATE DATABASE IF NOT EXISTS kodbox CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> GRANT ALL PRIVILEGES ON kodbox.* TO 'username'@'localhost';
mysql> FLUSH PRIVILEGES;

可以通过输入以下命令退出窗口:

mysql> quit

3.6安装KodBox

下载最新版本的kodbox安装包, 解压到站点目录

sudo apt install -y unzip
cd /var/www/html/
sudo curl -L "https://api.kodcloud.com/?app/version&download=server.link" -o kodbox.zip
sudo unzip kodbox.zip && sudo rm kodbox.zip
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo systemctl restart nginx

设置防火墙

sudo ufw allow ssh
sudo ufw allow http
sudo ufw enable
本文为夜梦星尘原创文章。
文章作者:夜梦星尘
文章链接:在Linux服务器上搭建可道云
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自夜梦星尘
支持作者:夜梦星尘的爱发电
上一篇
下一篇