網絡上文章很多,按步驟配置好了之後phpcms可以同步登入dz,但是dz登入後狀态卻無法同步到phpcms,網絡上找了很多資料都大同小異,頭大。隻能自己調試了,廢話不多說了。
以下網絡上抄的安裝步驟,留着自己用,有安裝過的可跳過。
第一步:安裝 phpcms V9 。安裝 Discuz! X3.1 (同時安裝 UCenter)。
第二步:在 UCenter 中添加“phpsso 應用”。
1、管理者登入 Discuz! X3.1 管理中心,進入“UCenter”,點選“應用管理”。
2、點選“添加新應用”按鈕,選擇安裝方式為”自定義安裝“。在展開的”添加新應用“參數配置表中,各項參數配置如下:
應用名稱:phpsso
應用的主 URL:http://localhost/phpcms/phpsso_server (必填, phpcms 安裝路徑,視實際情況而定,最後不要帶斜線)
應用 IP:(選填,正常情況下留白即可。如果由于域名解析問題導緻 UCenter 與該應用通信失敗,請嘗試設定為該應用所在伺服器的 IP 位址。)
通信密鑰:(必填,phpcms 的通信密鑰必須與此設定保持一緻,否則 phpsso 将無法與 UCenter 正常通信。)
應用類型:其它(必選)
應用的實體路徑:(選填,預設留白)
檢視個人資料頁面位址:(選填,URL中域名後面的部分,如:/space.php?uid=%s 這裡的 %s 代表uid)
應用接口檔案名稱:(選填,預設為uc.php)
标簽單條顯示模闆:(選填,預設留白)
标簽模闆标記說明:(選填,預設留白)
是否開啟同步登入:是(可選,開啟同步登入後,當使用者在登入 Discuz! 時,同時也會登入 phpcms 。)
是否接受通知:否(可選)
3、送出後,将生成新的應用ID。(記住這個應用ID,在”第三步“中将用到它。)
4、進入背景“站長”,“UCenter 設定”選項。"是否允許直接激活"一項,選擇“是”。
第三步:配置 phpsso 。
1、管理者登入 phpcms V9 背景管理中心,進入“phpsso”,點選“系統設定”。
2、在“系統設定”下的“UCenter配置”一欄中,各項參數配置如下:
是否啟用:是
Ucenter api 位址:http://localhost/discuz/uc_server (必填,藍色字型部分為 Discuz! 安裝路徑,視實際情況而定,最後不要帶斜線)
Ucenter api IP:(選填,一般不用填寫,遇到無法同步時,請填寫 UCenter 主機的IP位址)
Ucenter 資料庫主機名:localhost (必填,視實際情況而定)
Ucenter 資料庫使用者名:root (必填,視實際情況而定)
Ucenter 資料庫密碼:root (視實際情況而定)
Ucenter 資料庫名:discuz (必填,視實際情況而定)
Ucenter 資料庫表字首:`discuz`.pre_ucenter_ (必填,視實際情況而定。如果此項填寫錯誤,将導緻 phpcms 無法注冊新會員!)
Ucenter 資料庫字元集:UTF-8 (必選,視實際情況而定)
應用id(APP ID):(必填,該值來在“第二步”中 UCenter 建立的 phpsso 應用時自動。)
Ucenter 通信密鑰:(必填,一定確定該值與在“第二步”中 UCenter 建立的 phpsso 應用密鑰相同。)
3、送出。
第四步:檢視通信狀态。
檢視在 UCenter 中建立的 phpsso 應用與 UCenter 通信是否成功。
如果通信成功,則進行下一步。
如果通信失敗,請檢查“第二步”與“第三步”中的各項參數配置是否正确。
第五步:備份 ./phpsso 。将 Discuz! X3.1 的 uc_client 複制到 phpsso_server/api/ 下,覆寫原來的 uc_client 。
第五步我我試了下,如果覆寫的話,phpcms都無法同步登入到dz,是以如果可以正常同步就忽略了。
第六步:修改 Discuz! 會員登入相關
1、修改 template\default\member\login.htm 第 36 行,删除
onsubmit="{if
$this->setting['pwdsafety']}pwmd5('password3_$loginhash');{/if}pwdclear
= 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash',
'returnmessage_$loginhash', 'onerror');return false;"
2、修改 template\default\member\login_simple.htm 第 3 行,删除
onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return lsSubmit();"
3、修改 /source/function/function_message.php 第 78 行,查找
$param['header'] = true;
替換為:
$param['header'] = false;
以上配置内容晚上基本上可以實作phpcms與dz的同步了。dz同步還不一定。需要以下配置:
找到dz檔案夾下的uc_client\data\cache\apps.php。找到該檔案,看看是否隻有一個
$_CACHE['apps'] = array (
1 =>
array (此處省略...),
需要在此處添加我們剛剛建立的内容:
2 =>
array (
'appid' => '2',
'type' => 'phpcms主站',
'name' => 'phpcms主站',
'url' => 'http://127.0.0.1:82/phpcms/phpsso_server',
'ip' => '',
'viewprourl' => '',
'apifilename' => 'uc.php',
'charset' => '',
'dbcharset' => '',
'synlogin' => '1',
'recvnote' => '1',
'extra' => false,
'tagtemplates' => '',
'allowips' => '',
),
完成以上代碼應該就可以完美同步了。
來源:http://hycaiwanfu.blog.163.com/blog/static/453764201412710137952/