中小企业低成本搭建开源OA:手把手操作指南
2026-04-20 00:29:34
分类: 开源oa办公系统
tags: 开源oa搭建教程,低成本办公系统,linux部署oa,mysql数据库配置,企业私有化部署,开源系统运维,中小企业数字化
字数: 约5800字
---
最近热搜有一条关于"12306三天拒绝出票105.6万张"的新闻,背后是大量的黑产在用技术手段抢票。
这让我想到一个有趣的对比:同样是做系统,12306花了政府多少钱?很多中小企业却连一个基本的oa系统都舍不得投入。
其实现在有了开源软件,一个中小企业,花几千块服务器费用,就能搭建一套够用的私有化oa系统。
这篇文章,我来手把手带你从零搭建一套开源oa系统。
---
以50-100人规模的企业为例,服务器配置推荐:
| 配置 | 最低要求 | 推荐配置 |
|------|---------|---------|
| cpu | 2核 | 4核 |
| 内存 | 4gb | 8gb |
| 硬盘 | 50gb ssd | 100gb ssd |
| 操作系统 | centos 7 / ubuntu 20.04 | ubuntu 20.04 lts |
| 带宽 | 5mbps | 10mbps+ |
推荐云服务商:
- 阿里云:轻量应用服务器,2核4g约200元/月
- 腾讯云:类似配置,活动价可以更便宜
- 华为云:国企合规首选
注意: 国内服务器需要icp备案才能用域名访问。
---
jdk:11 或 17(推荐)
mysql:8.0+
redis:6.0+
node.js:16+(前端构建)
nginx:1.18+
maven:3.6+(java构建工具)
---
bash
sudo apt update && sudo apt upgrade -y
sudo yum update -y
---
bash
sudo apt install openjdk-17-jdk -y
java -version
---
bash
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation
创建oa数据库:
sql
mysql -u root -p
create database oa_db character set utf8mb4 collate utf8mb4_unicode_ci;
create user oa_user@localhost identified by 你的密码;
grant all privileges on oa_db.* to oa_user@localhost;
flush privileges;
exit;
---
bash
sudo apt install redis-server -y
sudo systemctl start redis
sudo systemctl enable redis
redis-cli ping
---
bash
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
---
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 16
nvm use 16
node -v # 验证
---
bash
git clone https://gitee.com/jeecg/jeecg-boot.git
cd jeecg-boot
---
编辑配置文件:
bash
vim jeecg-boot-module-system/src/main/resources/application-dev.yml
修改关键配置:
yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/oa_db?useunicode=true&characterencoding=utf-8&usessl=false&allowmultiqueries=true&servertimezone=asia/shanghai
username: oa_user
password: 你的数据库密码
redis:
host: localhost
port: 6379
password: "" # 如果没设置redis密码就留空
jeecg:
uploadpath: /opt/jeecg/upload/
---
bash
ls db/
mysql -u oa_user -p oa_db < db/jeecg-boot-mysql.sql
---
bash
mvn clean package -dskiptests
---
bash
cat > /opt/start-oa.sh << eof
#!/bin/bash
jar_path="/home/ubuntu/jeecg-boot/jeecg-boot-module-system/target/jeecg-boot-module-system-3.6.0.jar"
log_file="/opt/jeecg/logs/oa.log"
mkdir -p /opt/jeecg/logs
nohup java -jar $jar_path \
--spring.profiles.active=dev \
> $log_file 2>&1 &
echo "oa后端已启动,pid: $!"
eof
chmod +x /opt/start-oa.sh
/opt/start-oa.sh
---
bash
cd ant-design-vue-jeecg
npm install
npm run build
生成的文件在 dist/ 目录下。
---
bash
sudo vim /etc/nginx/sites-available/oa
写入以下配置:
nginx
server {
listen 80;
server_name your-domain.com; # 替换为你的域名或ip
# 前端静态文件
root /home/ubuntu/jeecg-boot/ant-design-vue-jeecg/dist;
index index.html;
# 前端路由(vue router history模式)
location / {
try_files $uri $uri/ /index.html;
}
# 后端api代理
location /jeecg-boot/ {
proxy_pass http://localhost:8080/jeecg-boot/;
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
}
# 文件上传目录
location /upload/ {
alias /opt/jeecg/upload/;
}
# 上传大小限制
client_max_body_size 50m;
}
bash
sudo ln -s /etc/nginx/sites-available/oa /etc/nginx/sites-enabled/
sudo nginx -t # 验证配置
sudo systemctl reload nginx
---
没有https,浏览器会报安全警告,而且影响seo。
用lets encrypt免费证书:
bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com
证书会自动续期,不需要手动管理。
---
bash
sudo vim /etc/systemd/system/jeecg-oa.service
ini
[unit]
description=jeecg oa system
after=network.target mysql.service redis.service
[service]
user=ubuntu
execstart=/usr/bin/java -jar /home/ubuntu/jeecg-boot/jeecg-boot-module-system/target/jeecg-boot-module-system-3.6.0.jar --spring.profiles.active=dev
restart=on-failure
restartsec=30
standardoutput=syslog
standarderror=syslog
syslogidentifier=jeecg-oa
[install]
wantedby=multi-user.target
bash
sudo systemctl daemon-reload
sudo systemctl enable jeecg-oa
sudo systemctl start jeecg-oa
sudo systemctl status jeecg-oa # 查看状态
---
问题1:后端启动失败
bash
tail -f /opt/jeecg/logs/oa.log
问题2:前端页面空白
- 检查nginx配置是否正确
- 检查dist目录是否正确生成
- 浏览器f12查看控制台报错
问题3:上传文件失败
bash
ls -la /opt/jeecg/upload/
sudo chown ubuntu:ubuntu /opt/jeecg/upload/
问题4:中文乱码
- mysql字符集必须是utf8mb4
- jdbc连接url中要有characterencoding=utf-8
---
定期备份:
bash
cat > /opt/backup-oa.sh << eof
#!/bin/bash
date=$(date +%y%m%d)
backup_dir="/opt/backup"
mkdir -p $backup_dir
mysqldump -u oa_user -p你的密码 oa_db > $backup_dir/oa_db_$date.sql
find $backup_dir -name "*.sql" -mtime +30 -delete
eof
echo "0 2 * /opt/backup-oa.sh" | crontab -
---
按照以上步骤,一个中小企业完全可以用几百块钱的服务器费用,跑起来一套完整的私有化oa系统。
数据在自己手里,功能可以定制,扩展性强——这就是开源的价值所在。
如果在搭建过程中遇到具体问题,欢迎留言描述错误信息,帮你看看怎么解决。
---
发布时间:2026-04-20
关键词:开源oa搭建,jeecg-boot部署,linux服务器,mysql配置,nginx代理,私有化oa,免费oa系统

扫一扫
微信客服在线
24小时服务热线
13807814037