差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
tech:dokuwiki:statistics [2025/04/13 23:42] – 建立 jonathantech:dokuwiki:statistics [2025/04/14 07:02] (目前版本) – [Dokuwiki docker image 加入 mysql client 相關套件] jonathan
行 1: 行 1:
-====== 標題 ======+====== Dokuwiki docker image 加入 mysql client 相關套件 ====== 
 +  * 因為安裝 [[https://www.dokuwiki.org/plugin:statistics|Statistics Plugin]] 會將統計資料寫入 MySQL 資料庫, 但 dokuwiki 在 LinuxServer.io 的 image((lscr.io/linuxserver/dokuwiki:latest)) 內並無 mysql client 相關套件, 導致出現 Error: Call to undefined function mysqli_connect() 
 +  * 如果不想自己重新打包 docker image 可以使用 LinuxServer.io 提供的容器初始化腳本方式來處理
  
 +===== 處理方式 =====
 +  - 建立 custom-init 目錄<cli>mkdir -p custom-init</cli>
 +  - 新增容器初始化腳本 {{repo>https://raw.githubusercontent.com/tryweb/docker-compose/refs/heads/main/dokuwiki/custom-init/10-install-mysqli.sh|custom-init/10-install-mysqli.sh}}
 +  - 修改 docker-compose.yml 掛上 custom-init {{repo>https://raw.githubusercontent.com/tryweb/docker-compose/refs/heads/main/dokuwiki/docker-compose.yml|docker-compose.yml}}
 +  - 重新啟動 docker compose <cli>
 +docker compose down
 +docker compose up -d
 +</cli>
 +
 +===== 確認是否正常啟動 =====
 +  * 在 dokuwiki 的 log 應該會看到類似以下的訊息 <cli>
 +:
 +dokuwiki    | │ 2023-04-13 │ 2024-05-27 │ /config/nginx/nginx.conf                                               │
 +dokuwiki    | │ 2023-12-25 │ 2024-07-16 │ /config/nginx/site-confs/default.conf                                  │
 +dokuwiki    | └────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
 +dokuwiki    | [custom-init] Files found, executing
 +dokuwiki    | [custom-init] 10-install-mysqli.sh: executing...
 +dokuwiki    | fetch http://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
 +dokuwiki    | fetch http://dl-cdn.alpinelinux.org/alpine/v3.20/community/x86_64/APKINDEX.tar.gz
 +dokuwiki    | (1/9) Installing mariadb-common (10.11.11-r0)
 +dokuwiki    | (2/9) Installing perl (5.38.3-r0)
 +dokuwiki    | (3/9) Installing perl-error (0.17029-r2)
 +dokuwiki    | (4/9) Installing perl-git (2.45.3-r0)
 +dokuwiki    | (5/9) Installing git-perl (2.45.3-r0)
 +dokuwiki    | (6/9) Installing libstdc++ (13.2.1_git20240309-r1)
 +dokuwiki    | (7/9) Installing mariadb-client (10.11.11-r0)
 +dokuwiki    | (8/9) Installing mysql-client (10.11.11-r0)
 +dokuwiki    | (9/9) Installing php83-mysqli (8.3.15-r0)
 +dokuwiki    | Executing busybox-1.36.1-r29.trigger
 +dokuwiki    | OK: 176 MiB in 140 packages
 +dokuwiki    | [custom-init] 10-install-mysqli.sh: exited 0
 +dokuwiki    | [ls.io-init] done.
 +:
 +</cli>
 +  * 在 Statistics Plugin 的統計畫面也可以正確出現統計數字 \\ {{:tech:dokuwiki:螢幕擷取畫面_2025-04-13_231406.png|}}
 +
 +<note tip>
 +  * 如果編輯 wiki 頁面儲存出現異常, 錯誤訊息 **Field 'dt' doesn't have a default value**
 +  * 針對 stats_edits 與 stats_lastseen 兩個 Table 內的 dt 欄位設定預設值 current_timestamp() 就可以解決 <code sql>
 +ALTER TABLE `stats_edits`
 +MODIFY COLUMN `dt` DATETIME NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp();
 +
 +ALTER TABLE `stats_lastseen`
 +MODIFY COLUMN `dt` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp();
 +</code>
 +</note>
 +
 +{{tag>dokuwiki mysql}}
  • tech/dokuwiki/statistics.1744558977.txt.gz
  • 上一次變更: 2025/04/13 23:42
  • jonathan