# OxOffice Online 技術手冊
提供 OxOffice Online 在安裝、設定、整合及佈署的相關文件說明。
# OxOffice Online 主程式安裝說明
本文件將說明如何從無到有重新安裝 OxOffice Online (OxOOL) 應用。
如果沒有安裝過 Nextcloud 的朋友,也可以參考 Nextcloud 快速安裝體驗(https://docs.ossii.com.tw/books/nextcloud),在同一台安裝來測試玩看看。
# 在 CentOS 7 環境下安裝(社群版)
- 下載、安裝 CentOS 7 最新版本(最新版本:2009 載點 [Minimal](https://free.nchc.org.tw/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso)、[Desktop](https://free.nchc.org.tw/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso))– 安裝 CentOS 可參考文件 [\[1\]](https://shaurong.blogspot.com/2019/10/centos-77-linux.html) [\[2\]](https://blog.csdn.net/qinzaoxiaozhu/article/details/104173348) [\[3\]](https://www.cnblogs.com/mr-xiong/p/12470034.html)
```shell
建議請記得設定成固定 IP,可參考上述安裝文件
```
- 以 root 重新登入後執行以下指令來更新、安裝相關的指令及 OxOOL Community 套件
```shell
yum update -y
yum install vim net-tools unzip wget -y
cd /etc/yum.repos.d
wget http://www.oxoffice.com.tw/yum.repo/oxool-community.repo
yum update -y
yum groupinstall "OxOOL Community Group" -y
```
- 關閉 SELinux
```shell
vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開
```
- 設定 firewalld 並開啟預設的 9980 port
```shell
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-port=9980/tcp
```
- 設定開機要啟動的服務
```shell
systemctl enable oxool
reboot
```
- 重新啟動主機,重新使用 root 登入並確認 OxOOL Community 正常啟動
```shell
netstat -tlnp
```
結果如下:
```no-dollar-sign
tcp 0 0 127.0.0.1:9981 0.0.0.0:* LISTEN 644/oxool
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
如果出現以上的結果,代表架設成功囉!
附註:如果要與 Nextcloud 檔案儲存服務整合,請參考 [Nextcloud 20 架設教學](https://docs.ossii.com.tw/books/oxoffice-online-%E6%8A%80%E8%A1%93%E6%89%8B%E5%86%8A/page/%E5%9C%A8-centos-7-%E4%B8%8B%E5%AE%89%E8%A3%9D-nextcloud-20)。
# 在 Ubuntu 18.04 環境下安裝(社群版)
- 下載、安裝 Ubuntu 18.04 最新的版本(64 位元 Server 版最新版本:下載點,也可以使用 Desktop 的 64 位元版本),安裝方式參考 [1]、[2]
建議設定成固定 IP,可參考上述安裝文件 [3]
sudo apt update
sudo apt upgrade -y
sudo apt install vim openssh-server net-tools curl -y
# 如果有重新啟動服務的提示,請選擇 yes 即可
curl http://www.oxoffice.com.tw/apt/ubuntu/oxool-deb.key | sudo apt-key add
echo "deb [arch=amd64] http://www.oxoffice.com.tw/apt/ubuntu/ oxool-v3 main" > ~/oxool.list
sudo mv ~/oxool.list /etc/apt/sources.list.d/
sudo apt update
sudo apt install oxool oxoffice* -y
sudo systemctl enable oxool
sudo reboot
- 重新啟動主機,以一般使用者登入並確認 OxOOL Community 正常啟動
sudo netstat -tlnp
結果如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9981 0.0.0.0:* LISTEN 22383/oxool
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 6523/systemd-resolv
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4389/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2575/master
tcp6 0 0 :::9980 :::* LISTEN 22383/oxool
tcp6 0 0 :::22 :::* LISTEN 4389/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2575/master
上述流程感謝 ezgo 團隊的 Franklin 協助提供~
附註:如果要與 Nextcloud 檔案儲存服務整合,請參考 Nextcloud 20 架設教學。
# 在 CentOS 7 PVE LXC 環境下安裝(社群版)
- 請先使用 PVE 下載「centos-7-default\_20190926\_amd64.tar.xz」的 LXC 範本。
[](https://docs.ossii.com.tw/uploads/images/gallery/2020-06/image-1592291177864.png)
- 建立一個新的「CT」,參考內容如下圖,但目前建議將「無特權容器」選項取消勾選,否則部份功能會有問題。
[](https://docs.ossii.com.tw/uploads/images/gallery/2021-04/8d44c28a.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2021-04/6a543cbb.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2021-04/1284acdd.png)
- 重新開機後(大約 10 秒就開完了),執行以下安裝指令:
```shell
yum install vim openssh* net-tools unzip wget -y
cd /etc/yum.repos.d
wget --no-check-certificate http://www.oxoffice.com.tw/yum.repo/oxool-community.repo
yum update -y
yum groupinstall "OxOOL Community Group" -y
```
- 設定開機要啟動的服務
```Shell
systemctl enable oxool
reboot
```
- 重新啟動主機,確認 OxOOL Community 正常啟動
```Shell
netstat -tlnp
```
結果如下:
```Shell
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9981 0.0.0.0:* LISTEN 1049/oxool
tcp6 0 0 :::9980 :::* LISTEN 1049/oxool
```
備註:執行完以上步驟後,可使用「更多」→「轉換成範本」來生成包含 OxOOL 社群版的 LXC 範本。
# 在 Ubuntu 18.04 PVE LXC 環境下安裝(社群版)
- 請先使用 PVE 下載「ubuntu-18.04-standard\_18.04.1-1\_amd64.tar.gz」的 LXC 範本。
[](https://docs.ossii.com.tw/uploads/images/gallery/2020-06/image-1592292782630.png)
- 建立一個新的「CT」,參考內容如下圖,但目前建議將「無特權容器」選項取消勾選,否則部份功能會有問題。
[](https://docs.ossii.com.tw/uploads/images/gallery/2021-04/8d44c28a.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2021-04/5fd99f76.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2021-04/df65e257.png)
- 重新開機後(大約 20 秒就開完了),執行以下安裝指令:
```Shell
apt update
apt upgrade -y
apt install vim openssh-server net-tools curl gnupg2 -y
# 如果有重新啟動服務的提示,請選擇 yes 即可
curl http://www.oxoffice.com.tw/apt/ubuntu/oxool-deb.key | apt-key add
echo "deb [arch=amd64] http://www.oxoffice.com.tw/apt/ubuntu/ oxool-v3 main" > ~/oxool.list
mv ~/oxool.list /etc/apt/sources.list.d/
apt update
apt install oxool oxoffice* -y
```
- 設定開機要啟動的服務
```Shell
systemctl enable oxool
reboot
```
- 重新啟動主機,確認 OxOOL Community 正常啟動
```Shell
netstat -tlnp
```
結果如下:
```Shell
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9981 0.0.0.0:* LISTEN 22383/oxool
tcp6 0 0 :::9980 :::* LISTEN 22383/oxool
```
備註:執行完以上步驟後,可使用「更多」→「轉換成範本」來生成包含 OxOOL 社群版的 LXC 範本。
# 在 CentOS 7 環境下安裝 OxOffice Online v4 社群版
請先下載並安裝最新版本的 CentOS 7(建議安裝 Minimal 版本),安裝完成後,請執行以下指令來更新系統,安裝必要的軟體包與 OxOffice Online v4 社群版(以下指令均以一般使用者身份執行,若使用 root 執行,則請自行去除 sudo)
```Shell
sudo yum upgrade -y
sudo yum install vim net-tools unzip wget -y
cd /etc/yum.repos.d
sudo wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-centos7.repo
sudo yum upgrade -y
sudo yum groupinstall "OxOOL Community Group" -y
```
停用 SELinux
```Shell
sudo vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開
```
設定防火牆並放行預設的 9980 port
```Shell
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-port=9980/tcp
sudo firewall-cmd --reload
```
讓開機時預設啟動 OxOOL 並重新啟動
```Shell
sudo systemctl enable oxoolwsd
sudo reboot
```
使用 netstat 確認 OxOOL 正常啟動
```Shell
sudo netstat -tlnp
```
看到有類似以下的輸出就代表 OxOOL 正常啟動
```Shell
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
# 在 Rocky Linux 8 環境下安裝 OxOffice Online v4 社群版
請先下載並安裝最新版本的 Rocky Linux 8(可參考 [Rocky Linux 8 基本安裝](https://docs.ossii.com.tw/books/rocky-linux-8)),安裝完成後,請執行以下指令來更新系統,安裝必要的軟體包與 OxOffice Online v4 社群版(以下指令均以一般使用者身份執行,若使用 root 執行,則請自行去除 sudo)
```Shell
sudo dnf config-manager --set-enabled powertools
sudo dnf upgrade -y
sudo dnf install epel-release -y
sudo dnf install vim net-tools unzip wget -y
cd /etc/yum.repos.d
sudo wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-el8.repo
sudo dnf upgrade -y
sudo dnf groupinstall "OxOOL Community Group" -y
```
停用 SELinux
```Shell
sudo vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開
```
設定防火牆並放行預設的 9980 port
```Shell
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-port=9980/tcp
sudo firewall-cmd --reload
```
讓開機時預設啟動 OxOOL 並重新啟動
```Shell
sudo systemctl enable oxoolwsd
sudo reboot
```
使用 netstat 確認 OxOOL 正常啟動
```Shell
sudo netstat -tlnp
```
看到有類似以下的輸出就代表 OxOOL 正常啟動
```Shell
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
# 在 Ubuntu 20.04 環境下安裝 OxOffice Online v4 社群版
請先下載並安裝最新版本的 Ubuntu 20.04(可參考 [Ubuntu Server 20.04 基本安裝](https://docs.ossii.com.tw/books/ubuntu-server-2004)),安裝完成後,請執行以下指令來更新系統,安裝必要的軟體包與 OxOffice Online v4 社群版
```Shell
sudo apt update
sudo apt upgrade -y
sudo apt install vim openssh-server net-tools curl -y
# 如果有重新啟動服務的提示,請選擇 yes 即可
curl http://www.oxoffice.com.tw/deb/OSSII.key | sudo apt-key add
cd /etc/apt/sources.list.d/
sudo wget http://www.oxoffice.com.tw/deb/oxool-community-v4-focal.list
sudo apt update
sudo apt install oxool -y
```
讓開機時預設啟動 OxOOL 並重新啟動
```Shell
sudo systemctl enable oxool
sudo reboot
```
使用 netstat 確認 OxOOL 正常啟動
```Shell
sudo netstat -tlnp
```
看到有類似以下的輸出就代表 OxOOL 正常啟動
```Shell
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
# 在 PVE 的 LXC 下以 CentOS 7 環境安裝 OxOffice Online v4 社群版
請先使用 PVE 的「CT 範本」功能下載 CentOS 7 的範本,在以下畫面選取「centos-7-default」後點擊右下角的「下載」
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/centos7lxc.png)
下載完成後,可在畫面中看到剛剛下載的 CentOS 7 範本
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/storage.png)
點擊右上角的「建立 CT」建立新的 LXC 容器,可參考以下圖片進行設定,每個步驟完成後請按對話方塊右下角的「繼續」,到最後一步請按「完成」
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/oxooloncentos7.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/oxooloncentos7create.png)
建立完成後,請啟動剛建立好的 LXC 容器,以 root 身份與剛才在對話方塊中設定的密碼登入,執行以下指令:
```Shell
yum install vim openssh* net-tools unzip wget -y
cd /etc/yum.repos.d
wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-centos7.repo
yum upgrade -y
yum groupinstall "OxOOL Community Group" -y
```
讓開機時預設啟動 OxOOL 並重新啟動
```Shell
systemctl enable oxoolwsd
reboot
```
使用 netstat 確認 OxOOL 正常啟動
```Shell
netstat -tlnp
```
看到有類似以下的輸出就代表 OxOOL 正常啟動
```Shell
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
備註:執行完以上步驟後,可使用「更多」→「轉換成範本」來生成包含 OxOOL 社群版的 LXC 範本。
# 在 PVE 的 LXC 下以 Rocky Linux 8 環境安裝 OxOffice Online v4 社群版
請先使用 PVE 的「CT 範本」功能下載 Rocky Linux 8 的範本,在以下畫面選取「rockylinux-8-default」後點擊右下角的「下載」
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/rockylinux8lxc.png)
下載完成後,可在畫面中看到剛剛下載的 Rocky Linux 8 範本
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/rockylinux8storage.png)
點擊右上角的「建立 CT」建立新的 LXC 容器,可參考以下圖片進行設定,每個步驟完成後請按對話方塊右下角的「繼續」,到最後一步請按「完成」
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/rockylinux8setup.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/rockylinux8create.png)
建立完成後,請啟動剛建立好的 LXC 容器,以 root 身份與剛才在對話方塊中設定的密碼登入,執行以下指令:
```Shell
dnf config-manager --set-enabled powertools
dnf install vim openssh* net-tools unzip wget -y
cd /etc/yum.repos.d
wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-el8.repo
dnf upgrade -y
dnf groupinstall "OxOOL Community Group" -y
```
讓開機時預設啟動 OxOOL 並重新啟動
```Shell
systemctl enable oxoolwsd
reboot
```
使用 netstat 確認 OxOOL 正常啟動
```Shell
netstat -tlnp
```
看到有類似以下的輸出就代表 OxOOL 正常啟動
```Shell
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
備註:執行完以上步驟後,可使用「更多」→「轉換成範本」來生成包含 OxOOL 社群版的 LXC 範本。
# 在 PVE 的 LXC 下以 Ubuntu 20.04 環境安裝 OxOffice Online v4 社群版
請先使用 PVE 的「CT 範本」功能下載 Ubuntu 20.4 的範本,在以下畫面選取「ubuntu-20.04-standard」後點擊右下角的「下載」
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/ubuntu2004lxc.png)
下載完成後,可在畫面中看到剛剛下載的 Ubuntu 20.04 範本
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/ubuntu20-04lxcstorage.png)
點擊右上角的「建立 CT」建立新的 LXC 容器,可參考以下圖片進行設定,每個步驟完成後請按對話方塊右下角的「繼續」,到最後一步請按「完成」
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/ubuntu20-04setup.png)
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/rockylinux8create.png)
建立完成後,請啟動剛建立好的 LXC 容器,以 root 身份與剛才在對話方塊中設定的密碼登入,執行以下指令:
```Shell
apt update
apt upgrade -y
apt install vim openssh-server net-tools curl gnupg2 wget -y
# 如果有重新啟動服務的提示,請選擇 yes 即可
curl http://www.oxoffice.com.tw/deb/OSSII.key | sudo apt-key add
cd /etc/apt/sources.list.d/
wget http://www.oxoffice.com.tw/deb/oxool-community-v4-focal.list
apt update
apt install oxool -y
```
讓開機時預設啟動 OxOOL 並重新啟動
```Shell
systemctl enable oxool
reboot
```
使用 netstat 確認 OxOOL 正常啟動
```Shell
netstat -tlnp
```
看到有類似以下的輸出就代表 OxOOL 正常啟動
```Shell
tcp6 0 0 :::9980 :::* LISTEN 644/oxool
```
備註:執行完以上步驟後,可使用「更多」→「轉換成範本」來生成包含 OxOOL 社群版的 LXC 範本。
# OxOffice Online 佈署設定
與 OxOffice Online 佈署及設定相關內容
# 設定啟用 OxOOL SSL 憑證
若要設定 OxOOL 服務的主機運作在 SSL 協定上時,請確認已經有申請到正式的 hostname,接下來透過以下設定方式啟動 SSL:
- 憑證申請的流程可參考「[SSL For Free 免費 SSL 憑證申請,使用 Let’s Encrypt 最簡單方法教學!](https://free.com.tw/ssl-for-free/ "SSL For Free 免費 SSL 憑證申請,使用 Let’s Encrypt 最簡單方法教學!")」這篇文章。
- 申請好了之後,請將相關的憑證上傳至 OxOOL 主機上,建議可將憑證檔案放 在 /etc/oxool/ssl 目錄下,申請完成後會有 3 個檔案。
- - ca\_bundle.crt
- certificate.crt
- private.key
- 接下來可利用 vim 調整 /etc/oxool/oxoolwsd.xml 的內容,找到以下的段落,修改 <enable>、<cert\_file\_path>、<key\_file\_path>、<ca\_file\_path> 這 4 個參數的值及路徑(實際上的路徑可依照自身的情況調整)。
```shell
true
false
/etc/oxool/ssl/certificate.crt
/etc/oxool/ssl/private.key
/etc/oxool/ssl/ca_bundle.crt
1000
```
- 存檔後,重新啟動 OxOOL 即可以 SSL 啟用 OxOOL。
```shell
# systemctl restart oxool
```
- 最後服務的位置為:
```shell
https://yourhostname:9980
```
- PS:如果您是與 Nextcloud / ownCloud 系統介接,並以 SSL 的模式執行,但 OxOOL 無法正常執行時,請務必記得以下建議:
1. 在設定 richdocument 的位置時,建議使用 FQDN 而不是 IP。
2. 如果 Nextcloud / ownCloud 及 OxOOL 的 SSL 模式都設定正常但 OxOOL 仍無法正確開啟時,請將 ca\_bundle.crt 的檔案 copy 到 Nextcloud 主程式目錄路行,並取代檔案 ca-bundle.crt(記得檔案名稱不要修改),應該就可以正常開啟。
```shell
[nextcloud主程式目錄]/resources/config/ca-bundle.crt
```
# 設定讓其它的 Nextcloud 來存取 OxOOL
在撰寫說明文件的過程中,demo 環境都是設定在「Private IP 環境」中,若您的佈署的環境為以下二種情境者,需額外進行進階的設定,二種情境如下:
- - 使用真實 IP / FQAN 對外開放服務 ( 例如:117.56.68.133 / odf.nat.gov.tw )
- Nextcloud 主機和 OxOOL 主機是分開架設的
- 請進入 OxOOL 主機,修改 /etc/oxool/oxoolwsd.xml 的內容,找到以下這段:
```shell
localhost
10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}
172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}
172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}
192\.168\.[0-9]{1,3}\.[0-9]{1,3}
117\.56\.68\.133
odf\.nat\.gov\.tw
192\.168\.1\.1
0
```
- 請依格式加入以下二段:
```shell
117\.56\.68\.133
odf\.nat\.gov\.tw
```
- 存檔後重新啟動 OxOOL
```shell
# systemctl restart oxool
```
# OxOffice Online 社群版編譯說明
如果想編譯在 GitHub 上最新版本的 OxOffice Online 社群版本,請參考本文件說明該如何建立 OxOffice Online 社群版的編譯環境及編譯流程。
# 在 CentOS 7 環境下編譯 OxOOL
- 請參考 [在 CentOS 7 環境下安裝(社群版)](https://docs.ossii.com.tw/books/oxoffice-online-%E6%8A%80%E8%A1%93%E6%89%8B%E5%86%8A/page/%E5%9C%A8-centos-7-%E7%92%B0%E5%A2%83%E4%B8%8B%E5%AE%89%E8%A3%9D%28%E7%A4%BE%E7%BE%A4%E7%89%88%29) 這篇文章的 CentOS 7 安裝 OxOOL 套件的過程,但在關閉 SELinux 後請重新開機,並以一般使用者的身份登入(打包時請勿使用 root 使用者身份打包)。
- 先關閉原本安裝的 OxOOL
```Shell
sudo systemctl stop oxool
sudo systemctl disable oxool
```
- 安裝編譯 OxOOL 要用的套件
```shell
sudo yum install epel-release -y
sudo yum update -y
sudo yum install git yum-utils libpcap libcap-devel poco-devel ccache python36-polib python36-lxml -y
sudo yum install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
```
- 安裝並設定 Node.js
```shell
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install nodejs -y
```
- 將 OxOOL 源始碼 clone 回來
```shell
git clone https://github.com/OSSII/oxool-community.git
```
- 開始編譯 OxOOL 套件
```shell
cd oxool-community
./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz #在做完以上步驟後,clone 下來的目錄內應會有一個檔名類似 oxool-3.2.11.tar.gz 的壓縮檔,將後面的 oxool-x.x.x.tar.gz 代換為此檔的檔名即可
```
- 編譯完成的 rpm 會放在以下路徑
```shell
~/rpmbuild/RPMS/x86_64
```
套件直接就可以拿來安裝~編譯完成。
# 在 Ubuntu 18.04 環境下編譯 OxOOL
- 請參考 [在 Ubuntu 18.04 環境下安裝(社群版)](https://docs.ossii.com.tw/books/oxoffice-online-%E6%8A%80%E8%A1%93%E6%89%8B%E5%86%8A/page/%E5%9C%A8-ubuntu-1804-%E7%92%B0%E5%A2%83%E4%B8%8B%E5%AE%89%E8%A3%9D%28%E7%A4%BE%E7%BE%A4%E7%89%88%29) 這篇文章的 Ubuntu 18.04 安裝 OxOOL 套件的過程。
- 先關閉原本安裝的 OxOOL
```Shell
sudo systemctl stop oxool
sudo systemctl disable oxool
```
- 安裝 git 指令
```Shell
sudo apt install git -y
```
- 將 OxOOL 源始碼 clone 回來
```Shell
git clone https://github.com/OSSII/oxool-community.git
```
- 安裝 Ubuntu 18.04 編譯環境所需的套件
```Shell
cd oxool-community
./install_build_require_ubuntu.sh
```
- 安裝並設定 Node.js
```Shell
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
```
- 編譯及測試執行 OxOOL
切換到 oxool-cummunity 程式的主目錄下,開始編譯程式。
```Shell
cd oxool-community
./autogen.sh # 過程中若是提示找不到 fontconfig,請安裝 libfontconfig1-dev;若提示缺少 Poco 標頭,則請安裝 libpoco-dev
make -j2
```
如果成功就會看到以下訊息請您輸入編譯帳號的密碼:
```
[sudo] password for oxoffice:
```
輸入後,會繼續編譯直到完成,然後輸入以下指令測試是否能運行成功:
```Shell
make run
```
如果看到以下訊息,就代表已經可以成功測試了。
```
Ready to accept connections on port 9980.
```
- 打包 OxOOL deb 套件
請在專案的根目錄執行
```Shell
debuild -b -uc -us # 若您已先執行過上面的編譯動作,在執行此步驟前請先在您的 oxool-community 目錄執行 git clean -fdx 指令,如此才能正常打包
```
最後打包的 deb 結果會生成在專案的上層目錄
```Shell
cd ..
ls oxool_3.x.x-1.community_amd64.deb
```
套件直接就可以拿來安裝~編譯完成。
# 在 CentOS 7 環境下編譯 OxOffice Online v4 社群版
請先下載並安裝最新版本的 CentOS 7,然後執行以下指令更新系統與安裝必要的軟體包(此處是以一般使用者身份登入為準,且編譯時不建議使用 root 身份),其中 devtoolset-11 是用來安裝較新版本的 GCC 套裝軟體,數字為 GCC 的主要版本,請至少使用 GCC 8 以上的版本。
```Shell
sudo yum upgrade -y
sudo yum install vim net-tools unzip wget -y
cd /etc/yum.repos.d
sudo wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-centos7.repo
sudo yum install epel-release -y
sudo yum upgrade -y
sudo yum install git yum-utils libpcap libcap-devel libgit2-devel poco-devel ccache python36-devel python36-polib python36-lxml -y
sudo yum install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
sudo yum install oxoffice* poco* gumbo* -y
sudo yum install centos-release-scl
sudo yum install devtoolset-11
```
停用 SELinux
```Shell
vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開
```
安裝並設定 Node.js
```Shell
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install nodejs -y
```
將 OxOffice Online v4 社群版的原始碼 clone 下來
```Shell
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git checkout v4
```
編譯 OxOffice Online v4 社群版(此處的 devtoolset-11 需根據上面選擇安裝的版本而定)
```Shell
scl enable devtoolset-11 bash
./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz
```
編譯完成的 RPM 軟體包會放在以下路徑
```Shell
~/rpmbuild/RPMS/x86_64
```
此處的 RPM 軟體包即可用來安裝。
# 在 Rocky Linux 8 環境下編譯 OxOffice Online v4 社群版
請先安裝 Rocky Linux 8(可參照[Rocky Linux 8 基本安裝](https://docs.ossii.com.tw/books/rocky-linux-8)),然後執行以下指令更新系統與安裝必要的軟體包(此處是以一般使用者身份登入為準,且編譯時不建議使用 root 身份)
```Shell
sudo dnf config-manager --set-enabled powertools
sudo dnf upgrade -y
sudo dnf install vim net-tools unzip wget -y
cd /etc/yum.repos.d
sudo wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-el8.repo
sudo dnf install epel-release -y
sudo dnf upgrade -y
sudo dnf install git yum-utils libpcap libcap-devel libgit2-devel poco-devel ccache python3-devel python3-polib python3-lxml -y
sudo dnf install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
sudo dnf install oxoffice* poco* gumbo* -y
```
停用 SELinux
```Shell
vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開
```
安裝並設定 Node.js
```Shell
sudo dnf module enable nodejs:18 -y
sudo dnf install nodejs -y
```
將 OxOffice Online v4 社群版的原始碼 clone 下來
```Shell
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git switch v4
```
編譯 OxOffice Online v4 社群版
```Shell
./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz
```
編譯完成的 RPM 軟體包會放在以下路徑
```Shell
~/rpmbuild/RPMS/x86_64
```
此處的 RPM 軟體包即可用來安裝。
# 在 Ubuntu 20.04 環境下編譯 OxOffice Online v4 社群版
請先安裝 Ubuntu 20.04(可參照 [Ubuntu Server 20.04 基本安裝](https://docs.ossii.com.tw/books/ubuntu-server-2004)),然後執行系統更新並安裝必要的軟體包
```Shell
sudo apt update
sudo apt upgrade -y
sudo apt install vim openssh-server net-tools curl git -y
# 如果有重新啟動服務的提示,請選擇 yes 即可
curl http://www.oxoffice.com.tw/deb/OSSII.key | sudo apt-key add
cd /etc/apt/sources.list.d/
sudo wget http://www.oxoffice.com.tw/deb/oxool-community-v4-focal.list
sudo apt update
sudo apt install oxoffice* libpoco-dev libgumbo-dev
```
安裝更多編譯時需要的軟體包
```Shell
sudo apt update
sudo apt install -y build-essential libsqlite3-dev libcurl4-openssl-dev libcppunit-dev libcap-dev libcap2-bin libgit2-dev libtool libpng-dev automake m4 wget curl autoconf pkg-config openssl libgumbo-dev ccache fontconfig libfontconfig1-dev libpam-dev
sudo apt install -y devscripts debhelper dh-systemd dh-exec
sudo apt install -y libodbc1 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5
sudo apt install -y hunspell
sudo apt install -y python3-polib python3-lxml
```
安裝並設定 Node.js
```Shell
cd ~
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
```
將 OxOffice Online v4 社群版的原始碼 clone 下來
```Shell
cd ~
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git switch v4
```
編譯 OxOffice Online v4 社群版
```Shell
debuild -b -uc -us
```
編譯好的 deb 軟體包會放在編譯用目錄的上層
```Shell
cd ..
ls oxool_4.x.x-1.community_amd64.deb
```
此處的 DEB 軟體包即可用來安裝。
注意:若您在編譯過程中遇到 Node.js/npm 的記憶體不足問題,可在專案根目錄下依序執行以下指令:
```Shell
cd loleaflet
npm install
cd archived-packages
npm install
cd ..
touch node_modules
```
如此即可避開此問題。
# 在 Rocky Linux 9 環境下編譯 OxOffice Online v4 社群版
請先安裝 Rocky Linux 9,然後執行以下指令更新系統與安裝必要的軟體包(此處是以一般使用者身份登入為準,且編譯時不建議使用 root 身份):
```Shell
sudo dnf config-manager --set-enabled crb
sudo dnf upgrade -y
sudo dnf install vim net-tools unzip wget -y
sudo wget -O /etc/yum.repos.d/ooxml-community-v4-el8.repo http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-el8.repo
sudo dnf install epel-release -y
sudo dnf upgrade -y
sudo dnf install git yum-utils libpcap libcap-devel libgit2-devel poco-devel ccache python3-devel python3-polib python3-lxml -y
sudo dnf install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
sudo dnf install oxoffice* poco* gumbo* -y
```
停用 SELinux
```Shell
vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開
```
安裝並設定 Node.js
```Shell
sudo dnf module enable nodejs:18 -y
sudo dnf install nodejs -y
```
將 OxOffice Online v4 社群版的原始碼 clone 下來
```Shell
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git switch v4
```
編譯 OxOffice Online v4 社群版
```Shell
./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz
```
編譯完成的 RPM 軟體包會放在以下路徑
```Shell
~/rpmbuild/RPMS/x86_64
```
此處的 RPM 軟體包即可用來安裝。
# OxOffice Online v4 模組開發
本節將會介紹如何使用 OxOffice Online Module SDK 開發 OxOffice Online 模組
# OxOOL v4 模組編譯手冊
## 一、環境準備
* 參考[技術手冊](https://docs.ossii.com.tw/books/oxoffice-online-%E6%8A%80%E8%A1%93%E6%89%8B%E5%86%8A/chapter/oxoffice-online),先行編譯 oxool-community 以產生 oxool 開發相關套件。
* 請留意:此步驟編譯 oxool-community 時應使用 `autogen.sh`,不需再執行 `configure`。`autogen.sh` 預設會開啟 `--enable-debug` 並載入 ModuleTesting 模組供開發測試使用。
* 透過 `rpmbuild` 或 `debuild` 產生 `oxool` 與 `oxool-dev` 安裝套件。
* 將產生出來之 oxool-dev 套件安裝於系統內。oxool-dev 內含編譯模組所需之標頭檔、模組範本與 `oxool-module-maker` 程式。
## 二、使用 oxool-module-maker 產生模組基本檔案
* 執行 oxool-module-maker 以產生新模組的基本檔案。參數說明如下:
* `--module-name=name` : 模組名稱。必須符合正規表示式: `^[\w\@#]+$`,也就是所有的大小寫英文字母、數字0-9、底線以及 # @ 三種符號的組合。注意減號 '-' 不能使用,而底線雖然可以使用但不建議。
* `--serviceURI=serviceURI` : 此模組所使用的網址路徑。若結尾有 / 表示此模組會處理一系列指令。例如 "/oxool/user/" 表示此模組可能會處理 /oxool/user/add 、 /oxool/user/del 、 /oxool/user/update 等一系列動作。若結尾沒有 / 則為固定的網址路徑。
* `--version=version` : 指定版號。預設為 "0.0.1"。
* `--summary=summary` : 指定 Summary,用於產生出來的rpm 檔。
* `--description=Description` : 指定 Description,用於產生出來的 deb 檔。
* `--author=author` : 模組作者。預設會去找使用者全域 git 設定中的 user.name 與 user.email 兩個欄位。
* `--license=license` : 所使用的授權條款。預設為 MPLv2.0。
* `--adminPrivilege=true/false` : 此模組的網址路徑是否需要 admin 權限。預設為 false。
* `--adminIcon=icon` : 在後台管理介面中所使用的圖示(請參考 getbootstrap.com 。預設值為 "bug-fill"。
* `--adminItem=text` : 在後台管理介面中所使用的文字。
* `--template-path=path` : 指定模組範本路徑,也就是產生新模組時要從哪裡複製檔案過來。預設會從 `/usr/share/oxool-devel/module-template` 中複製模組檔案。
* `--output-path=path` : 指定產生的模組要放在哪個路徑。預設為使用者的家目錄。要留意不能用 ~ 符號。最好使用完整路徑。
* 執行範例:
```
oxool-module-maker --module-name="samplemod" --serviceURI="/oxool/samplemod/" --summary="A sample moudle service on OxOOL" --description="A sample module service on OxOOL" --output-path="/home/oxool/git"
```
* 完成後在指定的 output-path 中會產生一個 git repository。裡面的內容是 template-path 參數指定的路徑裡的內容。
## 三、編譯與測試模組
* 用 `autogen.sh` 產生 configure 檔,然後用 `configure` 去確認該有的標頭檔、函式庫等是否都存在,並產生 Makefile 檔。
* 用 `make` 編譯。
* 測試模組前,先在 oxool-community 中執行 `make run` 啟動 oxool 服務。
* 啟動後,在模組目錄中執行 `./test.sh <模組的 XML 檔>`。`test.sh` 會呼叫 oxool 服務中的 ModuleTesting 模組,並將 XML 路徑傳送過去。ModuleTesting 模組則會通知 oxool 載入模組的 .so 檔(模組編譯完成後可以在 `.libs/` 目錄下找到此模組的 .so 檔)。此時就可以透過 `serviceURI` 指定的網址路徑執行模組。例如在瀏覽器中輸入:`http://127.0.0.1:9980/oxool/samplemod/`。
* 模組修改後需重新編譯並重新執行 `test.sh` 以便把新的 .so 檔載入 oxool 服務中。
# OxOOL 模組開發手冊
本手冊將簡單介紹 OxOOL 模組結構與開發說明。
## OxOOL 預設模組檔案結構
這裡就以使用 `oxool-module-maker` 並以 `oxool-dev` 套件中預設之模組範本產生之新模組為例,重要的檔案與目錄重點說明如下:
* `ModuleConfiguration.md` : 模組配置檔說明。
* `module.xml.in` : 模組配置檔,用來在執行 `configure` 時產生模組 XML 檔。如果在 `oxool-module-maker` 所下的參數有誤或需要修改、需要調整 XML 檔中的內容或新增標籤等,則可根據 `ModuleConfiguration.md` 中的說明修改此檔並重新執行 `autogen.sh` 與 `configure`。
* `module.spec.in` : 用來產生 rpm 軟體包的 spec 檔。
* `debian/*` : 用來產生 deb 軟體包的檔案。
* `admin/*` : 如果模組有後端管理介面,則放在此處。管理介面裡顯示的名稱定義在 `module.xml.in` 中的 `` 標籤,或是在執行 `oxool-module-maker` 時指定的 `--adminItem` 參數。可參考 README.md 中的說明。
* `src/*` : 模組的 C++ 源碼檔,會編譯成 .so 檔並在 OxOOL 執行時載入。
* `html/*` : 模組前端網頁介面。模組可以不必用 C++ 實作,而是直接透過網頁進行。預設的頁面為 index.html。
* `test.sh` : 模組開發期間測試時,只要執行此檔,並將模組的 XML 檔傳給 OxOOL 即可進行測試。可參考 OxOOL模組編譯手冊中的說明。
## OxOOL 模組中 C++ 的類別與方法
`oxool-module-maker` 產生之新模組,預設在 src 下會有 `Module.cpp` 檔,裡面定義此模組的基礎類別,以模組名稱為類別名稱。裡面除了建構子與解構子之外,定義了幾個方法:
* `getVersion()` : 取得版本號。
* `initialize()` : 初始化模組。
* `handleRequest()` : 處理來自前端 Client 對模組的請求。根據模組需求去實作每個請求。
* `handleAdminRequest()` : 處理來自後端管理介面對模組的請求。根據模組需求去實作每個請求。
* `handleAdminMessage()` : 處理來自後端管理介面對模組傳送的 websocket 訊息。
# OxOffice Online 設定檔說明
**OxOOL 設定檔位於 /etc/oxool/oxoolwsd.xml**以下介紹設定檔內容代表之意義與其可設定的值
```XML
預設:de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru
說明:設定支援的拼字檢查器、語法檢查器、同義詞庫、連字號的語系,注意,若啟用太多會影響到啟動的效能。
預設:systemplate(系統編譯時已決定的變數)
說明:放置 LibreOfficeKit 呼叫使用的 LibreOffice 動態函式庫所需的執行時期環境,用以做為子行程 chroot jails 環境來源範本。
預設:child_root_path(系統編譯時已決定的變數)
說明:用來建立子處理程序 chroot jails 環境的目錄路徑,應與 systemplate 在同一個檔案系統(分割區)上。
預設:true
說明:控制是否要掛載 systemplate 與 lotemplate,這會比連結或複製每個檔案來的快。
預設:空
說明:執行 oxoolwsd 主程式的主機名稱和連接埠號,如果設定為空,那麼會取決於連線需求。但 OxOOL 主機若在反向代理主機後,或是主機名稱無法直接可達的話則必須設定。
預設:9980
說明:OxOOL 要監聽的連接埠號。
預設:loleaflet/../
說明:指向檔案伺服器的 root 路徑,應包含 loleaflet 的目錄。
預設:false
說明:保護編碼的 URL 不被中間的節點解碼。在 Azure 部署中較有用。
預設:false
說明:是否啟用檔案格式轉換。
預設:80.0
說明:設定 OxOffice 最大可消耗的系統記憶體百分比,達到後便會開始清理空閒的文件。
預設:1
說明:預設一開機就啟動,用以等待新連線的子處理程序數量。
說明:關於文件的設定,包含 OxOffice 的核心設定。
預設:8
說明:處理單一文件時,所使用的最大執行緒數量。
預設:5
說明:針對批次處理程序(如 convert-to)降低優先程度,以避免搶走互動式處理程序的資源。
預設:無
說明:簽署文件伺服器的端點 URL,若留空則停用簽署文件功能。
預設:true
說明:若設定為 true,則會在註解中顯示紅線。
預設:3600
說明:設定閒置多久後連線中斷,單位為秒,預設為1小時。
預設:1800
說明:設定若文件每經修改並閒置幾秒後就自動儲存一次檔案,預設為30秒,設定為0或負值即為停用 。
預設:1800
說明:設定若文件每經修改後,經幾秒後就自動儲存一次檔案,預設為300秒 ,設定為0或負值即為停用。
預設:false
說明:設定不管文件有沒有修改過,一旦關閉文件的編輯畫面就會強制儲存,預設為 false 。
預設:0
說明:設定每個處理文件的行程可使用的最大虛擬記憶體,0 為未限制,至少要有 1700kb。
預設:8000
說明:設定每個處理文件的行程可使用的最大stack大小,0 為未限制。
預設:0
說明:設定每個處理文件的行程可開啟的最大檔案大小,0 為未限制。
預設:0
說明:設定每個處理文件的行程可開啟的最多檔案數量,0 為未限制。
預設:100
說明:設定開啟每個檔案的最大等待秒數,0 為未限制。
預設:100
說明:設定轉換每個檔案的最大等待秒數,0 為未限制。
預設:false
說明:檢查異常消耗資源的文件並砍除對應的 LibreOfficeKit 處理程序,由以下的幾個選項決定其閾值。
預設:10000
說明:兩次檢查間的間隔(單位為毫秒)。
預設:60
說明:文件被認定是消耗資源並被砍除對應 LibreOfficeKit 處理程序的最小時間間隔。若此間隔內被認定為異常消耗資源的文件不符合條件則會重設間隔(單位為秒)。
預設:300
說明:文件被認定是異常消耗資源狀態候選的最小閒置時間(單位為秒)。
預設:3072
說明:文件被認定是異常消耗資源狀態候選的最小記憶體使用量(單位為 MB)。
預設:85
說明:文件被認定是異常消耗資源狀態候選的最小 CPU 使用量(單位為百分比)。
說明:與開啟文件瀏覽文件相關的設定。
預設:60
說明:設定當在瀏覽器分頁在失去焦點後,最多在幾秒後就停止更新文件及調暗視窗。
預設:900
說明:設定當在使用者完全沒有動作時(即便目前焦點在該瀏覽器分頁上),最多在幾秒後就停止更新文件及調暗視窗。
預設:loleaflet.html
說明:OxOffice Online 的主網頁檔案名稱,請注意,變更完這個設定後,同時也要將以下目錄的網頁名稱變更為與設定檔一致:/usr/share/oxool/loleaflet/dist。
說明:關於記錄檔的設定參數。
預設:true
說明:是否啟用記錄檔的顏色機制。
預設:warning
說明:記錄檔的level設定值,可以設定0-8個等級,或是可以設定為:none(關閉記錄),fatal,critical,error,warning,notice,information,debug,trace。
預設:false
說明:啟動時就開始記錄最小化的客戶端 JavaScript 協定紀錄(編譯時決定是否啟用)。
預設:-INFO-WARN
說明:微調來自 LibreOfficeKit 的紀錄檔訊息。預設會停用來自 LibreOfficeKit 的紀錄檔訊息。
說明:關於記錄檔的相關參數設定。
預設:/var/log/oxoolwsd.log
說明:OxOffice Online 的記錄檔路徑。
預設:daily
說明:設定檔案 rotation 機制的策略,可參考 Poco 的 FileChannel 機制。
預設:timestamp
說明:設定要在封存的紀錄檔名稱上附加時間戳 (timestamp) 或編號 (number)。
預設:local
說明:指定要將紀錄檔 rotation 的時間視為本機時間 (local) 或 UTC 時間。有效的值為 local 與 utc。
預設:true
說明:設定是否要啟動紀錄檔壓縮功能。
預設:30 days
說明:紀錄檔最多保存天數,可參考 Poco 的 FileChannel 機制。
預設:100
說明:紀錄檔最大的保存數,設為 none 以停用清除紀錄檔的功能,可參考 Poco 的 FileChannel 機制。
預設:true
說明:設定是否在開啟時啟動紀錄檔 rotation 的機制。
預設:false
說明:設定是否要在記錄每行 log 時啟用 flush 機制,啟用時可能會影響效能,若設定不啟用時,來自不同處理程序的 log 可能不會依照時間順序記錄。
預設:false
說明:設定是否啟用對紀錄檔中的使用者資料進行匿名/模糊處理,預設為 false。
預設:82589933
說明:設定對紀錄檔中的使用者資料進行匿名/模糊處理時要使用的 salt。使用 64 位元隨機數。
預設:false
說明:設定是否將紀錄檔同時寫入瀏覽器的主控台。
預設:false
說明:控制是否開啟 Chrome Trace Event 檔案的產生流程。
預設:空
說明:輸出檔案的路徑設定。
預設:false
說明:將指令與通知紀錄下來。
預設:空
說明:輸出檔案的路徑設定。
預設:空
說明:設定排除特定記錄以節省空間的正規表示式規則。
預設:false
說明:設定是否要記錄輸出的訊息。
說明:網路相關設定。
預設:all
說明:設定開放使用 IPv4 或是 IPv6 或是全部的網路協定。
預設:any
說明:設定主程式可綁定的位置,可設為 any 或 loopback。
預設:無
說明:設定所有頁面、websocket 等路徑的前綴字串。
預設:false
說明:設定是否啟用傳遞給重新導向請求的 ProxyPrefix。
預設:true
說明:設定允許/拒絕開放 POST(REST) 的 IP 來源。
預設:
192\.168\.[0-9]{1,3}\.[0-9]{1,3}
::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3}
127\.0\.0\.1
::ffff:127\.0\.0\.1
::1
172\.17\.[0-9]{1,3}\.[0-9]{1,3}
::ffff:172\.17\.[0-9]{1,3}\.[0-9]{1,3}
預設:無
說明:指定誰可以嵌入 OxOffice Online 的 iframe(oxoolwsd 與 WOPI host 總是允許),以空格分隔多個主機。
預設:30
說明:指定由 oxoolwsd 發起(如 WOPI 連線)的連線、傳送、接收等動作的逾時秒數。
說明:OxOffice Online 的 SSL 設定。
預設:false
說明:設定是否要啟動 SSL 機制。
預設:true
說明:如果是透過代理伺服器設定連線,則此選項須設定為 true。
預設:/etc/oxool/cert.pem
說明:設定憑證檔的路徑,若是使用代理伺服器則不需變更,可使用代理伺服器的設定。
預設:/etc/oxool/key.pem
說明:設定憑證金鑰的路徑,若是使用代理伺服器則不需變更,可使用代理伺服器的設定。
預設:/etc/oxool/ca-chain.cert.pem
說明:設定憑證 ca 檔的路徑,若是使用代理伺服器則不需變更,可使用代理伺服器的設定。
預設:ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
說明:設定可接受的 OpenSSL 加密演算法清單。
說明:啟用 HPKP。
預設:1000
說明:HPKP max-age 指令,以秒為單位,設定瀏覽器應該保留 pins 的時間。
預設:空
說明:HPKP report-uri 指令,pin 的驗證錯誤回報 URL。
說明:要 pin 的金鑰的 Base64 編碼 SPKI 指紋。
說明:【警告】更改這些預設值可能會讓系統面臨重大風險。
預設:true
說明:設定使用 seccomp 系統呼叫 filtering。
預設:true
說明:設定使用 chroot jails 的機制。
預設:1800
說明:管理介面的 JWT 權杖過期時間(以秒為單位)。
預設:false
說明:指定是否要執行巨集。這會啟用 Basic、Beanshell、JavaScript 與 Python 指令稿。若設定為 false,則下方的 macro_security_level 設定會被忽略。若設定為 true,則前述設定會用來指定巨集的安全層級。
預設:1
說明:巨集的安全層級。1(中等)必須在執行從未受信任的來源執行巨集前先進行確認。0(低,不建議)是所有巨集都可不經確認即執行。
預設:false
說明:啟用時,/oxool/getMetrics 即不需要驗證。
說明:浮水印相關設定。
預設:false
說明:若啟用,則會在編輯文件時顯示浮水印。
預設:false
說明:若啟用,則會在列印文件或將其匯出為 PDF 檔案時顯示浮水印。
預設:0.2
說明:畫面上浮水印的不透明度,值可從 0.0 到 1.0。
預設:45
說明:浮水印角度。
預設:無
說明:字型名稱。
預設:#000000
說明:浮水印文字色彩。
預設:false
說明:浮水印文字是否要為粗體。
預設:false
說明:浮水印文字是否要為義式斜體。
預設:false
說明:浮水印文字是否要變為中空。
預設:false
說明:浮水印文字是否要帶有陰影。
預設:無
說明:輸入時要在畫面上顯示的浮水印文字。
說明:歡迎畫面的相關設定。
預設:編譯時決定的參數
說明:控制是否要在新安裝及更新時對使用者顯示歡迎畫面。
預設:編譯時決定的參數
說明:決定歡迎畫面是否應該要有解釋性的按鈕而非關閉按鈕。
預設:loleaflet/welcome
說明:歡迎畫面網頁的路徑。
說明:編輯器使用者介面的相關設定。
預設:600
說明:檢視程式在繪製 PDF 內容時要使用的 DPI。
預設:false
說明:是否要使用來自 Nextcloud Office 等整合程式的佈景主題。
說明:不同後端儲存空間的連線設定。
預設:false
說明:是否啟動讓 OxOffice Online 直接編輯本機檔案的機制,建議在正式佈署時確定更改為 false。
預設:true
說明:允許/拒絕 wopi storage,與 webdav 互斥。
預設:
true:
localhost
127\.0\.0\.1
10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}
172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}
172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}
192\.168\.[0-9]{1,3}\.[0-9]{1,3}
false:
192\.168\.1\.1
說明:設定 wopi host 的主機名稱或是 IP 位置,如果主機名稱或 IP 中包含了「.」,則需加入「\」跳脫字元,例如:原本是 www.ossii.com.tw,那麼在 wopi host 內需設定成為「www\.ossii\.com\.tw」。
預設:0
說明:可載入的最大文件大小(以位元組為單位),0 代表無限制。
預設:false
說明:若啟用,則會捕捉來自瀏覽器的 cookies,並在 WOPI 請求中設定。
說明:鎖定相關設定。
說明:設定應多常重新取得儲存伺服器的鎖,以秒為單位(預設為900秒,亦即15分鐘),設為 0 則不更新。
預設:false
說明:允許/拒絕 webdav storage,與 wopi 互斥。
預設:false: localhost
說明:設定 webdav host的主機名稱或是 IP 位置,如果主機名稱或 IP 中間包含了「.」,則需加入「\」跳脫字元,例如:原本是 www.ossii.com.tw,那麼在 webdav host 內需設定成為「www\.ossii\.com\.tw」。
說明:OxOffice Online 的 SSL 設定。
預設:true
說明:設定後,將會啟用專門針對 WOPI URI 結構的 SSL 來供儲存空間使用。
預設:false
說明:設定是否要啟動 SSL 機制。
預設:/etc/oxool/cert.pem
說明:設定憑證檔的路徑,若是使用代理伺服器則不需變更,可使用代理伺服器的設定。
預設:/etc/oxool/key.pem
說明:設定憑證金鑰的路徑,若是使用代理伺服器則不需變更,可使用代理伺服器的設定。
預設:/etc/oxool/ca-chain.cert.pem
說明:設定憑證 ca 檔的路徑,若是使用代理伺服器則不需變更,可使用代理伺服器的設定。
預設:ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
說明:設定可接受的 OpenSSL 加密演算法清單。
預設:true
說明:設定是否在相同文件的不同編輯 session 保留 tile cache。
說明:OxOffice Online 網頁端管理介面設定參數,預設登入的連線位置為:http(s)://youroxoolip:9980/loleaflet/dist/admin/admin.html。
預設:true
說明:啟用管理功能。
預設:false
說明:啟用 PAM 使用者認證機制。
預設:admin
說明:設定管理介面的登入帳號,若啟用 PAM 機制則會忽略此設定。
預設:@administrator1
說明:設定管理介面的登入密碼。在多數平台上已被棄用,建議使用 PAM 或 oxoolconfig 設定安全的密碼。
預設:空
說明:設定連線的伺服器位置。
```
# OxOffice Online 管理主控臺說明
## 頂部功能列
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/topbar.png)
此部份需要注意的只有最右邊的「**系統**」按鈕,按下此按鈕後會出現包含「**重啟服務**」與「**變更帳號密碼**」兩個按鈕的選單,其中:
**重啟服務**:重新啟動整個 OxOffice Online 服務,按下後會出現以下對話方塊:
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/restart-dialog.png)
在此對話方塊按下「取消」即會回到管理介面而不重新啟動服務,按下「確定」則會重新啟動服務,您必須等待服務重新啟動完成才能繼續操作(不論是編輯器或管理介面皆如此)。
**變更帳號密碼**:變更管理介面的帳號與密碼,您必須先輸入一次目前的管理介面帳號與密碼,按下「驗證」後再輸入新的帳號與密碼。
## 側邊欄
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/sidebar.png)
左側邊欄可看見有數個功能分頁可供選擇,分別是「**概覽**」、「**分析**」、「**日誌**」、「**字型管理**」,以及下方會顯示目前所使用的 OxOffice Online 社群版與其使用的核心 OxOffice 版本。
## 概覽
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/overview.png)
**線上使用者**:目前正在使用 OxOfffice Online 的使用者數量 **開啟的文件**:目前由 OxOffice Online 開啟的文件數量 **消耗的記憶體**:目前 OxOffice Online 使用的記憶體空間 **已傳送的流量**:OxOffice Online 已傳送出去的資料量 **已接收的流量**:OxOffice Online 已從使用者處收到的資料量 **服務時間**:OxOffice Online 服務的已上線時間
### 「開啟的文件」分頁
**開啟者**:開啟某個文件的使用者名稱 **PID**:開啟某個文件的處理程序 PID **文件**:被開啟的文件 **消耗的記憶體**:此處理程序所消耗的記憶體 **經過的時間**:此處理程序開啟後所經過的時間 **閒置時間**:使用者閒置的時間 **最後修改**:開啟的文件最後被修改的時間
### 「線上使用者」分頁
**使用者名稱**:目前在線上的使用者的名稱 **文件數**:特定的使用者所開啟的文件數
## 分析
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/memory.png)
### 「記憶體圖表」分頁
顯示消耗記憶體的圖表,橫軸由右至左為與目前相差的時間(最右邊的0s代表當下,向左則分別代表某個時間之前,如1min即為1分鐘前),縱軸則為消耗的記憶體大小
### 「CPU 圖表」分頁
顯示 CPU 使用率的圖表,橫軸代表意義與記憶體圖表的橫軸相同,而縱軸則為 CPU 使用率
### 「網路圖表」分頁
顯示網路流量的圖表,橫軸代表意義與記憶體圖表的橫軸相同,而縱軸則為網路進出流量,可參考圖表旁的圖例
## 日誌
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/logging.png)
**過濾類別**:此下拉式選單可過濾特定類型的日誌內容 **更新日誌**:按下此按鈕可更新目前顯示的日誌內容 **設定紀錄層級**:按下此按鈕會跳出如下對話方塊:
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/logging-dialog.png)
可分別針對 WebSocket Dameon 與 OxOfficeKit 設定不同的紀錄層級,設定完成後請按「**更新紀錄層級**」儲存設定 **日誌內容**:顯示 OxOffice Online 的日誌內容
## 字型管理
[](https://docs.ossii.com.tw/uploads/images/gallery/2022-08/font.png)
清單部份會顯示目前可用的字型各項屬性,右下角的綠色圓形上傳按鈕則是用來從本機端上傳欲在 OxOffice Online 上提供使用的字型檔案