Leantime安装部署全攻略:Docker与本地环境
本文详细介绍了Leantime项目管理系统的完整安装部署流程,涵盖了系统要求与环境准备、Docker容器化部署方案、本地生产环境安装步骤以及常见问题排查与优化建议。文章提供了从基础环境配置到高级性能优化的全方位指导,帮助用户在不同环境下成功部署Leantime系统。
系统要求与环境准备
在部署Leantime项目管理系统之前,必须确保您的服务器环境满足所有必要的系统要求。本节将详细介绍Leantime的硬件、软件和网络要求,并提供环境配置的最佳实践。
核心系统要求
Leantime作为一个功能丰富的PHP项目管理系统,对服务器环境有明确的要求。以下是部署前必须满足的基本系统配置:
| 组件 | 最低要求 | 推荐配置 | 说明 |
|---|---|---|---|
| PHP版本 | 8.2+ | 8.3+ | 必须使用PHP 8.2或更高版本 |
| 数据库 | MySQL 8.0+ 或 MariaDB 10.6+ | MySQL 8.0+ | 支持事务和UTF-8编码 |
| Web服务器 | Apache 2.4+ 或 Nginx 1.18+ | Nginx 1.22+ | 推荐使用Nginx以获得更好性能 |
| 内存 | 512MB RAM | 2GB RAM | 生产环境建议2GB以上 |
| 存储空间 | 500MB | 1GB+ | 包含系统文件和用户上传内容 |
| 处理器 | 1核心 | 2核心+ | 多核心处理器可提升并发性能 |
PHP扩展要求
Leantime依赖于多个PHP扩展来提供完整功能。以下是必须安装的扩展列表:
// 必需的核心扩展
ext-bcmath // 数学计算
ext-ctype // 字符类型检查
ext-curl // HTTP客户端
ext-dom // XML DOM处理
ext-exif // 图像元数据处理
ext-fileinfo // 文件类型检测
ext-filter // 数据过滤
ext-gd // 图像处理
ext-hash // 哈希算法
ext-ldap // LDAP认证
ext-mbstring // 多字节字符串处理
ext-mysqli // MySQL数据库连接
ext-openssl // SSL加密
ext-pcntl // 进程控制
ext-pcre // 正则表达式
ext-pdo // 数据库抽象层
ext-pdo_mysql // MySQL PDO驱动
ext-phar // PHAR包支持
ext-posix // POSIX函数
ext-session // 会话管理
ext-simplexml // 简单XML处理
ext-tokenizer // 令牌解析
ext-xml // XML处理
ext-zip // ZIP压缩支持
数据库配置要求
Leantime对数据库有特定的配置要求,确保以下设置:
-- MySQL/MariaDB配置要求
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-storage-engine = InnoDB
innodb_file_per_table = 1
max_allowed_packet = 256M
innodb_buffer_pool_size = 256M
环境配置流程
部署Leantime前的环境准备遵循以下流程:
操作系统兼容性
Leantime支持多种Linux发行版,以下是经过测试的操作系统:
| 操作系统 | 版本 | 支持状态 | 备注 |
|---|---|---|---|
| Ubuntu | 20.04 LTS+ | ✅ 完全支持 | 推荐使用22.04 LTS |
| Debian | 11+ | ✅ 完全支持 | 稳定可靠的选择 |
| CentOS | 8+ | ✅ 完全支持 | 需要EPEL仓库 |
| Rocky Linux | 8+ | ✅ 完全支持 | CentOS替代方案 |
| AlmaLinux | 8+ | ✅ 完全支持 | 企业级选择 |
| Windows Server | 2019+ | ⚠️ 部分支持 | 需要IIS和额外配置 |
网络要求
确保服务器满足以下网络配置:
- 端口开放:HTTP (80)、HTTPS (443)、数据库端口(默认3306)
- 域名解析:配置正确的DNS记录指向服务器
- SSL证书:生产环境必须使用有效的SSL证书
- 防火墙规则:允许Web流量和必要的出站连接
性能优化建议
对于生产环境部署,建议进行以下性能优化配置:
# Nginx性能优化配置示例
worker_processes auto;
worker_rlimit_nofile 100000;
events {
worker_connections 4096;
multi_accept on;
use epoll;
}
http {
# 启用gzip压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript;
# 静态文件缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
安全配置要求
安全是部署的重要考虑因素,确保以下安全配置:
# 文件权限设置
chown -R www-data:www-data /var/www/leantime
find /var/www/leantime -type d -exec chmod 755 {} \;
find /var/www/leantime -type f -exec chmod 644 {} \;
chmod -R 775 /var/www/leantime/storage/
chmod -R 775 /var/www/leantime/userfiles/
环境验证检查清单
在开始安装前,使用以下命令验证环境配置:
# 检查PHP版本和扩展
php -v
php -m | grep -E '(bcmath|ctype|curl|dom|exif|fileinfo|filter|gd|hash|ldap|mbstring|mysqli|openssl|pcntl|pcre|pdo|pdo_mysql|phar|posix|session|simplexml|tokenizer|xml|zip)'
# 检查数据库连接
mysql -u username -p -e "SELECT VERSION();"
# 检查Web服务器配置
nginx -t # 或 apachectl configtest
通过完成以上系统要求和环境准备工作,您将为Leantime的顺利部署奠定坚实基础。确保所有要求都得到满足后,即可进入下一阶段的安装部署流程。
Docker容器化部署方案
Leantime提供了完整的Docker容器化部署方案,让您能够快速、安全地在生产环境中部署这个开源项目管理工具。Docker部署不仅简化了安装过程,还提供了更好的环境隔离和可扩展性。
Docker Compose部署架构
Leantime的Docker部署采用多容器架构,主要包括以下组件:
核心配置文件解析
Leantime提供了两个主要的Docker Compose配置文件:
- 生产环境配置 (
.docker/docker-compose.yml) - 用于正式部署 - 开发环境配置 (
.dev/docker-compose.yaml) - 用于开发和测试
生产环境Docker Compose配置
version: '3.3'
services:
leantime_db:
image: mysql:8.4
container_name: mysql_leantime
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
env_file: ./.env
networks:
- leantime-net
command: --character-set-server=UTF8MB4 --collation-server=UTF8MB4_unicode_ci
leantime:
image: leantime/leantime:3.4.12
restart: unless-stopped
env_file: ./.env
ports:
- "${LEAN_PORT:-8080}:8080"
networks:
- leantime-net
volumes:
- public_userfiles:/var/www/html/public/userfiles
- userfiles:/var/www/html/userfiles
- plugins:/var/www/html/app/Plugins
- logs:/var/www/html/storage/logs
depends_on:
leantime_db:
condition: service_healthy
环境变量配置
Leantime通过环境文件(.env)进行配置,主要包含以下关键配置项:
| 环境变量 | 描述 | 默认值 | 必需 |
|---|---|---|---|
LEAN_DB_HOST | 数据库主机地址 | mysql_leantime | 是 |
LEAN_DB_USER | 数据库用户名 | - | 是 |
LEAN_DB_PASSWORD | 数据库密码 | - | 是 |
LEAN_DB_DATABASE | 数据库名称 | leantime | 是 |
LEAN_DB_PORT | 数据库端口 | 3306 | 否 |
LEAN_APP_URL | 应用访问URL | http://localhost:8080 | 否 |
LEAN_EMAIL_RETURN | 系统发件邮箱 | - | 是 |
部署步骤详解
步骤1:准备环境文件
创建.env配置文件,包含必要的数据库连接信息:
# 数据库配置
LEAN_DB_HOST=mysql_leantime
LEAN_DB_USER=leantime_admin
LEAN_DB_PASSWORD=your_secure_password
LEAN_DB_DATABASE=leantime
LEAN_DB_PORT=3306
# 应用配置
LEAN_APP_URL=https://yourdomain.com
LEAN_EMAIL_RETURN=noreply@yourdomain.com
LEAN_PORT=8080
步骤2:启动Docker服务
使用Docker Compose启动所有服务:
# 创建专用网络
docker network create leantime-net
# 启动服务
docker-compose -f .docker/docker-compose.yml up -d
步骤3:完成安装
访问应用完成初始化安装:
- 打开浏览器访问
http://your-server-ip:8080/install - 按照界面提示完成数据库安装
- 创建第一个管理员账户
- 开始使用Leantime
数据持久化策略
Leantime的Docker部署采用了多卷持久化策略,确保数据安全:
具体的卷配置如下:
| 卷名称 | 用途 | 存储路径 |
|---|---|---|
db_data | MySQL数据库数据 | /var/lib/mysql |
userfiles | 用户上传文件 | /var/www/html/userfiles |
public_userfiles | 公共用户文件 | /var/www/html/public/userfiles |
plugins | 插件文件 | /var/www/html/app/Plugins |
logs | 应用日志 | /var/www/html/storage/logs |
安全配置建议
为了增强安全性,建议进行以下配置:
security_opt:
- no-new-privileges:true
cap_add:
- CAP_CHOWN
- CAP_SETGID
- CAP_SETUID
反向代理配置
如果使用Nginx作为反向代理,需要配置以下参数:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
并设置环境变量:LEAN_APP_URL=https://yourdomain.com
监控和日志
Leantime容器提供了完整的日志输出,可以通过以下命令查看:
# 查看实时日志
docker logs -f leantime
# 查看数据库日志
docker logs -f mysql_leantime
# 查看容器状态
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
备份和恢复
定期备份是生产环境的重要环节:
# 备份数据库
docker exec mysql_leantime mysqldump -u leantime_admin -p leantime > backup.sql
# 备份用户文件
tar -czf userfiles_backup.tar.gz /var/lib/docker/volumes/leantime_userfiles
# 恢复数据库
docker exec -i mysql_leantime mysql -u leantime_admin -p leantime < backup.sql
通过Docker容器化部署,Leantime能够提供稳定、可扩展且易于维护的生产环境解决方案。这种部署方式不仅简化了安装过程,还为后续的升级和维护提供了便利。
本地生产环境安装步骤
本地生产环境安装是Leantime项目部署的核心环节,需要严格按照系统要求进行环境配置。本节将详细指导您完成从环境准备到系统初始化的完整安装流程。
系统环境要求检查
在开始安装之前,请确保您的服务器满足以下最低系统要求:
| 组件 | 最低版本 | 推荐版本 | 必需扩展 |
|---|---|---|---|
| PHP | 8.2+ | 8.3+ | bcmath, ctype, curl, dom, exif, fileinfo, filter, gd, hash, ldap, mbstring, mysql, opcache, openssl, pdo, phar, session, tokenizer, zip, simplexml |
| 数据库 | MySQL 8.0+ | MySQL 8.0+ | - |
| Web服务器 | Apache 2.4+ | Nginx 1.18+ | - |
| 内存 | 512MB | 1GB+ | - |
| 存储 | 100MB | 500MB+ | - |
安装流程概览
详细安装步骤
1. 下载最新版本
从官方发布页面获取最新的Leantime发布包:
# 使用wget下载最新版本
wget https://github.com/Leantime/leantime/releases/latest/download/Leantime-vx.x.x.zip
# 解压缩文件
unzip Leantime-vx.x.x.zip -d leantime
2. 数据库准备
创建专用的MySQL数据库和用户:
-- 创建数据库
CREATE DATABASE leantime CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建专用用户
CREATE USER 'leantime_user'@'localhost' IDENTIFIED BY 'secure_password_123';
-- 授予权限
GRANT ALL PRIVILEGES ON leantime.* TO 'leantime_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
3. 文件上传与权限设置
将解压后的文件上传到Web服务器,并设置正确的文件权限:
# 上传到Web目录(示例路径)
cp -r leantime /var/www/html/
# 设置文件权限
chown -R www-data:www-data /var/www/html/leantime
find /var/www/html/leantime -type d -exec chmod 755 {} \;
find /var/www/html/leantime -type f -exec chmod 644 {} \;
# 特殊目录权限
chmod -R 775 /var/www/html/leantime/userfiles/
chmod -R 775 /var/www/html/leantime/storage/
chmod -R 775 /var/www/html/leantime/backupdb/
4. 环境配置文件设置
复制并配置环境变量文件:
# 复制示例配置文件
cp /var/www/html/leantime/config/configuration.sample.php /var/www/html/leantime/config/.env
# 编辑环境配置文件
nano /var/www/html/leantime/config/.env
配置关键环境变量:
# 数据库配置
LEAN_DB_HOST=localhost
LEAN_DB_USER=leantime_user
LEAN_DB_PASSWORD=secure_password_123
LEAN_DB_DATABASE=leantime
LEAN_DB_PORT=3306
# 应用配置
LEAN_APP_URL=https://yourdomain.com
LEAN_SITENAME=Leantime项目管理平台
LEAN_LANGUAGE=zh-CN
LEAN_SESSION_PASSWORD=your_secure_session_password_here
# 邮件配置(可选)
LEAN_EMAIL_RETURN=noreply@yourdomain.com
LEAN_USE_SMTP=false
5. Web服务器配置
Apache配置示例:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html/leantime/public
<Directory /var/www/html/leantime/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
# 安全头
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
</Directory>
ErrorLog ${APACHE_LOG_DIR}/leantime_error.log
CustomLog ${APACHE_LOG_DIR}/leantime_access.log combined
</VirtualHost>
Nginx配置示例:
server {
listen 80;
server_name yourdomain.com;
root /var/www/html/leantime/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 安全设置
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
# 静态文件缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
6. 运行安装向导
完成上述配置后,通过浏览器访问安装页面:
https://yourdomain.com/install
安装向导将引导您完成以下步骤:
- 系统检查:验证PHP版本、扩展和文件权限
- 数据库连接测试:验证数据库配置是否正确
- 数据库初始化:自动创建所需的表和初始数据
- 管理员账户创建:设置第一个管理员用户
- 完成安装:系统重定向到登录页面
7. 安装后配置优化
安装完成后,建议进行以下优化配置:
# 设置定时任务(用于邮件通知、报告生成等)
crontab -e
# 添加以下定时任务
*/5 * * * * cd /var/www/html/leantime && php bin/leantime cron:run > /dev/null 2>&1
# 启用OPcache优化(在php.ini中)
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
# 配置PHP内存限制
memory_limit = 256M
max_execution_time = 120
upload_max_filesize = 64M
post_max_size = 64M
常见问题排查
如果在安装过程中遇到问题,请检查以下常见问题:
- 文件权限问题:确保Web服务器用户对相关目录有写权限
- PHP扩展缺失:使用
php -m命令检查所有必需扩展是否已启用 - 数据库连接失败:验证数据库用户名、密码和主机配置
- URL重写问题:确保Web服务器的rewrite模块已启用
通过以上步骤,您应该能够成功完成Leantime的本地生产环境安装。安装完成后,建议立即进行系统备份并设置定期维护计划。
常见问题排查与优化建议
在Leantime的安装部署过程中,用户可能会遇到各种技术问题。本节将详细分析常见的安装部署问题,并提供专业的排查方法和优化建议,帮助您快速解决部署难题并优化系统性能。
数据库连接问题排查
数据库连接是Leantime安装过程中最常见的故障点。以下是一些典型的数据库连接错误及其解决方案:
常见错误现象:
- "SQLSTATE[HY000] [2002] Connection refused"
- "Access denied for user 'username'@'localhost'"
- "Unknown database 'leantime'"
排查步骤:
- 验证数据库服务状态
# 检查MySQL服务状态
systemctl status mysql
# 或
service mysql status
# 检查MariaDB服务状态
systemctl status mariadb
- 检查数据库连接参数 确保
.env文件中的数据库配置正确:
LEAN_DB_HOST=localhost
LEAN_DB_USER=leantime_user
LEAN_DB_PASSWORD=your_secure_password
LEAN_DB_DATABASE=leantime_db
LEAN_DB_PORT=3306
- 手动测试数据库连接
mysql -h localhost -u leantime_user -p -D leantime_db
- 检查防火墙设置
# 检查3306端口是否开放
sudo ufw status
sudo ufw allow 3306
数据库配置优化建议:
文件权限问题处理
文件权限问题通常出现在Linux环境中,特别是使用Apache或Nginx时:
常见权限错误:
- "Failed to open stream: Permission denied"
- "The directory is not writable"
- 上传文件功能失效
权限修复命令:
# 设置正确的文件权限
sudo chown -R www-data:www-data /var/www/leantime
sudo find /var/www/leantime -type d -exec chmod 755 {} \;
sudo find /var/www/leantime -type f -exec chmod 644 {} \;
# 特殊目录需要写权限
sudo chmod -R 775 /var/www/leantime/storage/
sudo chmod -R 775 /var/www/leantime/userfiles/
sudo chmod -R 775 /var/www/leantime/app/Plugins/
SELinux环境额外配置:
# 检查SELinux状态
sestatus
# 如果启用,设置正确的上下文
sudo chcon -R -t httpd_sys_rw_content_t /var/www/leantime/storage/
sudo chcon -R -t httpd_sys_rw_content_t /var/www/leantime/userfiles/
PHP扩展缺失排查
Leantime需要特定的PHP扩展才能正常运行:
必需扩展检查:
# 检查PHP扩展状态
php -m | grep -E 'bcmath|ctype|curl|dom|exif|fileinfo|filter|gd|hash|ldap|mbstring|mysql|opcache|openssl|pdo|phar|session|tokenizer|zip|simplexml'
安装缺失扩展(Ubuntu/Debian):
# 安装常见扩展
sudo apt-get install php8.2-bcmath php8.2-curl php8.2-gd php8.2-mbstring \
php8.2-mysql php8.2-xml php8.2-zip php8.2-ldap php8.2-opcache
PHP配置优化:
; php.ini 优化设置
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
; OPcache 配置
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
Docker部署问题排查
Docker环境下的常见问题及解决方案:
容器网络问题:
# 检查容器网络
docker network ls
docker network inspect leantime-net
# 创建专用网络
docker network create leantime-net
数据持久化配置:
# docker-compose.yml 数据卷配置示例
version: '3.8'
services:
leantime:
image: leantime/leantime:latest
volumes:
- leantime_plugins:/var/www/html/app/Plugins
- leantime_userfiles:/var/www/html/userfiles
- leantime_storage:/var/www/html/storage
networks:
- leantime-net
volumes:
leantime_plugins:
leantime_userfiles:
leantime_storage:
networks:
leantime-net:
driver: bridge
环境变量验证:
# 检查容器环境变量
docker exec leantime env | grep LEAN_
# 正确的环境变量示例
LEAN_APP_URL=https://yourdomain.com
LEAN_DB_HOST=mysql_leantime
LEAN_DB_USER=leantime_user
LEAN_DB_PASSWORD=secure_password_123
LEAN_DB_DATABASE=leantime_db
性能优化建议
数据库优化配置:
-- MySQL性能优化参数
SET GLOBAL innodb_buffer_pool_size = 1G;
SET GLOBAL query_cache_size = 128M;
SET GLOBAL tmp_table_size = 256M;
SET GLOBAL max_heap_table_size = 256M;
Web服务器优化:
# Nginx配置优化
server {
# ... 其他配置
# 启用Gzip压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
应用程序缓存配置: 在.env文件中启用缓存:
LEAN_CACHE_DRIVER=redis
LEAN_REDIS_HOST=127.0.0.1
LEAN_REDIS_PASSWORD=null
LEAN_REDIS_PORT=6379
LEAN_REDIS_DATABASE=0
安全加固建议
环境安全配置:
# .env 安全设置
LEAN_APP_DEBUG=false
LEAN_APP_ENV=production
LEAN_SESSION_PASSWORD=your_very_secure_random_string_here
定期维护任务:
# 数据库备份
php bin/leantime system:backup-db
# 清理临时文件
php bin/leantime system:cleanup-orphaned-files
# 更新系统
php bin/leantime system:update
监控和日志:
# 查看应用程序日志
tail -f /var/www/leantime/storage/logs/laravel.log
# 监控系统资源
htop
iotop -o
通过以上系统的排查方法和优化建议,您可以快速解决Leantime部署过程中的常见问题,并确保系统在生产环境中稳定高效运行。记得定期检查系统日志和性能指标,及时发现并处理潜在问题。
总结
通过本文的详细指导,您应该已经掌握了Leantime项目管理系统在各种环境下的完整部署流程。从系统要求准备到Docker容器化部署,再到本地生产环境安装,以及常见问题的排查和性能优化,本文提供了全方位的解决方案。正确的环境配置、权限设置和优化建议是确保Leantime稳定运行的关键。定期维护、监控系统日志和实施安全加固措施将帮助您保持系统的高效性和安全性。无论选择Docker部署还是传统本地安装,遵循本文的指导都将确保您的Leantime系统能够为团队提供可靠的项目管理服务。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



