1. EduSoho企培版部署概述
EduSoho企培版是一款面向企业培训场景的在线学习系统解决方案,基于PHP+MySQL技术栈开发,采用B/S架构设计。作为国内领先的企业在线培训平台,它提供了课程管理、考试测评、学习跟踪等核心功能模块,特别适合中大型企业构建内部知识管理体系。
在实际部署过程中,我们需要关注三个关键维度:首先是基础环境准备,包括服务器选型、操作系统配置和依赖组件安装;其次是平台本身的部署与初始化配置;最后是生产环境优化与安全加固。与常见的开源学习管理系统不同,EduSoho企培版对服务器性能有较高要求,特别是在高并发场景下需要特别注意资源分配。
提示:生产环境部署建议选择4核8G及以上配置的云服务器,MySQL建议使用5.7以上版本,PHP需7.2-7.4版本(不支持PHP8.x)
2. 基础环境搭建
2.1 服务器系统配置
推荐使用CentOS 7.6+或Ubuntu 18.04+作为操作系统。以下是CentOS 7下的基础环境配置步骤:
# 关闭SELinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 # 配置防火墙(开放必要端口) firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload # 安装基础工具 yum install -y wget vim net-tools epel-release2.2 PHP环境部署
EduSoho对PHP扩展有特定要求,建议使用Remi源安装:
# 添加Remi源 rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm # 安装PHP7.4及相关扩展 yum install -y php74 php74-php-fpm php74-php-mysqlnd php74-php-gd \ php74-php-mbstring php74-php-xml php74-php-zip php74-php-opcache \ php74-php-intl php74-php-soap php74-php-ldap配置php.ini关键参数调整:
memory_limit = 512M post_max_size = 100M upload_max_filesize = 100M max_execution_time = 300 opcache.enable=1 opcache.memory_consumption=1282.3 MySQL数据库安装
建议使用Percona Server 5.7版本,性能优于官方MySQL:
# 安装Percona Server yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm percona-release setup ps57 yum install -y Percona-Server-server-57 # 启动服务 systemctl start mysqld systemctl enable mysqld # 安全初始化 grep 'temporary password' /var/log/mysqld.log mysql_secure_installation创建专用数据库(字符集必须为utf8mb4):
CREATE DATABASE edusoho DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON edusoho.* TO 'edusoho'@'localhost' IDENTIFIED BY 'StrongPassword123!'; FLUSH PRIVILEGES;3. EduSoho企培版安装
3.1 源码获取与部署
从官网下载最新企培版安装包(假设为edusoho-enterprise-1.2.3.zip):
# 安装解压工具 yum install -y unzip # 部署到web目录 unzip edusoho-enterprise-1.2.3.zip -d /var/www/ chown -R apache:apache /var/www/edusoho chmod -R 755 /var/www/edusoho3.2 Nginx配置
推荐使用Nginx作为前端Web服务器,配置示例:
server { listen 80; server_name training.yourcompany.com; 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 off; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; } location ~* \.(jpg|jpeg|gif|png|ico|css|js|pdf|swf)$ { expires 30d; access_log off; } }3.3 安装向导配置
通过浏览器访问域名进入安装向导,需特别注意:
- 数据库连接使用先前创建的edusoho账号
- 管理员账号建议使用企业邮箱
- 网站URL必须填写最终访问地址(后期修改会导致功能异常)
- 首次登录后立即修改默认密码
4. 生产环境优化
4.1 性能调优
- PHP-FPM优化:
pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 30- MySQL优化(my.cnf):
innodb_buffer_pool_size = 2G innodb_log_file_size = 256M query_cache_size = 64M thread_cache_size = 8 table_open_cache = 2000- Nginx缓存优化:
open_file_cache max=2000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2;4.2 安全加固措施
- 目录权限控制:
chmod -R 750 /var/www/edusoho/app/config chmod -R 750 /var/www/edusoho/var- 定期备份策略:
# 数据库备份 mysqldump -u edusoho -p edusoho | gzip > /backup/edusoho_db_$(date +%Y%m%d).sql.gz # 代码备份 tar -czvf /backup/edusoho_code_$(date +%Y%m%d).tar.gz /var/www/edusoho- HTTPS强制跳转(Nginx配置):
server { listen 80; server_name training.yourcompany.com; return 301 https://$host$request_uri; }5. 常见问题排查
5.1 安装过程中断
现象:安装向导页面空白或报500错误 排查步骤:
- 检查/var/www/edusoho/var/logs目录下的错误日志
- 确认PHP所有必需扩展已安装
- 检查storage目录权限(需apache用户可写)
- 查看Nginx error.log是否有相关报错
5.2 上传文件失败
可能原因及解决方案:
- PHP上传限制:修改php.ini中的upload_max_filesize和post_max_size
- Nginx客户端超时:调整client_max_body_size和client_body_timeout
- 磁盘空间不足:使用df -h检查挂载点使用情况
5.3 定时任务不执行
企培版需要配置以下Cron任务:
# 每天凌晨执行数据统计 0 0 * * * /usr/bin/php /var/www/edusoho/app/console util:generate-statistics # 每5分钟执行消息队列 */5 * * * * /usr/bin/php /var/www/edusoho/app/console queue:work6. 高级功能配置
6.1 LDAP集成
在app/config/parameters.yml中添加配置:
ldap: enabled: true host: 'ldap.yourcompany.com' port: 389 bind_dn: 'cn=admin,dc=yourcompany,dc=com' bind_password: 'password' user_base_dn: 'ou=users,dc=yourcompany,dc=com' username_field: 'uid' email_field: 'mail' auth_enabled: true6.2 视频点播服务
建议使用阿里云或腾讯云的点播服务,配置步骤:
- 在云平台开通点播服务并获取API密钥
- 安装EduSoho媒体服务插件
- 在后台配置->云服务设置中填写AccessKey和Bucket信息
- 测试视频上传转码流程
6.3 移动端配置
企培版支持微信企业号集成:
- 在企业微信管理后台创建应用
- 获取CorpID和Secret
- 在EduSoho后台->移动设置中配置OAuth参数
- 测试扫码登录功能
我在实际部署过程中发现,当企业员工超过500人时,建议采用Redis缓存会话数据,可显著提升系统响应速度。配置方法是在parameters.yml中添加:
session_handler: redis redis: host: 127.0.0.1 port: 6379 database: 1 prefix: 'edusoho_sess_'