惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
博客园_首页
V
V2EX
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
Recorded Future
Recorded Future
J
Java Code Geeks
Martin Fowler
Martin Fowler
小众软件
小众软件
人人都是产品经理
人人都是产品经理
Help Net Security
Help Net Security
The Register - Security
The Register - Security
B
Blog RSS Feed
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
D
DataBreaches.Net
博客园 - 【当耐特】
K
Kaspersky official blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
Jina AI
Jina AI
G
GRAHAM CLULEY
H
Help Net Security
D
Docker
Microsoft Security Blog
Microsoft Security Blog
S
Securelist
O
OpenAI News
U
Unit 42
V2EX - 技术
V2EX - 技术
腾讯CDC
罗磊的独立博客

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间
DzzOffice 部署 | 泠泫凝的异次元空间
Lxn's Area · 2023-01-01 · via 泠泫凝的异次元空间

基于Ubuntu操作系统部署免费开源OA:DzzOffice和周边插件。

DzzOffice是一套开源办公套件,适用于企业、团队搭建自己的 类似“Google企业应用套件”、“微软Office365”的企业协同办公平台。

我个人的评价是是一套适合小型企业或团队的OA套件,功能比较强大,后端支持对接多种云端服务,支持Office在线协作编辑。

前期准备

建议在开始安装前完整阅读本文,并按照本节清单准备对应性能水平的设备与对应版本的程序包。

基础环境和软件版本

我采用的是Ubuntu 20.04.5 Server LTS版本(全新安装),主机配置为8核8G内存128G硬盘。

DzzOffice版本为2.02.1,于Github Release下载。

PHP使用7.2版本,MySQL使用5.7版本。

MySQL离线安装包下载

由于Ubuntu的APT仓库已不再提供旧版本的MySQL,默认安装出来应该就是8.0,因此这里需要离线安装。至于DzzOffice是否兼容8.0版本的MySQL,我这里没有测试。

打开ustc的MySQL镜像源页面,找到mysql-server_<Version>-1ubuntu18.04_<arch>.deb-bundle.tar文件,其中Version找最新的,arch根据实际架构情况选择,该包即为离线的完整安装包。

域名和SSL

这一步是可选项,需要根据不同的情况去决定。

  • 如果只是内网使用内网访问,则这一步可以忽略(最简单);
  • 如果是在公网上用IP访问,则这一步也可以忽略(最低安全性);
  • 如果是在公网上使用域名访问,则只需要将本机IP解析到对应的域名即可(最低安全性);
  • 如果是在公网上使用域名访问且对安全性有要求,则需要将本机IP解析到对应的域名,并为对应的域名申请SSL证书。

基础环境配置和准备

这一步主要是一些基础的环境配置和组件准备。

MySQL

DzzOffice 支持 MySQL5+ 版本,这里以5.7版本为例。

  1. 首先确保系统是干净的,建议先Purge一下:
    1
    apt autoremove --purge mysql-server* mysql-common
  2. 将刚才下载的tar包解压出来:
    1
    tar -xvf mysql-server_5.7.38-1ubuntu18.04_amd64.deb-bundle.tar
  3. 安装依赖项(不过这些依赖项可能并不都是必需的。都是必需的,我说是就是):
    1
    apt install -y libtinfo5 libjson-perl libaio1 libmecab2
  4. 进入刚才解压出来的文件夹,按如下顺序安装:
    一定要按照顺序一条一条安装,否则必报错还删不干净!!!
    1
    2
    3
    4
    5
    6
    7
    8
    dpkg -i mysql-common_5.7.38-1ubuntu18.04_amd64.deb
    dpkg -i mysql-community-client_5.7.38-1ubuntu18.04_amd64.deb
    dpkg -i libmysqlclient20_5.7.38-1ubuntu18.04_amd64.deb \
    libmysqlclient-dev_5.7.38-1ubuntu18.04_amd64.deb
    dpkg -i mysql-client_5.7.38-1ubuntu18.04_amd64.deb
    dpkg -i mysql-community-server_5.7.38-1ubuntu18.04_amd64.deb

    dpkg -i mysql-server_5.7.38-1ubuntu18.04_amd64.deb
  5. 最后mysql -uroot -p看一下能否正常登录,能登上就装完了。

Apache2和PHP

  1. 安装Apache2:
    1
    apt install apache2 openssl -y
  2. 设置Apache2绕开80/443端口:
    打开/etc/apache2/ports.conf文件,将里面的原有文字全部注释,然后添加如下行监听随便哪个端口:
    1
    Listen 1919
    因为按照本文计划路径,是不需要Apache2监听443(或者说HTTPS)端口的,因此这里也就不再监听额外端口,由Nginx做外部HTTPS流量代理。
    设置好之后重启一下Apache2:
    1
    2
    systemctl daemon-reload
    systemctl restart apache2
  3. 添加PHP存储库:
    1
    add-apt-repository ppa:ondrej/php
    注:如果感觉PPA太慢了可以看一下这篇文章PPA使用国内CDN加速
  4. 安装PHP 7.2
    1
    apt install php7.2 php7.2-mysql php7.2-xml php7.2-curl php7.2-zip php7.2-gd
    该命令会自动安装如下包:libapache2-mod-php7.2 php-common php7.2 php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline,包含全部DzzOffice需要的组件。

至此Apache2和PHP就安装完成了,由于本文的逻辑是使用Nginx作为外部流量代理,因此直接使用默认的Apache2的配置即可。

PHP配置

打开/etc/php/7.2/apache2/php.ini文件,找到extension=mysqli(在大概800多行,就别手动往下滑了,直接查找吧),取消如下行的注释:

1
2
3
extension=curl
extension=mysqli
extension=pdo_mysql

其他配置均不用动,保存后重启Apache2。

Nginx

安装Nginx作为外部代理,其实在本案例中直接用Apache2也是一样的。

  1. Nginx的安装就简单了:
    1
    apt install -y nginx
  2. 把刚才申请的域名证书放在某个位置,然后把路径完整复制出来。
  3. /etc/nginx/conf.d目录下新建配置文件:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    server {
    listen 80;
    # 填自己的域名
    server_name dzz.anavi.cn;
    rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

    server {
    listen 443 ssl http2;
    # 填自己的域名
    server_name dzz.anavi.cn;

    # SSL证书(*.crt/*.pem)
    ssl_certificate /etc/nginx/cert/dzz.anavi.cn_bundle.crt;
    # SSL证书密钥(*.key)
    ssl_certificate_key /etc/nginx/cert/dzz.anavi.cn.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;

    location / {
    # 如果上面的端口号改过则这里也要改
    proxy_pass http://localhost:1919;
    # 防止跳转错误
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # 要求浏览器转换HTTP到HTTPS,避免混合内容被ban的问题
    add_header Content-Security-Policy upgrade-insecure-requests;
    }
    }
    写完配置文件后保存测试一下:
    1
    nginx -t
  4. 重载nginx:
    1
    systemctl restart nginx
  5. 此时访问https://dzz.anavi.cn,如果能够正确出现Apache2 Ubuntu Default Page即可。
  6. (此步非必须,按照实际情况操作)如果是从APT源安装的Apache2和Nginx则需要打开/etc/nginx/sites-available/default,找到root /var/www/html;行,将里面的路径改到别的地方(随便哪个空文件夹都行,但是必须是实际存在且不包含敏感数据的文件夹),否则会和Apache2的数据文件夹产生冲突留下安全隐患,修改好后重启nginx即可。

创建数据库

这一步主要是创建数据库以便DzzOffice连接。

  1. 进入数据库:
    1
    mysql -uroot -p
  2. 输入密码后创建数据库:
    1
    CREATE DATABASE IF NOT EXISTS dzzoffice DEFAULT CHARACTER SET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci;
  3. 创建用户,将命令行内{password}改为你的自定义密码,不要使用Root密码
    1
    CREATE USER 'dzzoffice'@'localhost' IDENTIFIED BY '{password}';
  4. 授予用户访问数据库的权限并强制刷新权限:
    1
    2
    GRANT ALL PRIVILEGES ON dzzoffice.* TO 'dzzoffice'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  5. 最后退出数据库即可。

安装DzzOffice

其实这一步反而是整个流程中最简单的,因为只需要你解压之后访问WebUI即可。

导入主程序文件

  1. /var/www/html文件夹,清空里面的所有文件;
  2. 将刚才下载DzzOffice主程序包整个解压到/var/www/html文件夹内。

导入完成。

设置权限

将主程序下的dataconfig两个文件夹设置递归0777。

设置DzzOffice

打开安装页面按照向导提示安装即可。

1
https://dzz.anavi.cn/install/

删除安装器

为确保安全,当安装完成后出现“恭喜!安装成功”后,删除主程序目录下的install文件夹。

OnlyOffice部署

本来是想写手动部署的,但是本地测试的时候反复失败,遂放弃,还是用Docker好。

OnlyOffice的部署不是必需的,且OnlyOffice需要的性能会比较高,通常建议单独部署在一台虚拟机上。

安装Docker

详见本站文章Docker手记

拉取仓库

1
docker run -i -t -d -p 8080:80 --restart=always onlyoffice/documentserver

成功拉取仓库之后访问http://ip:8080,此时应该会有“ONLYOFFICE Docs Community Edition installed”的页面,提示安装成功。

注意

由于上面Nginx反代的时候就已经强制启用HSTS了,因此OnlyOffice也必须要有自己的域名和SSL证书。操作这里不再赘述,根据上面操作重新来一遍就行了。

参考资料

排名不分先后。

本站文章

非本站文章

 上一篇

Linux Network CentOS ubuntu