วิธีติดตั้ง ONLYOFFICE Docs บน Ubuntu 24.04
ONLYOFFICE Docs เป็นชุดสำนักงานออนไลน์ที่สามารถใช้งานได้ฟรี แต่ทรงพลัง ซึ่งมาพร้อมกับตัวดูและแก้ไขเอกสารสำหรับข้อความ การนำเสนอ สเปรดชีต แบบฟอร์ม และ PDF ชุด ONLYOFFICE เข้ากันได้เต็มรูปแบบกับรูปแบบ Office Open XML: .docx, .xlsx, .pptx และรองรับการแก้ไขเอกสารร่วมกันแบบเรียลไทม์ ในบทความนี้เราจะแสดงวิธีการติดตั้งและกำหนดค่า ONLYOFFICE Docs บน Ubuntu 24.04 (Noble Numbat)
คู่มือเดสก์ท็อปอูบุนตูฉบับสมบูรณ์
เรียนรู้ Ubuntu อย่างมืออาชีพ - ตั้งแต่การปรับแต่งเดสก์ท็อปให้สวยงามไปจนถึงการทำงานอัตโนมัติด้วยเทอร์มินัลที่ทรงพลัง เหมาะสำหรับนักพัฒนา ผู้ดูแลระบบ และผู้ใช้ขั้นสูงที่ต้องการควบคุมพื้นที่ทำงานของตนอย่างเต็มที่
เอกสาร ONLYOFFICE มาพร้อมกับส่วนประกอบดังต่อไปนี้:
- เซิร์ฟเวอร์ – นี่คือชั้นเซิร์ฟเวอร์แบ็กเอนด์ที่ควบคุมทุกส่วนประกอบของ ONLYOFFICE Docs
- คอร์ – ช่วยให้สามารถสื่อสารระหว่างรูปแบบเอกสารสำนักงาน (DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP) ได้
- sdkjs – JavaScript SDK API สำหรับการโต้ตอบของไคลเอนต์กับทุกส่วนประกอบที่รวมอยู่
- เว็บแอป – นี่คือส่วนหน้าสำหรับ ONLYOFFICE Docs
- พจนานุกรม – ประกอบด้วยพจนานุกรมของหลายภาษา ที่ใช้สำหรับตรวจสอบการสะกดคำใน ONLYOFFICE Docs
นี่คือลิสต์ของตัวแก้ไขที่มาพร้อมกับ ONLYOFFICE Docs:
- โปรแกรมแก้ไขเอกสาร ONLYOFFICE
- โปรแกรมแก้ไขสเปรดชีต ONLYOFFICE
- โปรแกรมแก้ไขงานนำเสนอ ONLYOFFICE
- ผู้สร้างแบบฟอร์ม ONLYOFFICE
- ONLYOFFICE ตัวแก้ไข PDF เครื่องอ่านและตัวแปลง
ตั้งค่าความต้องการ
ในบทความนี้ เราจะติดตั้ง Community Edition ของ ONLYOFFICE Docs บนเซิร์ฟเวอร์ Ubuntu ภายในเครื่อง ความต้องการฮาร์ดแวร์ขั้นต่ำของเซิร์ฟเวอร์มีดังนี้:
- CPU: อย่างน้อยแบบดูอัลคอร์
2 GHz - RAM: อย่างน้อย
2 GB - พื้นที่ดิสก์: อย่างน้อย
40 GBของพื้นที่ว่าง - SWAP: อย่างน้อย
4 GBหรือเพิ่ม RAM ถ้าไม่มี swap - ระบบปฏิบัติการ: 64-bit Ubuntu หรือระบบ Linux Debian
ถ้าคุณตรงตามข้อกำหนด นี่เป็นเวลาที่ดีในการเปลี่ยนความสนใจไปที่การตั้งค่าเซิร์ฟเวอร์เอกสารของคุณ
ขั้นตอนที่ 1: ตั้งค่าฐานข้อมูล PostgreSQL
เริ่มการตั้งค่าโดยตรวจสอบให้แน่ใจว่าระบบของคุณเป็นเวอร์ชันล่าสุด:
sudo apt update && sudo apt upgrade -yเราสามารถติดตั้งเซิร์ฟเวอร์ PostgreSQL เวอร์ชันที่มีอยู่ในรีโพซิทอรีเริ่มต้นของระบบปฏิบัติการของเราได้
sudo apt install postgresqlเมื่อการติดตั้งแพ็กเกจเสร็จสิ้น บริการจะเริ่มทำงานโดยอัตโนมัติ ขั้นตอนต่อไปคือการสร้างฐานข้อมูล PostgreSQL และผู้ใช้:
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';"
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice OWNER onlyoffice;"ขั้นตอนที่ 2: ติดตั้งเซิร์ฟเวอร์ RabbitMQ
ONLYOFFICE ใช้ RabbitMQ เป็นตัวกลางในการส่งข้อความเพื่อให้การสื่อสารระหว่างบริการต่าง ๆ ภายในชุดโปรแกรม ONLYOFFICE ทำงานได้ ติดตั้งแพ็กเกจโดยรันคำสั่งต่อไปนี้:
sudo apt install rabbitmq-serverคุณสามารถตรวจสอบสถานะการให้บริการได้:
$ systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ Messaging Server
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-07-30 08:20:24 UTC; 6s ago
Main PID: 15046 (beam.smp)
Tasks: 24 (limit: 4658)
Memory: 102.8M (peak: 107.9M)
CPU: 3.770s
CGroup: /system.slice/rabbitmq-server.service
├─15046 /usr/lib/erlang/erts-13.2.2.5/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -pc unicode -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sb>
├─15056 erl_child_setup 65536
├─15108 /usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4
├─15109 /usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4
└─15112 /bin/sh -s rabbit_disk_monitor
Jul 30 08:20:20 ubuntu-cloudspinx-com systemd[1]: Starting rabbitmq-server.service - RabbitMQ Messaging Server...
Jul 30 08:20:24 ubuntu-cloudspinx-com systemd[1]: Started rabbitmq-server.service - RabbitMQ Messaging Server.ขั้นตอนที่ 3: ติดตั้ง ONLYOFFICE Docs
ตอนนี้หลังจากที่เราได้ตั้งค่าสภาพแวดล้อมเรียบร้อยแล้ว เราก็พร้อมที่จะติดตั้ง ONLYOFFICE Docs ลงในระบบ Ubuntu ของเรา อย่างไรก็ตาม ขั้นตอนแรกเราจำเป็นต้องนำเข้ากุญแจ GPG ที่ใช้ในการลงนามแพ็กเกจก่อน
curl -fsSL https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/onlyoffice.gpgเมื่อเราได้นำเข้า GPG แล้ว เราสามารถเพิ่มที่เก็บ APT ของ ONLYOFFICE ได้:
echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.listอัปเดตแคชของตัวจัดการแพ็กเกจและติดตั้ง ONLYOFFICE Docs
sudo apt update
sudo apt install onlyoffice-documentserver ttf-mscorefonts-installerเมื่อมีข้อความให้ระบุรหัสผ่านฐานข้อมูล ให้กดปุ่ม <ENTER> บนคีย์บอร์ดของคุณเพื่อดำเนินการต่อ จากนั้นยอมรับข้อกำหนดข้อตกลงใบอนุญาต
ตรวจสอบว่ามีข้อผิดพลาดใด ๆ เกิดขึ้นระหว่างการติดตั้งหรือไม่ หากทุกอย่างเป็นไปด้วยดี คุณสามารถเข้าถึง ONLYOFFICE ได้ในเบราว์เซอร์ของคุณที่ http://localhost หรือ http://serverdomain_or_ip
ขั้นตอนที่ 4: ปกป้อง ONLYOFFICE Docs ด้วย SSL
เราสามารถตั้งค่า ONLYOFFICE Docs ให้เข้าถึงได้ผ่านโปรโตคอล HTTPS ซึ่งมีความปลอดภัยมากกว่า HTTP โดยค่าเริ่มต้น ระบบจะถูกตั้งค่าให้ทำงานบน HTTP
ในการตั้งค่าของเรา เซิร์ฟเวอร์ที่ใช้กำลังทำงานในสภาพแวดล้อมคลาวด์ ซึ่งทำให้สามารถใช้ SSL ฟรีของ Let’s Encrypt ได้
การใช้ SSL ของ Let’s Encrypt
วิธีที่ง่ายที่สุดในการตั้งค่า HTTPS สำหรับ ONLYOFFICE Docs คือการใช้ใบรับรอง SSL ของ Let’s Encrypt โดยใช้ certbot ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง certbot
- เดเบียน/อูบุนตู:
sudo apt update && sudo apt install certbot
sudo apt install python3-certbot-nginx- ระบบที่ใช้ RHEL:
sudo dnf -y install epel-release
sudo dnf -y install certbot python3-certbot-nginxเมื่อคุณติดตั้ง certbot แล้ว ให้รันสคริปต์ ONLYOFFICE ที่ช่วยอัตโนมัติการตั้งค่า SSL
sudo bash /usr/bin/documentserver-letsencrypt.sh [email yourdomain.comแทนที่ [email ด้วยที่อยู่อีเมลจริงของคุณ และ yourdomain.com ด้วยชื่อโดเมนที่กำหนดค่าใน DNS สำหรับเซิร์ฟเวอร์ ONLYOFFICE Docs
เมื่อคุณรันคำสั่งเหล่านี้ มันจะแสดงเส้นทางไปยังไฟล์บันทึกที่คุณสามารถตรวจสอบความคืบหน้าในการสร้าง SSL และข้อผิดพลาดใด ๆ จะถูกบันทึกไว้ที่นั่น
Saving debug log to /var/log/letsencrypt/letsencrypt.logในการตรวจสอบเนื้อหาไฟล์บันทึกใช้คำสั่ง cat:
sudo cat /var/log/letsencrypt/letsencrypt.logตัวอย่างผลลัพธ์จากบรรทัดสุดท้ายไม่กี่บรรทัดของไฟล์:
...
-----BEGIN CERTIFICATE-----
MIIEVzCCAj+gAwIBAgIRAIOPbGPOsTmMYgZigxXJ/d4wDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCRTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNCzqK
a2GOtu/cX1jnxkJFVKtj9mZhSAouWXW0gQI3ULc/FnncmOyhKJdyIBwsz9V8UiBO
VHhbhBRrwJCuhezAUUE8Wod/Bk3U/mDR+mwt4X2VEIiiCFQPmRpM5uoKrNijgfgw
gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfK1/PPCFPnQS37SssxMZw
i9LXDTAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB
AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g
BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu
Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAH3KdNEVCQdqk0LKyuNImTKdRJY1C
2uw2SJajuhqkyGPY8C+zzsufZ+mgnhnq1A2KVQOSykOEnUbx1cy637rBAihx97r+
bcwbZM6sTDIaEriR/PLk6LKs9Be0uoVxgOKDcpG9svD33J+G9Lcfv1K9luDmSTgG
6XNFIN5vfI5gs/lMPyojEMdIzK9blcl2/1vKxO8WGCcjvsQ1nJ/Pwt8LQZBfOFyV
XP8ubAp/au3dc4EKWG9MO5zcx1qT9+NXRGdVWxGvmBFRAajciMfXME1ZuGmk3/GO
koAM7ZkjZmleyokP1LGzmfJcUd9s7eeu1/9/eg5XlXd/55GtYjAM+C4DG5i7eaNq
cm2F+yxYIPt6cbbtYVNJCGfHWqHEQ4FYStUyFnv8sjyqU8ypgZaNJ9aVcWSICLOI
E1/Qv/7oKsnZCWJ926wU6RqG1OYPGOi1zuABhLw61cuPVDT28nQS/e6z95cJXq0e
K1BcaJ6fJZsmbjRgD5p3mvEf5vdQM7MCEvU0tHbsx2I5mHHJoABHb8KVBgWp/lcX
GWiWaeOyB7RP+OfDtvi2OsapxXiV7vNVs7fMlrRjY1joKaqmmycnBvAq14AEbtyL
sVfOS66B8apkeFX2NY4XPEYV4ZSCe8VHPrdrERk2wILG3T/EGmSIkCYVUMSnjmJd
VQD9F6Na/+zmXCc=
-----END CERTIFICATE-----
2024-07-30 08:56:34,141:DEBUG:acme.client:Storing nonce: Ma8ZwRNA9J1JoJ_IMl_v_1HLCTTt5G01XNs8p_Mvri6JbKsSWrI
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive.
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live.
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/README.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive/docs.cloudlabske.com.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live/docs.cloudlabske.com.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing certificate to /etc/letsencrypt/live/docs.cloudlabske.com/cert.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing private key to /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing chain to /etc/letsencrypt/live/docs.cloudlabske.com/chain.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing full chain to /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem.
2024-07-30 08:56:34,144:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/docs.cloudlabske.com/README.
2024-07-30 08:56:34,156:DEBUG:certbot.configuration:Var account=985390e388f48deb37eab1e67d361272 (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2024-07-30 08:56:34,157:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2024-07-30 08:56:34,157:DEBUG:certbot.configuration:Var webroot_path=['/var/www/onlyoffice/documentserver/letsencrypt'] (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot.configuration:Var webroot_map={'docs.cloudlabske.com': '/var/www/onlyoffice/documentserver/letsencrypt'} (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot._internal.storage:Writing new config /etc/letsencrypt/renewal/docs.cloudlabske.com.conf.
2024-07-30 08:56:34,159:DEBUG:certbot._internal.display.obj:Notifying user:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem
This certificate expires on 2024-10-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
2024-07-30 08:56:34,161:DEBUG:certbot._internal.display.obj:Notifying user: If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-leการใช้ใบรับรอง SSL ที่ลงนามเอง
สำหรับระบบที่อยู่ในเครือข่ายส่วนตัว คุณสามารถสร้างใบรับรองที่ออกเองได้ หรือหากคุณจัดการ DNS บน Cloudflare ตรวจสอบบทความของเราเกี่ยวกับวิธีการตั้งค่า Let’s Encrypt กับ Cloudflare DNS
ผู้ใช้ที่ใช้ใบรับรองที่ออกเองสามารถแก้ไขเนื้อหาไฟล์ดังต่อไปนี้และปรับเส้นทางไปยังคีย์และใบรับรองโดเมนได้:
sudo nano /etc/onlyoffice/documentserver/nginx/ds.confดูเนื้อหาด้านล่างจากการตั้งค่าของเราในบทความนี้ที่ใช้ Let's Encrypt
include /etc/nginx/includes/http-common.conf;
## Normal HTTP host
server {
listen 0.0.0.0:80;
listen [::]:80 default_server;
server_name _;
server_tokens off;
set $secure_link_secret nsdy8N28Ylobmp5EL4wF;
## Redirects all traffic to the HTTPS host
root /nowhere; ## root doesn't have to be a valid path since we are redirecting
rewrite ^ https://$host$request_uri? permanent;
}
#HTTP host for internal services
server {
listen 127.0.0.1:80;
listen [::1]:80;
server_name localhost;
server_tokens off;
set $secure_link_secret nsdy8N28Ylobmp5EL4wF;
include /etc/nginx/includes/ds-common.conf;
include /etc/nginx/includes/ds-docservice.conf;
}
## HTTPS host
server {
listen 0.0.0.0:443 ssl;
listen [::]:443 ssl default_server;
server_tokens off;
set $secure_link_secret nsdy8N28Ylobmp5EL4wF;
root /usr/share/nginx/html;
## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_certificate /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem;
# Uncomment string below and specify the path to the file with the password if you use encrypted certificate key
# ssl_password_file {{SSL_PASSWORD_PATH}};
ssl_verify_client off;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1.2;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age=31536000;
# add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
## Replace with your ssl_trusted_certificate. For more info see:
## - https://medium.com/devops-programming/4445f4862461
## - https://www.ruby-forum.com/topic/4419319
## - https://linux-console.net/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
# ssl_stapling on;
# ssl_stapling_verify on;
# ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
# resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
# resolver_timeout 10s;
## [Optional] Generate a stronger DHE parameter:
## cd /etc/ssl/certs
## sudo openssl dhparam -out dhparam.pem 4096
##
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
include /etc/nginx/includes/ds-*.conf;
}อัปเดต ssl_certificate และ ssl_certificate_key ให้ตรงกับสภาพแวดล้อมของคุณ
เข้าถึงเอกสาร OnlyOffice ได้ที่ https://yourdomain
คุณจะได้รับหน้าต้อนรับของ ONLYOFFICE Docs พร้อมคำแนะนำเพิ่มเติมเกี่ยวกับวิธีเปิดใช้งานตัวอย่างเอกสารและการรวมเข้ากับแอปพลิเคชันของคุณโดยใช้ API ที่จัดเตรียมไว้
ขั้นตอนที่ 5: รวมแอปของบุคคลที่สาม
เป็นกระบวนการที่ราบรื่นในการรวม ONLYOFFICE เข้ากับแอปพลิเคชันของบุคคลที่สามของคุณ เช่น Pydio, Zimbra, WordPress, Odoo, SuiteCRM, Mattermost เป็นต้น ดูตัวเชื่อมต่อทั้งหมดได้จากลิงก์ด้านล่างนี้:
- รายการตัวเชื่อมต่อ ONLYOFFICE


