Xpress Engine (구 제로보드XE)에 대한 전반적인 사항을 정리한다.
Xpress Engine은 게시판 기능을 넘어서 ECM (Enterprise Content Management) 도구로 발전하고 있다.


CentOS에 XE 1.7.3.4 설치


CentOS에서 XE 1.7.3.4를 설치 합니다.

  • 사전 준비 사항
  • Xpress Engine을 다운로드하여 원하는 위치에 놓고 압축을 풉니다.
    unzip xe.1.7.3.4.ko.zip
    mv xe board
    chown -R apache:apache board

  • http://~/board 사이트로 접속하여 설치를 합니다.


오류 : ERR_CONTENT_DECODING_FAILED

  • 오류 메시지 : 330 오류(net::ERR_CONTENT_DECODING_FAILED): 알 수 없는 오류
  • 임시 조치 방법
    • vi classes/display/DisplayHandler.class.php
      //extension_loaded('zlib') &&
      extension_loaded('gzip') &&


설치 가이드


Xpress Engine은 1999년부터 개발되어 온 제로보드(ZeroBoard)로 부터 시작하여 지금은 게시판 영역을 넘어 ECM(Enterprise Content Management)로 발전한 오픈소스 이다. {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="25%" align="center" valign="middle" style="background-color:#eee;"|제로보드
(1999년) |width="75%"| 고영수(zero)개발자가 개발한 게시판 소프트웨어인 제로보드는 4.1 버전까지 업데이트 되며 기존의 게시판 소프트웨어에 비해 강력한 기능을 보유한 국내 게시판 소프트웨어의 대명사가 되었습니다. 지금도 많은 사용자가 제로보드 4를 이용하고 있습니다. |- |align="center" valign="middle" style="background-color:#eee;"|제로보드 XE
(2008년 2월) | 제로보드 XE(zbxe)는 기존의 제로보드를 업그레이드한 것이 아닌, 기획부터 구현까지 완전히 새로 만든 소프트웨어 입니다. 게시판 뿐만 아니라 다양한 종류의 웹 사이트를 제작할 수 있는 프레임워크, 자유/오픈 소스 소프트웨어로 나아가기 위한 큰 변화의 시작이었습니다. |- |align="center" valign="middle" style="background-color:#eee;"|Xpress Engine
(2008년 11월) | XpressEngine이라는 새로운 이름으로 명칭을 변경하면서 개인의 다양성과 콘텐츠의 안정성, 이동성에 더욱 중점을 두었습니다. 제로보드 XE의 '보드(게시판)'라는 단어가 갖는 한계를 벗어나 감정과 생각 등의 생산, 발행, 유통을 도와주는 자유/오픈 소스 소프트웨어가 되고자 하는 의지를 담았습니다. |}


설치전 사전 준비 사항

{{wamp 준비}}

  • 주의 사항 및 추가 준비 사항
    • MySQL 4.1 이상 지원
    • PHP 4.x와 PHP 5.x 지원, 단 5.2.2는 PHP 자체에 버그가 있음
    • PHP에 iconv 확장팩 설치
    • PHP에 XML 라이브러리 설치


XE용 DB 설정

{{MySQL DB 설정|Xpress Engine|xedb|xe}}


XE 설치

  • %APACHE_HOME%/conf/httpd.conf 파일에 XE 관련 정보를 추가하고 Apache를 재기동 한다.

    • Windows Vista의 경우 관리자로 실행하여 수정 한다.
    • Ubuntu의 경우 "AllowOverride None"이 아니라 "AllowOverride All"로 설정해야 rewrite 모듈이 정상 동작 한다.
      
       Options FollowSymLinks
       '''AllowOverride All'''
      #    Order deny,allow     (이 라인을 주석으로 막는다)
      #    Deny from all        (이 라인을 주석으로 막는다)
      
      

    ###-----------------------------------------------


    XE 설정, Document Root가 d:/www 일 경우

    Alias /xe d:/www/xe <Directory "/xe"> Order allow,deny Allow from all

    ```
  • 다운로드 사이트에서 "xe.1.3.1.2.zip"를 다운로드 한다.

    • xe.1.3.1.2.zip 파일의 압축을 풀어 d:/www/xe 디렉토리에 복사한다.
    • d:/www/xe 폴더는 Apache HTTP Server에서 읽기, 쓰기 권한이 있어야 한다. 700px|다운로드

  • http://www.jopenbusiness.com/xe/로 접속하여 초기 설정을 한다.

    • 화면이 표시되지 않고 컨텐츠 인코딩 오류가 발생할 경우
      330 오류(net::ERR_CONTENT_DECODING_FAILED): 알 수 없는 오류
    • vi classes/display/DisplayHandler.class.php 에서 다음을 추가 한다.
      function printContent(&$oModule)                        //--- 함수에서
      $this->gz_enabled = false;                              //--- 이 라인을 추가 한다.
      if($this->gz_enabled) header("Content-Encoding: gzip"); //--- 이 라인 위에


  • "한국어"를 선택하고 "라이센스에 동의합니다"를 눌러 다음 진행을 합니다. 700px|언어 선택



  • 필수 설치 조건을 확인하고 "설치를 진행합니다"를 누른다. 700px|설치 조건 확인



  • 관리자 화면에서 "쉬운 설치"를 위해 사용할 FTP 접속 정보를 등록 한다.

    • 필요한 정보를 입력한 후 "FTP 접속 확인" 버튼을 눌러 설정 값이 정상적으로 입력 되었는지 확인 한다.
    • "무시" 버튼을 누르면 이 설정을 하지 않고 건너 뛰는데 향후 관리자 화면의 "Settings" 화면에서 설정할 수 있다. 700px|FTP 설정 확인

  • "mysql innodb"를 선택하고 "설치를 진행합니다"를 누른다. 700px|DB 선택



  • DB와 관리자 정보를 입력하고 "등록" 버튼을 누른다.

  • *mysql_innodb

  • **DB 호스트네밍 : localhost

  • **DB Port : 3306

  • **DB 아이디 : xe

  • **DB 비밀번호 : 암호를 입력할 것

  • **DB 데이터베이스 : xedb

  • **테이블 머릿말 : xe (하나의 서버에 여러개의 XE 설치시 구분자)

  • *관리자정보

  • **아이디 : admin

  • **비밀번호 : admin의 암호로 사용할 것을 입력할 것

  • **이름 : 관리자

  • **닉네임 : 관리자

  • **이메일 주소 : 관리자의 이메일 주소

  • *환경 설정

  • **rewrite mod 사용 : 선택

  • **time zone : +09:00 Korea Standard Time, Japan Standard Time, China Standard Time 700px|DB, 관리자 정보



  • 설치가 완료 되면 http://localhost/xe/?module=admin 으로 로그인 하여 관리자 설정을 한다.




설치 후 설정 확인

  • rewrite mod가 정상 동작하지 않을 경우
    • 오류 현상
      http://호스트/xe/?module=admin 으로 접속하면 페이지가 정상적으로 뜨나
      http://호스트/xe/admin 으로 접속할 경우 404 (웹 페이지를 찾을 수 없습니다) 오류가 발생 한다.
    • 확인 사항
      • Apache HTTP Server에 rewrite 모듈이 설치 되었는지 확인 한다.
      • '''Apache HTTP Server 설정 파일에서 AllowOverride를 None이 아니라 All로 변경 한다.'''
        
        '''AllowOverride All'''
        
      • Xpress Engine이 설치된 폴더에 .htaccess 파일이 있는지 확인 한다.
      • http://호스트/xe/?module=admin 으로 접속하여 "Setting" 메뉴에서 "rewrite mod 사용" 체크 되어 있는지 확인 한다.
  • "쉬운 설치"에서 폴더 생성 권한이 없다는 메시지가 나올 경우
    • 우측 상단의 "Settings" 메뉴을 선택 한다.
    • "설치된 XE의 FTP 경로 설정"에서 /var/www/xe/ 처럼 끝이 /로 끝이 나도록 등록 한다.


XE 환경 설정



XE 초기 설정

  • XE 관리자로 로그인 합니다.
  • XE 시스템의 기본 설정을 합니다.
    • "Settings -> 설정"에서 다음과 같이 설정 합니다.
      • 짧은 주소 사용 : 선택
      • Language : 한국어
      • 표준 시간대 : +09:00 Korea Standard Time, Japan Standard
      • 모바일 뷰 사용 : 선택
    • "Settings -> FTP 계정 정보 입력"에서 다음과 같이 설정 합니다.
      • 아이디 : FTP 아이디를 입력 하세요.
      • 비밀번호 : FTP 아이디에 해당하는 비밀번호를 입력 하세요.
      • FTP 서버 주소 : XE가 설치된 서버 주소를 입력 하세요.
      • FTP Port : 21
      • FTP Passive mode : 선택
      • 설치된 XE의 FTP 경로 설정 : XE가 설치된 절대 경로를 입력 하세요.
  • XE를 사용할 사용자를 등록 합니다.
    • "회원 관리 -> 회원 관리 -> 생성"에서 XE를 사용할 사용자를 생성 합니다.
    • 예) 아이디: user01, 소속 그룹: 정회원


  • XE에서 사용할 메뉴를 등록 합니다.
    • "사이트 설정 -> 메뉴 -> 생성"을 선택하여 메뉴을 생성 합니다.
      • 제목 : "사이트 메뉴"
  • XE에서 사용할 레이아웃을 등록 합니다.
    • "사이트 설정 -> 레이아웃 -> 다운로드 목록"에서 "XE 공식 사이트 레이아웃 (xe_official)"에 있는 "생성" 버튼을 선택 합니다.
      • 제목 : "XE 공식 사이트 레이아웃"
      • 홈 페이지 URL : XE의 홈 페이지 URL을 입력 한다. (예, http://www.jopenbusiness.com/xe/)
      • 상단 메뉴 : 위에서 생성한 "사이트 메뉴"를 선택 합니다.
  • "서비스 관리 -> 페이지 -> 생성"을 선택하여 home 페이지를 생성 합니다.
    • 모듈 이름 : home
    • 레이아웃 : "XE 공식 사이트 레이아웃 (xe_official)"
    • 모바일 뷰 사용 : 선택
    • 모바일 레이아웃 : "XE 공식 사이트 모바일 레이아웃 (default)"
  • 메뉴에 home 페이지를 추가 합니다.
    • "사이트 설정 -> 메뉴"에서 위에서 생성한 "사이트 메뉴"를 수정 합니다.
    • 메뉴 트리에서 "+" 버튼을 눌러 메뉴를 추가 합니다.
      • 메뉴명 : 홈
      • 연결 url : home
  • 설정에서 XE의 홈 페이지를 지정 합니다.
    • "Settings -> 설정"에서 시작 모듈을 home으로 선택 합니다.


기본 설치 프로그램

  • 모듈
    • SocialXE 클라이언트 모듈 ver. 1.0.6
    • SocialXE 서버 모듈 ver. 1.0.8
    • 게시판 EX ver. 0.5.9
    • nLucene 모듈 ver. 1.2
    • PXE 게시판 ver. 0.5.6
    • 자료실 - Resources ver. 1.1.1
    • 지식인XE ver. 1.1.2
    • Textyle ver. 1.3.1
      • 글감 모듈 ver. 1.0
    • Project XE ver. 1.0.2
      • IssueTracker ver. 1.1.0
      • WikiXE ver. 1.1.0
    • 주변 지도 모듈 ver. 0.2
    • NAVER Analytics ver. 0.2.1
    • 출석부 모듈 ver. 1.5.16
  • 애드온
    • 요약 책갈피 SNS Bookmarker ver. 1.1.2
    • QRCODE 애드온 ver. 0.2
    • 태그 연관글 출력(tag_relation) ver. 1.3
    • Facebook Social plugin Addon - Like button ver. 0.1
  • 위젯
    • Sitemap 위젯 ver. 0.1.0
    • PlannerXE123 (위젯 버전) ver. 3.3.0
    • 최근 글 위젯 (카테고리) ver. 0.1
    • NAVER Analytics Widget ver. 0.1
  • 에디터컴포넌트
    • 지도 글쓰기 도구(구글맵 사용) ver. 0.3.5
  • 단락에디터컴포넌트


  • 모듈 스킨
    • 문하우스 게시판스킨 ver. 3.0
  • 위젯 스킨
    • 플래쉬 회전하는 태그 위젯 SmallFont ver. 1.2
    • xeHome - 공지/웹진형 ver. 0.1
    • 문하우스 MH통합게시판위젯 ver. 2.0
    • 로그인 정보 출력 - XGENESIS Official Skin ver. 0.1.0
  • 위젯 스타일
    • Elkha - Gray Widget Style ver. 1.2.1
  • 레이아웃 스킨
    • 엑스돔 레이아웃 v2 ver. 2.5.2.4
    • Elkha - Sky2 ver. 1.4.5
    • Crom iXE 레이아웃 ver. 1.0.3
  • 에디터 스타일


SocialXE 설정

  • SocialXE에서 사용하기 위해 게시판을 생성 합니다.
    • "게시판 EX -> 게시판 EX 관리 -> 게시판 생성"에서 모듈 이름을 "SocialBoard"로 등록하고 게시판을 생성 합니다.
    • "게시판 EX -> 게시판 EX 관리 -> 게시판 목록"에서 SocialBoard의 수정 버튼을 선택 합니다.
      • 모든 권한 설정에서 "특정 그룹 사용자"를 선택하고 "관리그룹"을 체크 합니다.
    • http://localhost/xe/?mid=SocialBoard 로 접속해서 "쓰기" 버튼을 눌러 SocialXE를 위한 임의의 글을 등록 합니다.
      • 등록후 URL에서 문서 번호를 확인하고 기억 합니다. (예, document_srl=73)
  • SocialXE에서 사용하기 위해 페이지를 생성 합니다.
    • "제어판 -> 서비스 관리 -> 페이지 -> 생성"을 선택하여 페이지를 생성 합니다.
      • 모듈 이름: social
  • 생성된 페이지에 SocialXE 기능을 추가 합니다.
    • http://localhost/xe/?mid=social 페이지에서 "페이지 수정" 버튼을 선택 합니다.
    • "SocialXE 댓글"을 선택한 후 "추가" 버튼을 누릅니다.
      • 댓글이 등록될 문서번호: 게시판 등록시 생성한 문서의 번호를 여기에 입력 합니다.
      • 소셜 서비스에 등록될 제목: Social
      • 소셜 서비스에 등록될 주소: http://localhost/xe/?mid=social
      • 한번에 보여질 댓글 개수: 10


  • Naver Analytics 사이트에서API Key를 발급 받습니다.
  • "Settings -> 부가 기능 설정 -> Naver Analytics"에서 "API Key 정보"를 등록 합니다.
  • 처음 Naver Analytics를 적용할때, 데이터가 없어서 오류가 나면서 화면이 보이지 않을 경우
    • vi /var/www/html/xe/widgets/analytics_flash_counter/analytics_flash_counter.class.php
      //--- if 문을 추가하여 foreach문을 감싸 안아 줍니다.
      if ($response_obj != null) {
       foreach($response_obj as $key => $va
           $aXML_data[](.md) = 'id="'.preg_replace('/-/', '', $val->day->body).'" cnt="'.$val->visit_count->body.'"';
       }
      }

  • 참고 문헌

관리자 가이드



XE 폴더 구조

{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="25%" align="center" valign="middle" style="background-color:#eee;"|XE Core |width="75%"|

  • Classes
    • Context : /classes/context/Context.class.php
    • Object : /classes/object/Object.class.php : 데이터 전달을 위해 사용되는 base 클래스
    • MobuleObject : /classes/module/ModuleObject.class.php : 모듈의 base 클래스
    • ModuleHandler : /classes/module/ModuleHandler.class.php : 모듈을 실행하는 클래스
      • init() : Module 초기화
      • procModule() : Module 실행
      • displayContent($oModule) : Module 실행 결과 화면 반환
        if ($oModuleHandler->init()) {
        $oModule = &$oModuleHandler->procModule();
        $oModuleHandler->displayContent($oModule);
        }

        |- |align="center" valign="middle" style="background-color:#eee;"|모듈 |
  • Action의 기본 묶음을 표현하고, Data를 포함할 수 있는 최소 단위의 프로그램 조각
  • 폴더 : /modules/모듈/
    • conf/ : 모듈 설정 파일
    • lang/ : 모듈 언어 파일
    • queries/ : 모듈에서 사용하는 Query 파일
    • schemas/ : 모듈의 Schema 파일
    • skins/ : 모듈용 Skin 파일
    • tpl/ : 모듈용 Template 파일
    • 모듈.class.php : 모듈용 Class 파일
    • 모듈.model.php, 모듈.view.php, 모듈.controller.php : 모듈용 MVC 파일
    • 모듈.admin.model.php, 모듈.admin.view.php, 모듈.admin.controller.php : 모듈 Admin용 MVC 파일
      |- |align="center" valign="middle" style="background-color:#eee;"|애드온 |
  • 모듈의 제어나 결과의 변경이 가능한 추가 기능 구현
    • before_module_init, before_module_proc, after_module_proc, before_display_content
  • 폴더 : /addons/
    |- |align="center" valign="middle" style="background-color:#eee;"|위젯 |
  • 화면에 표시되는 작은 프로그램
  • 폴더 : /widgets/
    • conf/ : 위젯 설정 파일
    • queries/ : 위젯에서 사용하는 Query 파일
    • skins/ : 위젯용 Skin 파일
    • 위젯.class.php : 위젯 파일
      • conf/info.xml에 정의된 값 또는 의 attribute값을 받아 proc($args) 함수가 실행 된다.
  • 사용법
    |- |align="center" valign="middle" style="background-color:#eee;"|에디터컴포넌트 | |- |align="center" valign="middle" style="background-color:#eee;"|단락에디터컴포넌트 | |- |align="center" valign="middle" style="background-color:#eee;"|모듈 스킨 | |- |align="center" valign="middle" style="background-color:#eee;"|위젯 스킨 |
  • 폴더 : /widgets/skins/스킨_폴더(default)/
    • skin.xml : 위젯 스킨 정보를 저장
    • widget.html : 위젯 스킨 파일
    • css/widget.css : 위젯 스킨 파일에서 사용하는 CSS 파일
      |- |align="center" valign="middle" style="background-color:#eee;"|위젯 스타일 |
  • 위젯의 배경, 보더, 타이틀 등 위젯의 모양을 꾸며주는 위젯스타일
  • 폴더 : /widgetstyles/위젯스타일명/
    • widgetstyle.html : 위젯스타일의 템플릿 파일
    • skin.xml : 위젯스타일의 제목, 설명, 제작자, 추가변수에 대한 설정 파일
    • preview.gif : 위젯스타일 미리보기
      |- |align="center" valign="middle" style="background-color:#eee;"|레이아웃 스킨 |
  • 폴더 : /layouts/
    |- |align="center" valign="middle" style="background-color:#eee;"|에디터 스타일 | |}

JOSSO 적용


오류시 조치 사항

  • 330, ERR_CONTENT_DECODING_FAILED
    • gz 압축 전송 옵션을 끈다.
    • vi config/config.inc.php
      if(!defined('__OB_GZHANDLER_ENABLE__')) define('__OB_GZHANDLER_ENABLE__', 0);


개발자 가이드



위젯 만들기

  • 위 "XE 폴더 구조"에서 설명한 구조로 위젯을 만들어 서버에 올려 두면 바로 사용할 수 있습니다.
  • 참고 문헌

참고 문헌


공유하기