워드프레스, 그누보드 연동
현재 길호넷에서 워드프레스와 그누보드를 연동한 방식입니다.
사이트를 좀 더 안정화를 시킨 후 소스를 공개하려고 하였는데, 그누보드 사용자분의 요청(?)으로 급조하여 만든걸 올립니다. (http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=741180)
추후, 그누보드의 head.php, tail.php 에서 워드프레스에서 생성된 페이지를 직접 불러들이고, 캐쉬 처리 및 컨텐츠 영역을 상하로 나눈 후 출력하는것을 생각하고 있습니다.
- 워드프레스 회원 DB 를 기반으로 그누보드와 연동되어, 게시판 글 작성시 워드프레스의 로그인에 따라 액션을 취합니다.
- 그누보드를 gnu.kilho.net 로 사용하고 있습니다. 따라서 워드프레스에서 서브도메인과 쿠키를 공유할 수 있게 하여야 합니다.
(길호넷에서는 “root Cookie” 라는 플러그인을 사용하였습니다) - 워드프레스와 그누보드가 각각의 서버로 운영되고 있습니다. 소스 내용 중 자신의 워드프레스가 설치된 서버IP, 워드프레스가 설치된 도메인 정보를 각각 수정하세요.
- 워드프레스가 설치된 서버에 아래 소스를 “wp-sso.php” 로 저장합니다.
<?
/********************************************************
* WordPress SSO(Single Site On) Helper Object
* by Oh Kilho (http://www.kilho.net)
*******************************************************/
include 'wp-load.php';
$wp_cookie = $_COOKIE['wordpress_logged_in_'.md5(get_site_option('siteurl'))];
$wp_user = $_POST['user'];
$wp_pass = $_POST['pass'];
if($wp_user&&$wp_pass)
{
if(user_pass_ok($wp_user, $wp_pass))
$user = get_user_by('login', $wp_user);
}else{
if($wp_cookie)
{
wp_set_current_user(wp_validate_auth_cookie($wp_cookie, 'logged_in'));
$user = wp_get_current_user();
}
}
if($user)
{
echo '<id-->'.$user->user_login.'';
echo '<nick>'.$user->display_name.'</nick>';
echo '<email>'.$user->user_email.'</email>';
echo '<url>'.$user->user_url.'</url>';
}
?>
- 그누보드가 설치된 서버의 “/extend/” 디렉토리에 아래 소스를 “wp-sso.php”로 저장합니다.
<?
/*
그누보드 확장 모듈 : 워드프레스 SSO 처리
*/
$wp_server_domain = '워드프레스 설치된 도메인'; // xxx.com
$wp_server_addr = '워드프레스 설치된 서버 IP'; // xxx.xxx.xxx.xxx
$wp_server_path = '워드프레스 설치된 경로'; // 루트일 땐 '/' 로 작성
$wp_cookie_name = 'wordpress_logged_in_'.md5('http://'.$wp_server_domain);
$wp_cookie_value = $_COOKIE[$wp_cookie_name];
if ($_SESSION['ss_mb_id'])
{
// 총 관리자인 경우 열외 - 그누보드를 자체적으로 살펴볼 권한을 줘야징
if(!$wp_cookie_value&&$is_admin != 'super')
{
// 이호경님 제안 코드
session_unset(); // 모든 세션변수를 언레지스터 시켜줌
session_destroy(); // 세션해제함
// 페이지를 재실행
echo '<script type="text/javascript"> window.location.reload(); </script>';
exit;
}else{
echo 'Connection failed';
exit;
}
}
?>
Comments (12)
제가 찾고 있는 내용이네요?? 답변 꼭 부탁드립니다.
제가 운영하고 있는 워드프레스 K-BOARD 게시판에
학교서버에 등록되어 있는 계정을 가지고 있는 사람만
글을 쓰게 하고 싶습니다. 도움 부탁드립니다.
답변 꼭 부탁드립니다.
학교 서버의 계정을 관리할 수 없다면 불가능한 방법입니다. 현재 적은 내용은 워드프레스를 기본 베이스로 하여 타 솔루션과 연동하는 구조라 말씀하신 내용과는 다른것 같습니다 ^^
감사합니다 🙂
오길호님께 질문을 드릴려고 로그인을 하려니 로그인이 되지 않습니다. 게시판에 글을 쓸수가 없어서 죄송하지만 이곳에 남깁니다.
제가 5월달에 등록해서 받았던 비번은
사용자 이름: cshop
비밀번호: x6rnn9DBwHCi
이렇게 되는데 로그인도 되지 않고 새 비번도 제 이메일로 발송되지 않네요…. 이메일 주소를 바꿔서 등록을 해도 새로 등록도 되지 않습니다.
저는 몇년전부터 개인 홈피를 WP 로 쓰고 있었어서 오길호님께서 5월달에 연동 소스를 공개해 주셔서 매우 반가웠는데, 사용은 하지 않았었습니다. 아직 쓸일이 없었어서….
오늘 설치해보니 작동이 되긴 되는데, 아후.. 제가 한국어가 서툴러서…
http://hackya.com/dtd/extend/wp-sso.php 여기가 그누보드
출력되는 것도 없고, 에러메세지도 뜨지 않습니다.
http://hackya.com/blog/wp-sso.php 여기가 WP 입니다.
testtesteonsalt@gmail.com (test 가 ID)
여기서는 로그인 된 value (test) 가 두번 출력됩니다. ㅠㅠ
저는 css 하고 .js/jQuery 밖에 할줄 아는게 없어서요…. php 는 아주 아주 기초적인 것 밖에 모릅니다. 그래서 이걸 어떻게 해결해야 할지도 모르겠네요….
저는 예제와 달리 그냥 같은 웹사이트에서 블로그와 DTD (그누보드) 를 돌리고 있어서.. 이런 현상이 일어나는 것 같은데 (제 생각에는), 도움을 부탁드려도 될까요? 꾸벅….
php 는 아주 기본적인 상식밖에 없는 관계로 제가 해결할 수 있는 부분이 아니라서… ㅠㅠ
길호넷을 서비스 받는 웹호스팅에서 메일 발송이 차단 된 듯하여 해당 업체에 문의를 해두었습니다.
hackya.com 에서 로긴을 하고 확인을 해보려고 헀는데.
회원가입이 되질 않아서 확인을 못하고 있습니다.
비밀번호를 메일로 드렸으니, 좀 더 자세하게 질문게시판에 글 남겨주세요
네. 보내주신 로그인 비번을 받아서 질문을 다시 올려 놓았습니다.
감사합니다.
현재 메일발송 서버를 Google SMTP 를 이용하도록 하였습니다.
사용중인 웹호스팅과 별개로 메일을 발송할 수 있도록 하였으니, 비밀번호 찾기를 하시면 정상적으로 됩니다.
(모르고 있었는데, 감사합니다 ^^)
안녕하세요. SIR에서 링크를 타고 왔습니다.
워드프레스와 그누 연동 하는데, 조금 어렵네요..ㅠ
제가 실력이 미천해서 어느 부분 설정이 잘못 되었는지 좀 봐주시면 정말 감사하겠습니다.
1. gnuboard 폴더 내에 adm,bbs…죽 업로드하고, 서브도메인을 괄호와 같이 생성했습니다. (mydomain.com/gnuboard = gnuboard.mydomain.com)
2. 워드프레스와 그누보드가 설치된 서버ip는 똑같습니다. DB는 별도로 신규 생성하지 않고, 기존의 DB에 함께 설치되어 있습니다.
– 다시말하면, 그누보드 세팅시에 DB명을 기존 DB명과 동일하게 설치했습니다.
3. 워드프레스에서 [root Cookie] 플러그인을 설치하고, 설정을 Allow Cookies to go across All Subdomains에 체크를 했습니다.
4. 워드프레스가 설치된 FTP루트(wp-admin,wp-content… 폴더 및 파일들이 있는 루트)에 윗부분에 정리하신 wp-sso.php를 생성하여 업로드하였습니다.
5. 그누보드가 설치된 /gnuboard/extend 폴더에 아래부분에 정리하신 wp-sso.php를 생성하여 업로드하였습니다.
– 수정 설정한 부분
$wp_server_domain = ‘mydomain.com’; //워드프레스가 설치된 도메인
$wp_server_addr = ‘mydomain.com의 ip’; // 워드프레스가 설치된 서버의 IP
위와 같이 했을 때, 현상이 이렇습니다.
워드프레스에서 로그인 후에, mydomain.com/gnuboard 또는 gnuboard.mydomain.com 으로 접속했을 때,
로그인이 되어 있지 않는데, 관련팁을 좀 주시면 감사하겠습니다.
mydomain.com/wp-sso.php 로 접속하였을때 404 에러가 뜨지 않는지 확인부탁드립니다.
그외 말씀 하신대로 하셨다면, 정상적으로 작동이 되야 될텐데 이상하네요.
(참, 추가 질문은 “질문게시판” 에 올려주세요)
질문게시판을 보고 해결하였습니다.
오길호님 연동프로그램 정말 감사하네요. ㅎㅎ
정말 감사합니다. ^^
감사합니다. ^^