多個wordpress共享用戶信息、共享Cookie

背景信息

由於wordpress的問答平臺QA主題與插件githuber-md-1.10.1不能共存,爲了編寫博文方便,因此重新創建了博客論壇。爲了解決用戶無縫銜接的困擾,因此打算兩個網站公用一個數據庫,共享用戶信息。

共享用戶信息

問答中心

目前問答中心網址爲:http://xxx.xxx.xxx/wordpress

​ 數據庫名爲:wordpress

​ 用戶/密碼爲:root/root

​ 用戶信息信息表爲:wp_users、wp_usermeta

​ 表的前綴:wp_

博客論壇:

​ 目前博客暫定網址爲:http://xxx.xxx.xxx/blog,進入blog目錄下,創建wp-config.php,把如下文本信息複製到創建創建文件中:

<?php
/**
 \* WordPress基礎配置文件。
 *
 \* 這個文件被安裝程序用於自動生成wp-config.php配置文件,
 \* 您可以不使用網站,您需要手動複製這個文件,
 \* 並重命名爲“wp-config.php”,然後填入相關信息。
 *
 \* 本文件包含以下配置選項:
 *
 \* * MySQL設置
 \* * 密鑰
 \* * 數據庫表名前綴
 \* * ABSPATH
 *
 \* @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
 *
 \* @package WordPress
 */

// ** MySQL 設置 - 具體信息來自您正在使用的主機 ** //
/** WordPress數據庫的名稱 */
define('DB_NAME', 'wordpress');

/** MySQL數據庫用戶名 */
define('DB_USER', 'root');

/** MySQL數據庫密碼 */
define('DB_PASSWORD', 'root');

/** MySQL主機 */
define('DB_HOST', 'localhost');

/** 創建數據表時默認的文字編碼 */
define('DB_CHARSET', 'utf8mb4');

/** 數據庫整理類型。如不確定請勿更改 */
define('DB_COLLATE', '');


define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

/**#@+
 \* 身份認證密鑰與鹽。
 *
 \* 修改爲任意獨一無二的字串!
 \* 或者直接訪問{@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org密鑰生成服務}
 \* 任何修改都會導致所有cookies失效,所有用戶將必須重新登錄。
 *
 \* @since 2.6.0
 */
define('AUTH_KEY',     'VgL6&ACbHmLNV{0C|F_<gv0M %0D_*iA9nE[gfc`+pBgL!s/i}_Y(2?4Qp!9Ur_n');
define('SECURE_AUTH_KEY', '`jWnvyU9jp,vB-@bvjm5LozjR__iVS*mt7Y9YUQ<X$3l.$h-[W3F6h!rk*z9<lMY');
define('LOGGED_IN_KEY',  'yhF=.i$FcIn;d^f>jYCHSWN`G.CP<{p?7<3b{lNb7NoM;WQIp:j^ipzAFPA458Vb');
define('NONCE_KEY',    'VHh&21a[wf;os>C}uM{#d:DP8]tYv(bD?rS,%k-AO/b_HKgpn.4cOZeL{aJFHGL+');
define('AUTH_SALT',    'N5u4$Tvk.)->s<ctYo<1Ajeo/!?nKK7%qFOvo3S4S5?rKE|2o5X_ThTP5<P[N}G1');
define('SECURE_AUTH_SALT', 'CTWg$s%ZtP1Br]Q=]bIzJ:=bNFz]6=IUT` V#VOfpp]d78,b+CS;LKJ E-so.TwL');
define('LOGGED_IN_SALT',  '+IHY&j(]@<Zr[0L&ElJpya{I7}5Xz_wf!c)7&.fHz3l~X=hQp]9LVo{YLq{cTE<$');
define('NONCE_SALT',    'z4}r7Nd{/N&WkG1}Yu3I5B?TcC[1>GN8m[9*Ta%rRy#Ezh{vIkC?>R*Qq*x5x3&3');

/**#@-*/

/**
 \* WordPress數據表前綴。
 *
 \* 如果您有在同一數據庫內安裝多個WordPress的需求,請爲每個WordPress設置
 \* 不同的數據表前綴。前綴名只能爲數字、字母加下劃線。
 */
$table_prefix = 'bg_';


/**
 \* 開發者專用:WordPress調試模式。
 *
 \* 將這個值改爲true,WordPress將顯示所有用於開發的提示。
 \* 強烈建議插件開發者在開發環境中啓用WP_DEBUG。
 *
 \* 要獲取其他能用於調試的信息,請訪問Codex。
 *
 \* @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define('WP_DEBUG', false);

/* 好了!請不要再繼續編輯。請保存本文件。使用愉快! */

/** WordPress目錄的絕對路徑。 */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');

/** 設置WordPress變量和包含文件。 */
require_once(ABSPATH . 'wp-settings.php');

安裝成功之後,博客論壇網站可以使用之前問答中心的用信息登錄使用。

上述文件中的兩行內容:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

表示兩張表不進行創建,其表需要創建。這兩張表存放用戶信息。至此,用戶可以登錄博客平臺。如果出現提示登錄博客論壇未有權限,可以執行下述sql,但需要進行調整:

insert into wp_usermeta SELECT NULL,`user_id`,REPLACE(`meta_key`,'wp_capabilities','bg_capabilities'),`meta_value` FROM `wp_usermeta` where `meta_key`='wp_capabilities'

需要在這張表加入bg_capabilities,解決權限問題。

實現Cookie共享

問答中心wordpress、博客論壇blog目錄的wp-config.php文件中/* 好了!請不要再繼續編輯。請保存本文件。使用愉快! */之前添加信息:

define('SECRET_SALT','Q$QuHIfQO^(CtrL5D(fcG$miB,fE2]-~::qoB,O_?o|TfgNfQB/x/kv$Tg1Aa7Hf');
define('ADMIN_COOKIE_PATH','/');
define('COOKIEPATH','/');
define('SITECOOKIEPATH','/');
define('COOKIEHASH',md5('xxx.xxx.xxx'));

重啓服務,登錄其中一個論壇,另一個論壇不需要登錄,用戶已經存在。

實現效果

登錄前

登錄http://xxx.xxx.xxx/blog/前:
在這裏插入圖片描述
登錄http://xxx.xxx.xxx/wordpress/前:
在這裏插入圖片描述

登錄後:

在這裏插入圖片描述

http://xxx.xxx.xxx/wordpress/
在這裏插入圖片描述
登錄http://xxx.xxx.xxx/blog/
在這裏插入圖片描述

上述發現,登錄完問答中心之後,博客論壇用戶也已經登錄成功。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章