最初是發現過去留存的連結中,有網站消失或討論串刪除造成相關資料佚失的情況,故想弄個簡單的網站存放自己有興趣的東西。
原本是使用 @wiki 來存放資料及文章,陸續放了些文章後發現如要離線保存得手動另外存一份檔案,另外對於圖片等媒體檔的支援不佳,致使如涉及媒體檔保存還得另外找尋網路空間放置。
一開始是放圖片於 Photobucket 上,開始收費後轉往 imgur ,鎖臺灣IP後雖然無法再登帳號後臺,雖然因圖片尚可連結就先放置,但還是希望能尋找解決方案,故開始有自行架設維護的想法。
選擇 Dokuwiki 是透過刪去法從以下條件選擇出來的:
從 Reddit 的討論串看下來,主流建議是使用 Docker 部屬,不推薦使用 XAMPP 上的理由有幾個:
先不論後面發現的安全性問題,前面考量因技術使用門檻較低且環境已打包完畢,故先嘗試將 Dokuwiki 安裝在 XAMPP 上,待未來熟悉架構後再改使用 Docker 部屬網站。
由於是第一次從頭自行動手架設,故趁此機會順便記錄架設的過程及當作其它閒人想使用 XAMPP 的參考。
| 使用版本 | XAMPP for Windows for PHP versions 8.2.12。 |
| 啟用功能 | Apache+WebDAV(內建)、PHP。 |
| 主機規格 | Windows10 家用版,cpu 待確認,8g ram,內顯。 |
| 額外設定 | DokuWiki:2025-05-14 “Librarian”,安裝好後才升級 2026-07-14 “Mort” 版本。 |
| Baïkal:啟用 CalDAV。 | |
| PowerShell:設定自動備份並以 Discord Webhook 連結通知備份運行狀況。 | |
| No-IP:免費 DNS 服務。 | |
| win-acme:申請免費 Let’s Encrypt SSL 自動更新憑證。 | |
| IPBAN:設定規則封鎖惡意掃描 IP。 |
XAMPP 下載安裝 https://mackliu.github.io/php-book/2021/09/18/dev-tools-01/
將 Dokuwiki 解壓縮放入資料夾
注意: 版本 2026-07-14 “Mort” 開始要求 PHP 版本最低要 8.2。 並且開始支援原生 Markdown 語法,但不建議混合使用 由於 Markdown 語法與原生 Dokuwiki 語法邏輯不同也沒有支援全部的功能 混合用除了後臺混亂外前臺的顯示也不一定能正常
設定 HTTPS 連線
使用 win-acme 向 Let'sEncrypt 申請免費憑證並設定自動定期更新
https://ithelp.ithome.com.tw/articles/10260641
這個是想說反正都有 PHP 也弄了 WebDAV
那找個輕量方案也將 CalDAV 設起來好同步行事曆
最後找到的是 Baïkal
基本要求是要能執行 PHP 、有 MySQL 或 SQLite 、 Apache 或 Nginx。
具體安裝方式參考官網
但基本就是上 github 抓取壓縮檔解壓縮後丟到伺服器的資料夾
XAMPP 預設運行的檔案是放在 ../xampp/htdocs/ 下,將壓縮檔的東西也丟到這邊就好
之後能正常啟動伺服器應該就可以登入下列網址進行帳號及其它設定
https://你的網址/baikal/html/
另外官方也有提到像 Windows 10 無法支援
故認證方式是採取 Basic 而不是 Digest 並且加上 SSL 補強
官方另有提供按預設值設定的狀況供參考
<VirtualHost *:443>
DocumentRoot /var/www/baikal/html
ServerName dav.example.org
RewriteEngine on
# Generally already set by global Apache configuration
# RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule /.well-known/carddav /dav.php [R=308,L]
RewriteRule /.well-known/caldav /dav.php [R=308,L]
<Directory "/var/www/baikal/html">
Options None
# If you install cloning git repository, you may need the following
# Options +FollowSymlinks
AllowOverride None
# Configuration for apache-2.4:
Require all granted
# Configuration for apache-2.2:
# Order allow,deny
# Allow from all
</Directory>
<IfModule mod_expires.c>
ExpiresActive Off
</IfModule>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/dav.example.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dav.example.org/privkey.pem
</VirtualHost>
中間有嘗試要移動存取資料夾
但不知道為何修正設定檔案路徑後就會整個服務崩潰
始終只能在 ../caldav/html/ 下存取
手機上使用的是 Fossify Calendar 搭配 DAVx5 同步
總之這邊只列出有裝或曾裝過的附加元件,已成為標準內含的附加元件(例如 Info Plugin )就直接略過了。