1. EduSoho企培版部署全流程解析
作为国内领先的企业在线学习解决方案,EduSoho企培版凭借其完善的课程管理、考试系统和数据分析功能,已成为众多中大型企业搭建内部培训平台的首选。我在金融、制造等行业实施过7次EduSoho企培版部署,总结出这套经过实战检验的部署方案。
1.1 环境准备要点
服务器配置建议选择4核8G起步,实测低于此配置在并发培训时会出现响应延迟。必须提前准备:
- 纯净的CentOS 7.6/7.9系统(实测与EduSoho兼容性最佳)
- 已备案域名(企业微信集成必须)
- SSL证书(建议使用TrustAsia免费证书)
- 至少100GB的NAS存储(用于课程视频存放)
重要提示:切勿使用宝塔面板等集成环境,官方明确声明只支持纯净系统环境。我曾遇到客户因使用AMH面板导致课程上传功能异常的案例。
1.2 依赖组件安装
执行以下命令安装基础依赖:
bash复制yum install -y epel-release
yum install -y nginx mariadb-server php-fpm php-mysqlnd php-gd php-mbstring php-xml
PHP版本需要特别注意:
bash复制# 添加Remi源
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum update -y php*
配置MySQL时务必执行:
sql复制CREATE DATABASE edusoho DEFAULT CHARACTER SET utf8mb4;
GRANT ALL PRIVILEGES ON edusoho.* TO 'edusoho'@'localhost' IDENTIFIED BY '复杂密码@123';
FLUSH PRIVILEGES;
2. 核心部署流程详解
2.1 源码包处理技巧
从官网下载的安装包需要特殊处理:
bash复制unzip EduSoho-企培版-8.0.15.zip -d /var/www
chown -R nginx:nginx /var/www/edusoho
chmod -R 755 /var/www/edusoho/app/cache
chmod -R 755 /var/www/edusoho/app/logs
遇到过因权限问题导致安装向导无法写入配置的案例,建议提前创建空配置文件:
bash复制touch /var/www/edusoho/app/config/parameters.yml
chmod 777 /var/www/edusoho/app/config/parameters.yml
2.2 Nginx关键配置
以下配置经过200人并发测试验证:
nginx复制server {
listen 80;
server_name training.yourcompany.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name training.yourcompany.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
root /var/www/edusoho/web;
index app.php;
location / {
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
}
location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
expires 3y;
access_log off;
gzip off;
}
location ~* \.(css|js)$ {
expires 1y;
access_log off;
gzip on;
gzip_types text/css application/javascript;
}
}
3. 企业级功能配置
3.1 邮件服务对接
使用阿里云邮件推送的配置示例:
yaml复制# app/config/parameters.yml
mailer_transport: smtp
mailer_host: smtpdm.aliyun.com
mailer_port: 465
mailer_encryption: ssl
mailer_auth_mode: login
mailer_user: noreply@yourcompany.com
mailer_password: 阿里云SMTP密码
3.2 存储优化方案
建议将课程视频与系统分离存储,修改配置:
yaml复制# app/config/parameters.yml
cloud_secret_key: 阿里云OSS_Key
cloud_access_key: 阿里云OSS_Secret
cloud_bucket: yourcompany-edu
cloud_endpoint: oss-cn-hangzhou.aliyuncs.com
cloud_is_internal: false
cloud_enable: 1
4. 典型问题排查指南
4.1 安装向导白屏问题
常见原因及解决方案:
-
SELinux未关闭:
bash复制setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config -
PHP扩展缺失:
bash复制
yum install -y php-opcache php-curl systemctl restart php-fpm -
目录权限异常:
bash复制chmod -R 777 /var/www/edusoho/app/cache chmod -R 777 /var/www/edusoho/app/logs
4.2 课程视频播放异常
通过Nginx日志分析:
bash复制tail -f /var/log/nginx/error.log
常见解决方案:
-
增加Nginx超时时间:
nginx复制proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; -
调整PHP上传限制:
ini复制; /etc/php.ini upload_max_filesize = 1024M post_max_size = 1024M max_execution_time = 600
5. 性能调优实战
5.1 数据库优化配置
在my.cnf中添加:
ini复制[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
query_cache_size = 64M
table_open_cache = 4000
5.2 PHP-FPM优化参数
ini复制; /etc/php-fpm.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 30
5.3 定时任务配置
添加企业培训特有的定时任务:
bash复制# crontab -e
0 3 * * * /usr/bin/php /var/www/edusoho/app/console system:send-notify-mail
0 2 * * * /usr/bin/php /var/www/edusoho/app/console system:delete-expired-token
6. 企业微信集成方案
6.1 单点登录配置
在企培版后台配置:
code复制应用主页:https://training.yourcompany.com/
可信域名:training.yourcompany.com
授权回调域:training.yourcompany.com
6.2 部门同步设置
使用API对接时需要注意:
php复制// 在自定义插件中处理部门树形结构
$departments = $this->getWeChatDepartments();
$this->buildDepartmentTree($departments, 0);
7. 安全加固措施
7.1 后台防护方案
-
修改默认后台路径:
yaml复制# app/config/parameters.yml admin_prefix: /secret-admin-path -
添加IP白名单限制:
nginx复制location ^~ /admin { allow 192.168.1.0/24; deny all; }
7.2 定期维护脚本
创建自动化维护脚本:
bash复制#!/bin/bash
# 清理30天前的日志
find /var/www/edusoho/app/logs -type f -mtime +30 -delete
# 优化数据库
mysql -u root -p -e "optimize table edusoho.course_member"
经过三次完整部署周期验证,这套方案可支持500人同时在线学习,视频课程加载速度控制在2秒内。最关键的是提前规划好存储方案,我们曾因初期使用本地存储导致后期迁移耗费32个工时。建议企业直接采用OSS对象存储,虽然初期成本高15%,但后期运维效率提升300%。
