背景信息
由於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/
上述發現,登錄完問答中心之後,博客論壇用戶也已經登錄成功。