[指南] Amazon EC2 安裝 Matomo ( Google Analytics ) 來代替 Google Analytics

近期接到公司的測試要求,為了要避免 Google Analytics 在中國沒辦法使用瀏覽介面的問題,來尋找個替代品。Matomo 會是個不錯的選項,它能夠觀看的資料跟 Google Analytics 不相上下,且資料得以保存在自己手上,也不會被 Google 隱藏起來。對於一般部落客而言,可以使用其雲端版服務,最低每月 29 EUR 起跳。這篇是筆記下如何將其架在 Amazon EC2 上的紀錄,這樣一來能夠客製化的程度會高很多。
amazon aws ec2 logo


概略和前置作業

1. 一台安裝好 Amazon EC2 LAMP ( Linux, Apache, MariaDB, php ) 的伺服器,並綁定好 Elastic IP
2. 一個自己能夠認證的專屬網域,並透過 DNS 設置好 A 的指向伺服器
3. 透過 SSL For Free 申請免費的 Let’s Encrypt 憑證,並導入到 EC2 的 Apache 設定內
4. 讓 EC2 啟用 root 使用者登入,上傳憑證檔和 Matomo 相關檔案到 /var/www/html 底下
5. 藉由瀏覽器訪問你的 EC2 下的 www 目錄中,你方才上傳的檔案位置
6. 藉由上一步所啟用的安裝精靈,完成設定
7. 透過套件(例如 WordPress) 或是手動埋入追蹤碼到 </head> 前


實際流程

Amazon Elastic Compute Cloud ( EC2 ) 設定

1. 可參考右邊這篇:[指南] 遠端開發實作 – 搭配 Amazon AWS EC2 – Node.js 伺服器設定 ,來設置好基本的 Access 和啟用機器 Instance
2. 用 ec2-user 的身分連上 EC2 後,再照官方的 教學:在 Amazon Linux 2 上安裝 LAMP Web 伺服器 來準備好伺服器 ( 不需要安裝 phpMyAdmin )
3. [指南] 給初心者在 AWS EC2 Linux 主機安裝 Laravel 的排解指南 ,裏頭有提到一些常見的錯誤故障排除

EC2 綁定 Elastic IP

可參考右邊這篇:(AWS EC2) Service for EC2 指定固定IP及釋放IP 來進行實作,雖說介面有些許不同,但概念是相同的。
當你申請好彈性 IP 後,綁定到一台 EC2 上是不會收費的。不過若你取消綁定,且沒有釋放出這個 IP 位置的話,是會被收費的。換言之,你是向 Amazon 租了一個 IP 位置來用。

DNS 導向設置

若你沒有一個域名,那就得先申請一個才行。通常若你有自己的部落格網址,那你已經具備好基本條件了。
1. 進入你的 DNS 設定頁面,並新增一個 A 位置導向到 EC2 所在的 IP 位置。在上一步中要申請一個 Elastic IP,就是確保萬一 EC2 重開機時,IP 位置不會變動。

demo dns settings

2. 設定完成後,你可以輸入你的自訂域名,如 hello.<domainName>.com,看看是否可以 redirect 到特定頁面

P.S. 請盡量使用如 Cloudflare 之類的防火牆服務,把你的 IP 位置藏在其後,以免被惡意攻擊

申請 Let’s Encrypt 憑證

可先參照這篇:SSL For Free 免費 SSL 憑證申請,使用 Let’s Encrypt 最簡單方法教學!來申請一個憑證。關於網域所有權的認證部份,可以使用該網域的 Email 信箱認證。這點可以透過主機商所提供的 Email 服務完成。

安裝憑證到 EC2 的 Apache 設定

之所以要大費周章搞個 https,是因為現今絕大多數網站都已經是 https 連線,而一個 https 連線的網站裡,瀏覽器如 Google Chrome 是會阻擋所有不是以 https 所獲取的資源。
安裝方法,可以參考這篇:Installing SSL Certificate on Apache

啟用 AWS EC2 的 root 權限來上傳資料

啟用完畢後,建議關閉此功能,以避免額外風險。不過為了要上傳上一步取得的憑證資料和後續 Matomo 的安裝檔案,這一步是必須的。

詳情可參考這篇:EC2 切換使用 root 登入方式

用 root 權限上傳憑證和安裝檔資料

1. 依照 Installing SSL Certificate on Apache,來上傳憑證檔案到指定位置,完成後記得重啟 Apache
2. 接著上傳 matomo 的安裝檔到 /var/www/html 底下,並確認好資料夾位置即可 (你的資料夾結構為 analytics/matomo)

安裝 Matomo

1. 用瀏覽器開啟網址,格式一般為 https://<你方才申請的網域>/analytics/matomo
2. 如果順利的話,會開啟安裝精靈,請照著指示操作。細節可上官網教學觀看,裏頭也有詳細的 FAQ
https://matomo.org/docs/installation/
3. 若要正常顯示一些小圖示,需使用 sudo yum install php-gd 在 Linux EC2 上安裝。完成後需部份重啟 PHP 服務:sudo systemctl restart php-fpm

透過套件(如 WP-Matomo Integration (WP-Piwik) ) 或是手動埋入追蹤碼到 </head>

依照你的需求,複製「追蹤程式碼」中的段落到套件指定位置貼上,或是手動埋入到 </head> 前即可


參考資料

1. 彈性 IP 地址
2. Amazon Web Services之門外漢心得
3. AWS EC2 切換 root 權限及登入方式
4. Ubuntu 開放 root 登入 ssh
5. Amazon EC2 – PHP GD image library
6. How to start, stop & restart MariaDB server in Linux
7. How to change max_allowed_packet size

按讚加入粉絲團

延伸閱讀