[Discuz!] 基本架構與環境建置指南 – Discuz!X系列

Intro

官方目前似乎只介紹到X3.2版本,可以參考Discuz! G雲碼專案或官方論壇,同期已經到x3.4。


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

設定檔:

主要設定檔(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


密碼規則

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

Leave a Reply

Your email address will not be published. Required fields are marked *