前提
本文簡要指明如何快速在運行php / Caddy Server的網站上,以子域名的方式部署現代BBS平臺Flarum,我選用的是 FlarumChina 中文優化版。
有用的站點:
下載依賴
- 關閉php和服務器;
- 首先選下列三樣之一下載:
- 推薦 從 GitHub 下載部署腳本 ,它始終自動從GitHub獲取最新版。
- 也可以訪問 中文社區 ,找置頂帖下載最新的包
- 既沒法上GitHub,又不想找帖子,也可以 在這裏下載 Flarum Beta 壓縮包
(隨着時間的推移,這個鏈接可能不再維護)
- 在網站根節點建立一個子目錄
/bbs
(或者其他什麼); - 解壓縮必要的文件:
- 如果你下載的是部署腳本,把下載下來的
index.php
解壓縮出來(只有這個東西是有用的),放在剛建的子目錄下。 - 如果你下載的是完整包,把它的內容解壓縮(不要帶着壓縮根目錄“flarumchina-master”,否則相當於再次創建了一個子目錄你懂的)到剛建的子目錄下。
- 在
php.ini
中啓用fileinfo
和exif
兩個插件(根據服務器運行的OS不同操作也不同,基本操作就是去掉註釋號“;
”,fileinfo還依賴於其他插件,請一併啓用)。
安裝
- 打開服務器和php,進入
localhost/bbs
;
- 如果你用的是自動部署腳本,它會開始自動工作,工作完成後它會銷燬自身,並轉到Flarum的Setup界面
- 如果用的是完整包,目前應該已經看到了Flarum的Setup界面
- 進入MySQL終端,新建一個空數據庫
bbs_flarum
(名稱自定); - 回到Flarum的Setup界面,輸入論壇名、MySQL的用戶名、服務器、密碼,數據庫就填寫剛纔建立的
bbs_flarum
即可,數據庫前綴可不填。 - 完成設置後,視瀏覽器和服務器配置可能會出現白屏或者404,也可能進入了一個看起來工作正常的論壇。無論哪種,實際上Flarum都已經配置好了。
配置重定向
Flarum的多數功能都需要使用URL重寫,因此必須在服務器上開啓必要的功能。如果使用Caddy之外的其他服務器,請移步這裏:
如果你使用Caddy Server,請在caddyfile
中參考下面的內容調整、追加配置:
localhost:80 {
## 以下是常規配置,你應該已經配置了類似的東西:
root C:\\www\\root # 修改: root目錄;如果在子文件夾中運行,不要指定/bbs子文件夾
gzip
errors error.log {
404 404.html # 修改: 404頁面;之後用到404的地方也需要修改
}
fastcgi / 127.0.0.1:9000 php {
# 修改: 配置php-cgi
}
## 以下是重寫配置:
rewrite {
r ^/bbs/api.*$ # 修改: /bbs爲論壇子目錄,如果無需設立子目錄就刪掉'/bbs'四個字符,下同
to /bbs/api.php
# 意義:請求.../api時轉而請求對於php
}
rewrite {
r ^/bbs/admin.*$ # 修改: /bbs爲論壇子目錄,如果無需設立子目錄就刪掉'/bbs'四個字符,下同
to /bbs/admin.php
# 意義:請求.../admin時轉而請求對於php
}
rewrite {
to {path} {path}/ /bbs/{path} /bbs/{path}/ /bbs/index.php
# 修改: 上面這行,如果無需設立子目錄,就刪掉'/bbs/{path} /bbs/{path}/ /bbs',注意空格
# 意義:如果一個請求的資源(如'/assets')在根目錄下找不到就去子目錄找,如果還找不到就轉而請求.../index.php
}
rewrite {
r ^.*?bbs/vendor.*?$ # 修改: /bbs爲論壇子目錄,如果無需設立子目錄就刪掉'/bbs'四個字符
to /404.html
# 意義:不允許請求.../vendor
}
rewrite {
r ^.*?bbs/storage.*?$ # 修改: /bbs爲論壇子目錄,如果無需設立子目錄就刪掉'/bbs'四個字符
to /404.html
# 意義:不允許請求.../storage
}
rewrite {
r ^.*?bbs/config.php$ # 修改: /bbs爲論壇子目錄,如果無需設立子目錄就刪掉'/bbs'四個字符
to /404.html
# 意義:不允許請求.../config.php,這裏面保存了數據庫密碼
}
rewrite {
if {path} match ^.*?bbs/(composer\.(json|lock)|config\.php|flarum|storage|vendor).*?$
# 修改: 上面這行,子目錄名,如果無需設立子目錄就刪掉'/bbs'四個字符
to /404.html
# 意義:不允許請求一堆敏感的東西
}
}
重啓服務器,論壇應該已經可以正常使用了,測試:右上角點自己→設置後臺