1. EduSoho企培版部署概述
EduSoho企培版是国内领先的企业在线培训系统解决方案,基于PHP+MySQL技术栈开发,采用B/S架构设计。这套系统特别适合200-5000人规模的企业搭建内部知识管理体系,我们团队最近为三家制造业客户完成了部署实施,实测单服务器可稳定支撑300人同时在线学习。
与开源版相比,企培版增加了组织架构同步、岗位能力模型、学习路径规划等企业专属功能。部署过程主要涉及四个技术环节:服务器环境配置、数据库初始化、系统安装调试以及与企业现有系统的对接集成。下面我会结合最近在汽车零部件行业的实际部署案例,详细说明每个环节的操作要点。
2. 部署环境准备
2.1 服务器配置建议
根据用户规模推荐以下配置方案(实测数据):
- 200人以下:2核4G云服务器 + 50G系统盘
- 200-1000人:4核8G云服务器 + 100G系统盘(需挂载独立数据盘)
- 1000人以上:建议采用8核16G集群部署
重要提示:务必选择CentOS 7.6+或Ubuntu 18.04+系统,Windows Server会出现兼容性问题。我们曾遇到客户使用Windows Server 2019导致课程视频转码失败的情况。
2.2 基础环境安装
执行以下命令安装必要组件(以CentOS 7为例):
bash复制# 安装EPEL源
yum install -y epel-release
# 安装基础组件
yum install -y nginx php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip mysql-server redis
PHP版本需要7.2-7.4之间,不建议使用PHP8。配置php.ini关键参数:
ini复制memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
2.3 数据库配置
MySQL建议5.7版本,创建专用数据库用户:
sql复制CREATE DATABASE edusoho DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'es_user'@'localhost' IDENTIFIED BY 'StrongPassword@123';
GRANT ALL PRIVILEGES ON edusoho.* TO 'es_user'@'localhost';
FLUSH PRIVILEGES;
3. 系统安装与配置
3.1 源码部署
获取安装包后解压到web目录:
bash复制wget https://download.edusoho.com/edusoho-enterprise-latest.tar.gz
tar zxvf edusoho-enterprise-latest.tar.gz -C /var/www/
chown -R nginx:nginx /var/www/edusoho
Nginx配置示例(关键部分):
nginx复制server {
listen 80;
server_name training.yourcompany.com;
root /var/www/edusoho/web;
location / {
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/udisk {
internal;
root /var/www/edusoho/app/data/;
}
}
3.2 安装向导配置
通过浏览器访问完成安装:
- 检查环境依赖(需全部通过)
- 配置数据库连接信息
- 设置管理员账号(建议使用企业邮箱)
- 初始化演示数据(可选)
安装完成后立即删除install.php文件:
bash复制rm -f /var/www/edusoho/web/install.php
4. 企业级功能配置
4.1 组织架构同步
支持三种对接方式:
- 企业微信/钉钉同步(推荐)
- LDAP协议对接
- CSV文件批量导入
以企业微信为例的对接步骤:
- 在企微后台创建自建应用
- 配置通讯录API权限
- 在EduSoho后台填写CorpID和Secret
- 设置部门映射关系
4.2 岗位能力模型配置
典型配置流程:
- 在"岗位管理"创建岗位(如销售岗、技术岗)
- 为每个岗位添加能力项(如"产品知识"、"沟通技巧")
- 关联对应课程体系
- 设置达标标准(如完成80%必修课)
5. 性能优化与运维
5.1 缓存配置
Redis配置示例(/etc/redis.conf):
conf复制maxmemory 1gb
maxmemory-policy allkeys-lru
在EduSoho配置文件中启用Redis:
php复制// app/config/parameters.yml
redis:
host: 127.0.0.1
port: 6379
timeout: 5
5.2 定时任务设置
添加系统Crontab:
bash复制# 每天凌晨执行数据统计
0 3 * * * php /var/www/edusoho/app/console util:statistics
# 每5分钟检查课程到期
*/5 * * * * php /var/www/edusoho/app/console course:notify
6. 常见问题排查
6.1 视频转码失败
典型错误现象:
- 上传MP4视频后无法播放
- 后台显示"转码队列积压"
解决方案:
- 检查FFmpeg安装:
bash复制
ffmpeg -version - 确保PHP可执行目录在PATH中
- 增加PHP超时时间至600秒
6.2 企业微信同步异常
排查步骤:
- 检查企微API权限是否完整
- 验证AccessToken获取是否正常
- 查看日志文件:
bash复制tail -f /var/www/edusoho/app/logs/prod.log
7. 安全加固建议
-
定期备份策略:
bash复制# 数据库备份 mysqldump -u es_user -p edusoho > edusoho_$(date +%Y%m%d).sql # 文件备份 tar zcvf edusoho_backup_$(date +%Y%m%d).tar.gz /var/www/edusoho -
安全防护措施:
- 限制admin.php访问IP
- 启用HTTPS加密
- 设置文件目录权限:
bash复制chmod 750 /var/www/edusoho/app/config chmod 640 /var/www/edusoho/app/config/parameters.yml
-
监控脚本示例(检测异常登录):
php复制#!/usr/bin/env php
<?php
require '/var/www/edusoho/app/autoload.php';
$container = require '/var/www/edusoho/app/container.php';
$logRepo = $container->get('system_log_repository');
$abnormalLogins = $logRepo->findAbnormalLogins(5); // 5分钟内多次失败
if ($abnormalLogins) {
mail('admin@company.com', '安全警报', '检测到异常登录行为');
}
这套部署方案已经在多个行业客户环境验证过稳定性,包括制造业、零售业和金融机构。实际部署时建议先搭建测试环境验证所有功能模块,特别是与企业现有系统的集成部分。对于500人以上的企业,可以考虑增加文件存储分离部署,将课程视频等大文件存储到OSS对象存储,能显著降低主服务器负载。
