Intro
官方目前似乎只介紹到X3.2版本,可以參考Discuz! G雲碼專案或官方論壇,同期已經到x3.4。
各版本Github下載: yidas/discuzx-release
PHP 相容
- x3.2含以前支援PHP 5.6,不支援PHP 7.2
- x3.3支援PHP 7.2
MeriaDB 相容性問題
Discuz!在判斷相容MySQL版本目前是使用單純的字串比較,如install\include\install_function.php
內:
($dbver > '4.1' ? " ENGINE=$type DEFAULT CHARSET=".DBCHARSET : " TYPE=$type");
而$dbver
一般皆由各version()
函式個別從原生mysql_get_server_info()
函式取得,所以MeriaDB可能會回傳如10.1.38-MariaDB-cll-lve
,而造成比對後是小於4.1
版本。
Install修正
Install部分主要使用install\include\install_mysql.php
作為$db
全域變數,所以修改:
function version() {
return '5.6'; // 直接指定回傳版本
// return mysql_get_server_info($this->link);
}
其他修正
Install完後,論壇的使用上還是會有MySQL語系語法判定錯誤問題,各程式各自有function version()
需修改:
source/class/db/db_driver_mysql.php
source/class/db/db_driver_mysqli.php
uc_client/lib/db.class.php
uc_client/lib/dbi.class.php
uc_server/lib/db.class.php
uc_server/lib/dbi.class.php
api/db/dbbak.php (x2)
修改完後需要更新緩存更新
升級版本
版本間升級請查詢Discuz!官網確認,以下列僅出提醒(Discuz!X系列預設):
查看目前版本
Discuz!X系列版本PHP檔案位置:source/discuz_version.php
UCenter版本PHP檔案位置:uc_server/release/release.php
目錄與檔案保留
如只是節點間升級例如x2.0 => X3.2 => X3.4,則升級到X3.2時只需要上傳並使用update.php
即可。
設定檔:
主要設定檔(DB etc.): config/
附件保存
裡面尚有分結構:data/attachment
頭像保存
屬於UC系統:uc_server\data\avatar
風格樣式
如版本相容,Template可以全部或選擇轉移:template/
UCenter
如UC與主程式在一起,可以保留整包Ucenter(Client & Server):uc_client/
, uc_server
UC Server設定檔位於
uc_server/data/config.inc.php
若升級遇到版本判斷錯誤,可以直接訪問
/install/update.php?step=prepare
跳過,或直接修改update.php
程式碼。
FAQ
X3.4錯誤: (1054) Unknown column port in field list
應為升級包Bug,可以自行增加該column:
ALTER TABLE `pre_common_member_status` ADD `port` smallint(6) NOT NULL DEFAULT '';
檔案目錄權限
就目前X3版本系列,官方建議開啟web server寫入權限的目錄:
./config/
./data
./uc_client/data/cache
./uc_server/data
密碼規則
UCenter
密碼生成規則如下:
md5(md5($password).$salt);
$salt
每個用戶各自不同存於pre_ucenter_members
資料表
欄位
secques
為安全提問,空為移除使用UCenter後論壇主程式的memeber表密碼就沒作用了
其他規則
審核會員
Discuz!等待驗證會員
是預設member group ID為8
,所以在pre_common_member
即能辨識,另外對應到pre_ucenter_members
。
- 會員等待驗證表(後台等待審核的會員數):
pre_common_member_validate
hi 🙂 bross 🙂