派胜OA - Linux 部署 ExpressOA Elite v3.10(系统环境配置)
重要
ExpressOA Elite v3.10 使用全球最佳编程语言 C# 构建(.NET 跨平台、高性能、开源免费)。ExpressOA 包含自托管 Kestrel Web 服务器,Kestrel 可以单独使用,也可以与反向代理服务器一起使用。
ExpressOA 应用程序 runroot 文件夹中包含应用程序目录结构。
ExpressOA 在 Linux 上从 runroot/ExpressOA.dll 文件启动。
本文教程演示命令适用于 Ubuntu 24.04, 22.04, 20.04 、 Debian 12.x, 11.x 和 openEuler 24.03 LTS, 22.03 LTS。
在 Linux 上,建议使用的托管方式:
执行 Linux 命令 chmod,设置文件系统权限。
l使用 Systemd 托管 ExpressOA
l使用 Nginx 托管 ExpressOA
l使用 Nginx 托管 ExpressOA
(1)部署 ExpressOA Elite 程序文件
1.1 下载 ExpressOA Elite v3.10 程序包
https://www.paioffice.com/expressoa/elite/downloads
Linux 命令
解开 ExpressOA 程序包,移动 approot 到目标部署路径,例如 /expressoa。
sudo unzip ExpressOA-Elite-3.10.x.zip
1.24 设置 ExpressOA Elite 目录结构的文件系统权限
ExpressOA Elite v3.10 目录结构的文件系统权限列表如下。
目录/文件
文件系统权限
chmod 权限
用途
/license
读取、写入
rw-
存储许可证文件
/runroot
读取、执行
r-x
应用程序目录结构
/storageRoot
读取、写入
rw-
存储路径
/temp
读取、写入
rw-
临时文件夹
cloudstorage.json
只读
r--
云存储配置
database.json
只读
r--
配置数据库连接
执行 Linux 命令 chmod,设置文件系统权限。
Linux 命令
sudo chmod -R 666 /expressoa/license sudo chmod -R 555 /expressoa/runroot sudo chmod -R 666 /expressoa/storageRoot sudo chmod -R 666 /expressoa/temp sudo chmod 444 /expressoa/cloudstorage.json sudo chmod 444 /expressoa/database.json
(2)创建数据库结构
ExpressOA Elite v3.10 支持三种数据库:SQL Server、PostgreSQL 和 MySQL(MariaDB)。
使用 SQL Server 查询分析器,创建 ExpressOA 数据库结构(依次执行 SQL 语句 microsoft-sqlserver....sql)。
1、系统核心数据结构。
ExpressOA 程序包 database-sql-statements 文件夹下,包含创建数据库结构的 SQL 语句。
lSQL Server 2022, 2019, 2017
lSQL Server Express 2022, 2019, 2017(免费商用)
lPostgreSQL 17, 16, 15, 14, 13, 12(免费商用)
lMySQL 8.0+
lMariaDB 10.5+, 11.x
lSQL Server Express 2022, 2019, 2017(免费商用)
lPostgreSQL 17, 16, 15, 14, 13, 12(免费商用)
lMySQL 8.0+
lMariaDB 10.5+, 11.x
2.1 创建 SQL Server 数据库结构。
使用 SQL Server 管理器,新建数据库 ExpressOA(数据库名称可以自定义)。
使用 SQL Server 管理器,选择数据库 >> 属性 >> 选项,确认数据库排序规则为 Chinese_PRC_CI_AS(简体中文)。
SQL Server 数据库 简体中文的排序规则
使用 SQL Server 管理器,选择数据库 >> 属性 >> 选项,确认数据库排序规则为 Chinese_PRC_CI_AS(简体中文)。
使用 SQL Server 查询分析器,创建 ExpressOA 数据库结构(依次执行 SQL 语句 microsoft-sqlserver....sql)。
1、系统核心数据结构。
microsoft-sqlserver_core.sql2、 基本的演示工作流程(流程设计和表单模板)。
microsoft-sqlserver_demo.sql3、可选。更多的演示工作流程(流程设计和表单模板)。
microsoft-sqlserver_workflow_sample.sql
2.2 创建 PostgreSQL 数据库结构。
使用 PostgreSQL 管理工具,创建 ExpressOA 数据库结构(依次执行 SQL 语句 postgresql....sql)。
1、系统核心数据结构。
1、系统核心数据结构。
postgresql_core.sql2、基本的演示工作流程(流程设计和表单模板)。
postgresql_demo.sql3、可选。更多的演示工作流程(流程设计和表单模板)。
postgresql_workflow_sample.sql
2.3 创建 MySQL 数据库结构。
使用 MySQL 管理工具,创建 ExpressOA 数据库结构(依次执行 SQL 语句 mysql....sql)。
1、系统核心数据结构。
1、系统核心数据结构。
mysql_core.sql2、基本的演示工作流程(流程设计和表单模板)。
mysql_demo.sql3、可选。更多的演示工作流程(流程设计和表单模板)。
mysql_workflow_sample.sql
(3)配置数据库连接
编辑 database.json 数据库连接信息。
使用 SQL Server 数据库,DatabaseType 为 【空字符串】 或 【SQLServer】。
使用 PostgreSQL 数据库,DatabaseType 为【PostgreSQL】。
使用 MySQL 或兼容数据库(例如MariaDB),DatabaseType 为【MySQL】。
使用 PostgreSQL 数据库
使用 MySQL 或兼容数据库(例如MariaDB)
使用 SQL Server 数据库,DatabaseType 为 【空字符串】 或 【SQLServer】。
使用 PostgreSQL 数据库,DatabaseType 为【PostgreSQL】。
使用 MySQL 或兼容数据库(例如MariaDB),DatabaseType 为【MySQL】。
重要:在 json 配置文件中,使用两个 \\ 代表一个 \。
使用 SQLServer 数据库,DatabaseType 为 【空字符串】 或 【SQLServer】。
{ "DatabaseType": "SQLServer", "ConnectionStrings": { "SQLServer": "database=ExpressOA;Data Source=localhost;User ID=sa;password=YourPassword;Connect Timeout=60;TrustServerCertificate=true", "PostgreSQL": "Database=ExpressOA;Host=localhost;Port=5432;Username=postgres;Password=YourPassword", "MySQL": "Database=ExpressOA;Server=localhost;Port=3306;User ID=root;Password=YourPassword" } }
使用 PostgreSQL 数据库
{ "DatabaseType": "PostgreSQL", "ConnectionStrings": { "SQLServer": "database=ExpressOA;Data Source=localhost;User ID=sa;password=YourPassword;Connect Timeout=60;TrustServerCertificate=true", "PostgreSQL": "Database=ExpressOA;Host=localhost;Port=5432;Username=postgres;Password=YourPassword", "MySQL": "Database=ExpressOA;Server=localhost;Port=3306;User ID=root;Password=YourPassword" } }
使用 MySQL 或兼容数据库(例如MariaDB)
{ "DatabaseType": "MySQL", "ConnectionStrings": { "SQLServer": "database=ExpressOA;Data Source=localhost;User ID=sa;password=YourPassword;Connect Timeout=60;TrustServerCertificate=true", "PostgreSQL": "Database=ExpressOA;Host=localhost;Port=5432;Username=postgres;Password=YourPassword", "MySQL": "Database=ExpressOA;Server=localhost;Port=3306;User ID=root;Password=YourPassword" } }