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
在http
的docker-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 命令行模式,输入以下行,将username
和password
替换为适当的值,并使用 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