如何在 Ubuntu 20.04 上安裝 Xibo CMS

Xibo 是一種開源數字標牌(公共顯示標牌)解決方案,由基於 Web 的內容管理系統 (CMS) 組成。 使用 Xibo 使用數字標牌來吸引人們對您的重要公告的注意力的最佳方式。 它讓我們能夠將 PC 和電視變成一種獨特的宣傳方式,將它們轉變為信息台,您可以將其放置在戰略位置以吸引人們的注意力。

使用 Xibo,您可以設置自己的數字標牌服務器,該服務器可以自動將圖像、視頻甚至 PowerPoint 演示文稿推送到信息亭,從而讓您的整個組織了解最新消息,而無需借助群發電子郵件或在多台機器上手動編輯文件或幻燈片。

Xibo 可以通過 Docker 運行,也可以在安裝了 MySQL/PHP 的 Web 服務器上運行。 在本教程中,我們將學習如何 安裝 Xibo CMS碼頭工人Ubuntu 20.04.

先決條件

  • 一個 Ubuntu 20.04 實例
  • 一個用戶 sudo 特權

第 1 步:安裝 Docker

首先,我們將安裝 docker-engine 和 docker-compose。

安裝先決條件包:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

現在我們應該添加 docker 存儲庫的 GP 密鑰:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

現在讓我們將 Docker 添加到 APT 源

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

我們現在可以安裝 docker-engine:

$ sudo apt install docker-ce

為確保我們獲得 Docker Compose 的最新穩定版本,我們將從其下載該軟件 官方 Github 存儲庫.

首先,確認其上可用的最新版本 發布頁面. 在撰寫本文時,最新的穩定版本是 2.0.1.

以下命令將下載 2.0.1 釋放並保存可執行文件在 /usr/local/bin/docker-compose,這將使該軟件在全球範圍內可訪問 docker-compose

$ sudo curl -L https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

接下來,設置正確的權限,以便 docker-compose 命令是可執行的:

$ sudo chmod +x /usr/local/bin/docker-compose

要驗證安裝是否成功,您可以運行:

$ docker-compose --version

Docker Compose version v2.0.1

現在我們需要將非 root 用戶添加到 docker 組,以便用戶可以使用 docker 命令而無需 sudo 特權:

$ sudo usermod -aG docker username

第 2 步:下載並解壓 Xibo Docker 文件

首先創建我們Xibo CMS的文件夾

$ sudo mkdir /opt/xibo

給用戶權限

$ sudo chown -R username:username /opt/xibo

$ cd /opt/xibo

你可以下載最新的 下載西博CMS

$ wget -O xibo-docker.tar.gz https://xibo.org.uk/api/downloads/cms

在撰寫本文時,我使用的是 Xibo 3.0.3 版本。

$ tar --strip-components=1 -zxvf xibo-docker.tar.gz

我們現在擁有安裝 Xibo 的一切

第三步:配置Xibo Docker-compose

我們的 Xibo 容器將通過 docker-compose 運行。 所以文件被提取到 /opt/xibo

$ ls -l /opt/xibo

total 84
-rw-rw-r-- 1 franck franck 1491 Sep 8 08:01 cms_custom-ports.yml.template
-rw-rw-r-- 1 franck franck 1159 Sep 8 08:01 cms_remote-mysql.yml
-rw-rw-r-- 1 franck franck 4024 Sep 8 08:01 config.env.template
-rw-rw-r-- 1 franck franck 2231 Sep 8 08:01 config.env.template-remote-mysql
-rw-rw-r-- 1 franck franck 1511 Nov 2 23:18 docker-compose.yml
-rw-rw-r-- 1 franck franck 34520 Sep 8 08:01 LICENSE
-rw-rw-r-- 1 franck franck 2088 Sep 8 08:01 README.md
drwxr-xr-x 5 root root 4096 Nov 2 17:25 shared
-rw-r--r-- 1 franck franck 15570 Sep 8 08:54 xibo-docker.tar.gz

Xibo使用一個配置文件來告訴docker環境是如何配置的,比如email config,mysql密碼等。一個包含所需信息的模板文件存在,叫做config.env.template; 我們將製作此文件的副本,將其重命名為 config.env

$ cp config.env.template config.env

現在我們將編輯一些信息如下

$ vim config.env

MYSQL_PASSWORD=YOUR_DB_PASSWORD
CMS_SERVER_NAME=YOUR_DOMAIN_NAME

通常 Xibo 擁有一個運行在端口 80 上的默認 Web 界面,但我們只會將此信息更改為端口 8080,因為我們將使用 Nginx 代理端口 80 和 443 上的通信。為此,我們需要編輯 docker-compose 文件只編輯端口 cms-web 服務

$ vim docker-compose.yml

cms-web:
image: xibosignage/xibo-cms:release-3.0.3
volumes:
- "./shared/cms/custom:/var/www/cms/custom:Z"
- "./shared/backup:/var/www/backup:Z"
- "./shared/cms/web/theme/custom:/var/www/cms/web/theme/custom:Z"
- "./shared/cms/library:/var/www/cms/library:Z"
- "./shared/cms/web/userscripts:/var/www/cms/web/userscripts:Z"
- "./shared/cms/ca-certs:/var/www/cms/ca-certs:Z"
restart: always
links:
- cms-db:mysql
- cms-xmr:50001
environment:
- XMR_HOST=cms-xmr
- CMS_USE_MEMCACHED=true
- MEMCACHED_HOST=cms-memcached
env_file: config.env
ports:
- "8080:80"

第 4 步:在 Nginx 後面使用 SSL 配置 Xibo

現在我們將使用 nginx 來代理通信,我們首先需要安裝它

$ sudo apt install nginx

在本文中,我們假設您已經擁有 SSL 證書。 在我們的例子中,我們將復制證書和域名的密鑰

$ sudo cp xibo.domain.crt /etc/nginx/certs/xibo.domain.crt

$ sudo cp xibo.domain.key /etc/nginx/certs/xibo.domain.key

現在創建 Xibo 的配置文件。 確保將服務器IP、Xibo域名、Xibo證書和密鑰的值替換為與您的配置相關的好的值。

$ sudo vim /etc/nginx/sites-available/xibo_cms.conf

upstream xibo.domain.com {
server SERVER_IP:8080;
}
server {
server_name xibo.domain.com;
listen 80 ;
access_log /var/log/nginx/xibo.log;
return 301 https://$host$request_uri;
}
server {
server_name xibo.domain.com;
listen 443 ssl http2 ;
access_log /var/log/nginx/xibo.log;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_certificate /etc/nginx/certs/xibo.domain.crt;
ssl_certificate_key /etc/nginx/certs/xibo.domain.key;
add_header Strict-Transport-Security "max-age=31536000";
location / {
proxy_pass https://xibo.domain.com;
}
}

現在創建了配置文件的符號

$ sudo ln -s /etc/nginx/sites-available/xibo_cms.conf /etc/nginx/sites-enabled/xibo_cms.conf

由於這是我們的第一次配置,請在啟用的站點上刪除默認配置,以免發生衝突

$ sudo rm /etc/nginx/sites-enabled/default

現在啟動nginx服務

$ sudo systemctl start nginx

現在在啟動時啟用

$ sudo systemctl enable nginx

檢查您的配置

$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

現在重新啟動服務以考慮配置

$ sudo systemctl restart nginx

現在打開防火牆上的端口 80 和 443:

$ sudo ufw allow 80,443/tcp

另外,如果還沒有,請確保在啟用 UFW 之前打開 ssh

$ sudo ufw allow 'OpenSSH'

如果還沒有,現在啟用 UFW

$ sudo ufw enable

第五步:安裝Xibo容器

現在我們的 Nginx 已經配置好了,我們可以運行我們的 docker-compose 文件

$ cd /opt/xibo

我們將在後台運行 docker-compose 文件。 第一次可能需要一些時間

$ docker-compose up -d

現在可以看看正在運行的容器

$ docker container ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5e8dda81529 xibosignage/xibo-cms:release-3.0.3 "/entrypoint.sh" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, :::8080->80/tcp xibo-cms-web-1
9f4591f0f91a mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp xibo-cms-db-1
b706402036a0 xibosignage/xibo-xmr:release-0.8 "/entrypoint.sh" 2 minutes ago Up 2 minutes 0.0.0.0:9505->9505/tcp, :::9505->9505/tcp, 50001/tcp xibo-cms-xmr-1
75a971ab7435 memcached:alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 11211/tcp xibo-cms-memcached-1
3d2e30e8f9cb ianw/quickchart "node --max-http-hea…" 2 minutes ago Up 2 minutes 3400/tcp xibo-cms-quickchar
t-1

現在您可以嘗試通過您的域名 https://xibo.domain.com 訪問 Xibo 頁面

默認的 Xibo 登錄憑據是:

username: admin
password: password

您可以通過轉到配置文件設置來更改密碼。

如果你想停止 Xibo,只需移動到文件夾並運行命令

$ docker-compose down

結論

在本教程中,我們學習瞭如何在 Ubuntu 20.04 上使用 Docker 安裝 Xibo CMS。 如果你想上傳大尺寸的圖片,你可以通過’Php.ini’文件的配置來實現。 對於 Xibo CMS 的進一步設置和自定義,您可以考慮閱讀其官方文檔以獲取更多詳細信息。 感謝您的閱讀,如果您遇到任何問題並留下您的寶貴意見,請與我們聯繫。