LimeSurvey 是一款開源的線上問卷調查程式,支援多國語言(包含繁體中文),由於功能完整,介面簡潔易用,因此相當受到歡迎。它用PHP語言編寫並可以使用MySQL,PostgreSQL或者MSSQL等多種資料庫,它整合了調查程式開發、調查問卷的釋出以及資料收集等功能,使用它,用戶不必了解這些功能的編程細節。 本系統包括了分支、自訂頁面布局和設計,並且提供了基本的統計分析功能。(摘錄自維基百科)
目前在 Docker Hub 上最受歡迎的 LimeSurvey Docker 是 crramirez/limesurvey。利用 Docker 可以節省許多安裝設定環境的繁瑣步驟,也方便未來管理與維護。有關 Docker 的介紹與安裝步驟,請參考另一篇文章「在 Ubuntu 18.04 上安裝 Docker 與 Docker Compose」。
以下的安裝設定步驟是在 Ubuntu 18.04.1 Server 下測試成功。
1. 建立 docker-compose.yml 文件
vi docker-compose.yml
(底下為檔案內容)
version: '3'
services:
limesurvey:
hostname: LimeSurvey
restart: always
ports:
- "5088:80"
volumes:
- limesurvey_mysql:/var/lib/mysql
- limesurvey_config:/app/application/config
- limesurvey_upload:/app/upload
image:
crramirez/limesurvey:latest
volumes:
limesurvey_mysql:
limesurvey_config:
limesurvey_upload:
2. 啟動 LimeSurvey Server Docker
請在 docker-compose.yml 目錄下執行 up 指令,若是第一次啟動,系統會自動搜尋 Docker Hub 的 crramirez/limesurvey Image,並從網路上下載至您的主機:
docker-compose up -d
Docker Image 下載完成後會自動啟動,您可以用 images 指令確認 Image 已經下載至您的主機,儲存庫(Repository) 會顯示 LimeSurvey 的 Image 名稱:
docker-compose images
再用 ps 指令確認 LimeSurvey Docker 已經啟動,Name 就是指容器 (Container)的名稱:wizigo_limesurvey_x_xxxxxxxxxxxx。其中 wizigo 是我登入的使用者名稱。
docker-compose ps
Docker 成功啟動後就可以使用瀏覽器連線到 LimeSurvey Server (例如:http://192.168.0.100:5088),第一次連線的時候需要做一些基本設定。首先選擇語言為「繁體中文(台灣)- Chinese (Traditional; Taiwan)」,然後按「Start installation」:
接下來顯示授權頁面,請按下「接受」:
接下來進入安裝前檢查頁面,看一下目前狀態是否有問題,若沒有問題,請按「下一頁」。
接著設定資料庫,設定完後按「下一頁」:
資料庫類型:MySQL
資料庫位置:localhost
資料庫用戶:root
資料庫密碼:(留空白)
資料庫名稱:limesurvey (可自行選擇名稱)
表前綴 :lime_ (可自行選擇表前綴)
第一次使用尚未建立資料庫,請按「建立資料庫」:
接著會顯示資料庫已成功安裝的訊息,並進入管理員設定頁面,這裡的管理員電子郵件可以設定別名,G Suite 的別名設定請參考之前的文章「G Suite 安全性與別名設定」。設定完之後請按「下一頁」:
恭喜您!LimeSurvey 已被成功安裝!請按「管理」:
進入登入畫面,請輸入剛剛您設置的管理員登入名字和管理員登入密碼,接著按「登入」:
進入首頁之後請先按「關閉」:
接著進入「全域設定」:
進入「郵件設定」標籤,這裡是有關 LimeSurvey Server 送信時使用的 SMTP 等資訊。如果您的郵件是使用 G Suite 套件的話,不需要多花一筆錢申請一個帳號給 LimeSurvey 使用,只需要在使用的 G Suite 帳號中設定一個電子郵件別名即可,另外也需要將登入的電子郵件帳號設定成「允許使用低安全性的應用程式存取」才不會有問題。設定方法請參考之前的文章「G Suite 安全性與別名設定」。下面的 SMTP 的設定是以 GMail 為範例,這裡的「SMTP使用者名稱」要設定真正登入的帳號,不能使用別名:
預設網站管理員電子郵件:limesurvey@wizigo.tw
管理員名字 :Administrator
Email 方法 :SMTP
SMTP 主機 :smtp.gmail.com:587
SMTP 使用者名稱 :hr@wizigo.tw
SMTP 密碼 :xxxxxx
SMTP 加密 :TLS
設定完之後按「儲存」:
按照網路上的教學安裝 LimeSurvey Docker 的時候,最常遇到的就是 volume 的問題。volumes 會將容器裡面的目錄連結到容器外部主機的目錄,方便使用者設定或是備份資料。使用 docker 的 volume list 指令可以看到目前系統產生的 volumes 有哪些,以我的主機為例:
docker volume list
上面紅色圈選的地方就是 docker-compose.yml 裡面設定的 LimeSurvey volumes:
...
volumes:
- limesurvey_mysql:/var/lib/mysql
- limesurvey_config:/app/application/config
- limesurvey_upload:/app/upload
...
volumes:
limesurvey_mysql:
limesurvey_config:
limesurvey_upload:
這裡的 volumes 目錄設定請不要設定絕對路徑,直接設定目錄名稱就好了。如果設定絕對路徑的話,就會出現 volumes 目錄裡面沒有檔案,或是沒有權限讀寫目錄等奇奇怪怪的問題,一勞永逸的方法就是只設定目錄名稱,由系統自行建立 volumes 目錄。docker compose 會將這些設定的 volumes 前面加上登入的使用者名稱,例如我登入的名稱是 wizigo,所以實際產生的 volumes 目錄會是這個樣子:wizigo_<您設定的目錄名稱>,目錄是位在 Ubuntu 路徑 :/var/lib/docker/volumes/。要特別注意的是,volumes 目錄後面會自動產生 “_data” 目錄,裡面才是放置檔案的真正位置。
設定完成,我要去泡蜂蜜檸檬水了!