丽晶ERP企业微信数据分析系统 - 安装说明

# 丽晶ERP企业微信数据分析系统 - 安装说明

## 环境要求

- **Web服务器**:Apache 2.4+ 或 Nginx 1.10+
- **PHP版本****必须使用PHP 5.6**(注意:不能使用更高版本,系统已针对PHP 5.6进行了特别优化)
- **MySQL版本**:5.5+ 或 MariaDB 10.0+
- **SQL Server版本**:2008 R2 或更高版本
- **PHP扩展**
  - MySQL相关:mysqli
  - SQL Server相关:mssql_* 扩展 或 pdo_dblib
  - 通用扩展:curl、json、session、gd
- **服务器配置**:建议至少2GB RAM,双核CPU,确保系统运行流畅

## 安装步骤

### 1. 准备工作

1. 确保服务器环境满足上述要求,**特别注意PHP必须使用5.6版本**
2. 下载系统代码包并解压到Web服务器根目录
3. 设置文件权限:
   - Windows服务器:确保IIS用户有读写权限
   - Linux服务器:执行 `chmod -R 755 /path/to/system`
   - 确保`install/`、`template/cache/`目录有写入权限

### 2. MySQL数据库配置(config目录配置)

1. **数据库准备**
   - 创建MySQL数据库,建议命名为lj_erp
   - 设置数据库编码为UTF-8
   - 为数据库创建专用用户并分配适当权限(SELECT, INSERT, UPDATE, DELETE)

2. **数据导入**
   - 导入`install/install.sql`文件到数据库中
   - 执行导入命令:`mysql -u 用户名 -p 数据库名 < install/install.sql`
   - 确认导入成功,检查表结构是否完整

3. **配置数据库连接**
   - 重要:系统将从`config/`目录读取数据库配置
   - 编辑`config/MySQL_config.php`文件
   - 修改以下参数为实际环境的值:
     ```php
     return array(
         'dbhost' => 'localhost',    // 数据库主机
         'dbuser' => 'root',         // 数据库用户名
         'dbpwd' => 'password',      // 数据库密码
         'dbname' => 'lj_erp',       // 数据库名称
         'dbport' => '3306',         // 数据库端口
         'charset' => 'utf8'         // 数据库编码
     );
     ```

4. **常见MySQL连接问题排查**
   - 错误:Access denied for user - 检查用户名和密码是否正确
   - 错误:Unknown database - 确保数据库名称正确且已创建
   - 错误:Can't connect to MySQL server - 检查MySQL服务是否启动
   - PHP扩展问题:确保PHP已启用mysqli扩展

### 3. SQL Server数据库配置(双数据库模式 - config目录配置)

1. **扩展准备**
   - 确保PHP已安装SQL Server相关扩展(mssql_* 或 pdo_dblib)
   - 验证扩展是否正确加载:执行phpinfo()检查扩展状态

2. **配置数据库连接**
   - 重要:系统将从`config/`目录读取SQL Server配置
   - 编辑`config/SQLserver_config.php`文件
   - 修改以下参数为实际环境的值:
     ```php
     return array(
         'dbhost' => '192.168.1.100', // SQL Server服务器地址
         'dbuser' => 'sa',           // SQL Server用户名
         'dbpwd' => 'password',      // SQL Server密码
         'dbname' => 'ERP_Database', // 丽晶ERP数据库名称
         'dbport' => '1433',         // SQL Server端口
         'charset' => 'utf8'         // 编码设置
     );
     ```

3. **配置文件位置注意事项**
   - 如果配置文件不存在,请确认是否在正确目录:`config/`
   - 某些版本可能使用`config/config-sql.php`或`config/common.php`作为配置文件

4. **连接测试**
   - 安装完成后,系统会自动测试SQL Server连接状态
   - 如需手动测试,可使用系统管理页面的连接测试功能

5. **常见SQL Server连接问题排查**
   - 扩展错误:确保PHP正确安装了SQL Server扩展
   - 连接超时:检查网络连接和防火墙设置
   - 认证失败:验证SQL Server用户名和密码是否正确
   - 数据库不存在:确认ERP数据库名称和实例名是否正确
   - 配置文件错误:确认配置文件路径和文件名是否正确

### 4. 企业微信配置

1. 在企业微信管理后台创建应用
2. 获取企业ID(corpid)、应用ID(agentid)、应用密钥(corpsecret)
3. 在系统数据库中,找到`system_configuration`表
4. 插入或更新企业微信配置,确保uid为`qywx`
5. 配置企业微信授权回调域名

### 5. 完成安装

1. 访问系统根目录,系统会自动检测是否已安装
2. 首次访问会自动生成`config/install.lock`文件,标志安装完成
3. 首次登录使用默认管理员账号(请在登录后立即修改密码)

## 双数据库模式配置说明

系统采用MySQL和SQL Server双数据库模式,实现数据的安全高效管理。需要分别配置:

1. **MySQL配置文件**:`config/MySQL_config.php`
   - 用于存储系统配置、用户信息、权限设置和临时缓存数据
   - 包含应用程序的核心配置数据
   - **主表保护机制**:MySQL主表只能进行查询操作,所有增删改操作必须通过临时表进行

2. **SQL Server配置文件**:`config/SQLserver_config.php`
   - 用于连接丽晶ERP系统数据库
   - 直接读取原始业务数据进行分析处理
   - 作为数据来源,为系统提供ERP业务数据

3. **双数据库协作模式配置**
   - **临时表机制**:所有数据修改操作必须通过临时表进行
   - **操作流程**:创建临时表 → 写入数据 → 关联更新主表 → 清理临时表
   - **权限设置**:确保MySQL用户具有CREATE TEMPORARY TABLES权限
   - **性能优化**:建议为临时表操作优化MySQL配置参数

4. **连接测试**
   - 安装完成后,系统会自动测试两个数据库的连接状态
   - 在系统管理页面可以查看数据库连接状态和临时表操作日志

## 常见问题

### PHP版本问题

- **错误**:页面显示空白或出现PHP语法错误
- **解决**:确保服务器上安装的是PHP 5.6版本,**不要使用更高版本**
- **注意**:系统已针对PHP 5.6进行了特别优化,使用其他版本可能导致功能异常或安全问题

### 双数据库协作模式问题

- **错误**:临时表创建失败
- **解决**:检查MySQL用户是否有CREATE TEMPORARY TABLES权限

- **错误**:临时表操作超时
- **解决**:优化MySQL配置参数,增加临时表操作超时时间

- **错误**:数据更新不一致
- **解决**:检查事务配置,确保临时表到主表的数据传输过程完整

### 数据库连接失败

#### MySQL连接失败
- 检查MySQL服务是否正常运行
- 确认数据库用户名和密码是否正确
- 检查数据库用户是否有相应的权限

#### SQL Server连接失败
- 确认PHP已安装正确的SQL Server扩展(mssql或pdo_dblib)
- 检查SQL Server服务是否可访问,包括防火墙设置
- 验证SQL Server用户名、密码和数据库名称是否正确

### 企业微信登录失败

- 确认企业微信配置信息是否正确
- 检查应用的可信域名配置
- 确保服务器可以正常访问企业微信API

### 页面显示乱码

- 检查PHP文件编码是否为UTF-8
- 确保数据库编码为UTF-8
- 检查Web服务器的默认字符集设置

## 安全建议

1. 定期更新系统代码和安全补丁
2. 修改默认的数据库用户名和密码,使用强密码
3. 配置适当的文件权限,避免敏感文件被外部访问
4. 建议在生产环境中使用HTTPS协议
5. 限制数据库用户权限,遵循最小权限原则
6. 定期备份数据库,确保数据安全
7. 配置服务器防火墙,只开放必要的端口