Nextcloud – Part 6 – Hướng dẫn cài đặt NextCloud kết hợp Collabora trên Ubuntu 20

Ở bài này, tôi sẽ hướng dẫn các bạn cài đặt và cấu hình Nextcloud kết hợp collabora trên cùng 1 server chạy hệ điều hành Ubuntu 20.04 LTS

Trong bài viết này, tôi sẽ sử dụng một IP public và một tên miền để demo.

Bước 1: Cài Nextcloud

Đầu tiên trỏ tên miền với 2 bản ghi dùng cho nextcloud và collabora. Tên record đặt tùy ý. Ở đây tôi sẽ đặt là:

Bản ghi dùng cho dịch vụ nextcloud:

  • Tên record: demonc
  • Loại record: A
  • IP: Nhập IP public cần trỏ

Bản ghi dùng cho dịch vụ collabora:

  • Tên record: democlbr
  • Loại record: A
  • IP: Nhập IP public cần trỏ

Cài đặt:

Update OS:

apt-get update -y
apt-get upgrade -y 
apt-get dist-upgrade -y

Bổ xung thông tin vào file hosts với 2 tên miền demonc.domain và democlbr.domain (thay bằng subdomain dùng cho nextcloud và collabora)

Cài đặt dịch vụ web

apt install apache2 -y
systemctl start apache2
systemctl enable apache2

Mở port dịch vụ web trên firewall

sudo ufw allow 80
sudo ufw allow 443

Cài đặt Mariadb

apt-get install -y software-properties-common

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.3/ubuntu $(lsb_release -cs) main"

apt update -y
apt install mariadb-server -y

Đặt password cho user root quản lý mysql

Imgur

Khởi động dịch vụ mysql:

service mysql start
service mysql enable

Tạo user và mật khẩu sử dụng cho nextcloud

mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'password_cua_ban';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Exit

Cài đặt PHP (Lưu ý cần cài đặt php version 7.3 trở lên). Ở đây tôi cài PHP 7.4

apt install -y php libapache2-mod-php php-ldap php-mysql php-cli php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip

Cài đặt nextcloud: Ở tài liệu này cài đặt phiên bản 21.0.0

wget https://download.nextcloud.com/server/releases/nextcloud-21.0.0.zip -O /mnt/nextcloud.zip
apt-get install unzip -y 
unzip /mnt/nextcloud.zip -d /var/www/
rm -f /mnt/nextcloud-21.0.0.zip
chmod 755 -R /var/www/nextcloud/
chown www-data. -R /var/www/nextcloud/

Cấu hình vhost cho nextcloud

cat << EOF >> /etc/apache2/sites-available/nextcloud.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/nextcloud/
    ServerName demonc.ten_mien_cua_ban
  
    Alias /nextcloud "/var/www/nextcloud/"

    <Directory /var/www/nextcloud/>
       Options +FollowSymlinks
       AllowOverride All
       Require all granted
        <IfModule mod_dav.c>
        	Dav off
        </IfModule>
       SetEnv HOME /var/www/nextcloud
       SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
EOF

Enable các mode hỗ trợ

mv /etc/apache2/sites-available/000-default.{conf,conf.bk}
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Enable config của nextcloud

sudo a2ensite nextcloud.conf
sudo systemctl start apache2

Cấu hình nextcloud trên giao diện web

Truy cập link: http://demonc.ten_mien_cua_ban với user và password và các thông tin cần thiết như bên dưới

  • User: nc_admin
  • Password: nextcloudpassword
  • nc_user : Tên user quản lý database nextcloud
  • password: Password của user quản lý databse
  • nextcloud : Tên database nextcloud
  • localhost
Imgur

Chờ quá trình cài đặt các ứng dụng hoàn thành.

Bước 2: Cài đặt Collabora

Thiết lập package repository

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Chạy lệnh bên dưới để download and import Collabora public key và các packe bổ trợ

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
sudo apt install apt-transport-https ca-certificates -y

Cài đặt Loolwsd (LibreOffice Online WebSocket Daemon)

sudo apt update -y
sudo apt install loolwsd code-brand -y

Cấu hình Loolwsd

sudo loolconfig set ssl.enable false
sudo loolconfig set storage.wopi.host demonc.ten_mien_cua_ban

Tạo account admin quản lý cho loolwsd

sudo loolconfig set-admin-password
Imgur

Khởi động lại service loolwsd

sudo systemctl restart loolwsd

Cấu hình vhost cho collabora: Tạo file /etc/apache2/sites-available/collabora.conf với nội dung bên dưới

<VirtualHost *:80>
  ServerName democlbr.ten_mien_cua_ban
  Options -Indexes

  ErrorLog "/var/log/apache2/collabora_error"
  # Encoded slashes need to be allowed
  AllowEncodedSlashes NoDecode

  # keep the host
  ProxyPreserveHost On

  # static html, js, images, etc. served from loolwsd
  # loleaflet is the client part of Collabora Online
  ProxyPass           /loleaflet http://127.0.0.1:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet http://127.0.0.1:9980/loleaflet

  # WOPI discovery URL
  ProxyPass           /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery http://127.0.0.1:9980/hosting/discovery

  # Capabilities
  ProxyPass           /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
  ProxyPassReverse    /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" ws://127.0.0.1:9980/lool/$1/ws nocanon

  # Admin Console websocket
  ProxyPass   /lool/adminws ws://127.0.0.1:9980/lool/adminws

  # Download as, Fullscreen presentation and Image upload operations
  ProxyPass           /lool http://127.0.0.1:9980/lool
  ProxyPassReverse    /lool http://127.0.0.1:9980/lool

</VirtualHost>

Bật các mode cần thiết

sudo a2enmod proxy proxy_wstunnel proxy_http

Enable virtual host của collabora

sudo a2ensite collabora.conf
sudo systemctl restart apache2

Bước 3: Cài đặt SSL Let’s Encrypt

Thao tác cài đặt Let’s Encrypt cho 2 domain demonc.ten_mien_cua_ban và democlbr.ten_mien_cua_ban

sudo apt install certbot -y
sudo apt install python3-certbot-apache -y
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email email_cua_ban -d demonc.ten_mien_cua_ban
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email email_cua_ban -d democlbr.ten_mien_cua_ban
sudo loolconfig set ssl.termination true
sudo systemctl restart loolwsd

Kết quả:

Imgur

Bước 4: Kết nối Collabora với Nextcloud

Truy cập giao diện Nextcloud với tài khoản admin

Imgur
  • Click vào Settings
  • Tìm ở cột bên trái, click vào Collabora Online
  • Click vào ô Use your own server
  • Nhập https://democlbr.ten_mien_cua_ban và click Save
  • Ở phần Advanced settings tick chọ ở ô Use Ofice Open XML

Sau đó tạo hoặc upload file word, excel để kiểm tra.

Kết quả:

Imgur

Kết luận

Như vậy tôi đã hướng dẫn xong cách cài đặt và cấu hình kết hợp Nextcloud và Collabora trên Ubuntu 20.

Cám ơn các bạn đã theo dõi series này.

Chúc các bạn thành công!!!

Leave a Comment