오픈소스로 제공되는, On-Premise 방식의 CRM인 vTiger를 소개한다.


설치 가이드


아래 설치 가이드는 Windows Server 2003을 기준으로 작성한 것 입니다. 설치 환경이 틀릴 경우에는 별도의 주석을 달아 주세요.


설치전 사전 준비 사항

{{wamp 준비}}


vtiger 설치

{{Apache 접속 설정|vtiger}}

  • 다운로드 사이트에서 vtiger CRM 5.1.0(vtigercrm-5.1.0.tar.gz)을 다운로드 한다.

    • 다운로드한 파일의 압축을 풀어 "d:/OpenBiz/31_application/vtiger" 로 복사합니다.
  • $PHP_HOME/php.ini 파일에서 다음과 같이 설정되어 있는지 확인한다.

 safe_mode = Off
 display_errors = On
 file_uploads = On
 register_globals = Off
 max_execution_time = 600
 output_buffering = On 또는 output_buffering = 4096
 memory_limit = 64M
 error_reporting = E_ALL & ~E_NOTICE
 allow_call_time_pass_reference = On
 log_errors = Off
 short_open_tag= On
  • http://localhost/vtiger/에 화면에서 "Install" 버튼을 선택하여 설정을 시작한다.
    설치 시작|700px

    • 화면이 표시되지 않을 경우에는 vtiger가 디렉토리가 ReadOnly로 설정되어 있는지 확인하여 ReadOnly를 제거한 후 Apache HTTP Server를 재기동 한다.
  • 라이선스를 확인하고 "Next" 버튼을 누른다.
    라이선스 확인|700px


  • 설치 환경을 확인하고 "Next" 버튼을 누른다.

    • 붉은 색 메시지가 표시될 경우 PHP 라이브러리를 설치 또는 php.ini 파일에서 설정을 확인 합니다.
      설치 환경 확인|700px
  • 추가로 설치할 모듈을 선택하고 "Next" 버튼을 누른다.
    추가 모듈|700px


  • 접속 정보를 설정하고 "Next" 버튼을 누른다.

    • Database Information
      • Database Type : MySQL
      • Host Name : www.jopenbusiness.com
      • User Name : vtiger
      • Password : xxxxxxxx
      • Database Name : vtigerdb
      • Create Database : 선택
      • Root username : root
      • Root Password : xxxxxxxx
      • UTF-8 Support : 선택
    • CRM Configuration
    • User Configuration
    • Host Name에 localhost를 사용하여 "Unable to connect to database Server. Invalid mySQL Connection Parameters specified" 오류가 발생할 경우, 127.0.0.1 을 사용 한다.
  • DB 접속 등이 정상적으로 되었는지 메시지를 확인하고 "Next" 버튼을 누른다.


  • 설치를 위해 "Next" 버튼을 누른 후 약 4분간 기다린다.
    설치 시작|700px


  • 최종 설치 완료 정보를 확인하고 "Finish" 버튼을 눌러 설치를 종료한다.
    설치 완료|700px


  • http://localhost/vtiger 에 admin / xxxxxxxx 또는 standarduser / xxxxxxxx로 접속하여 사용 한다.


설치 후 오류 수정

  • MySQL의 레코드 등록 시 "Record you are trying to access is not found. Go Back." 오류가 발생할 경우에 다음과 같이 조치 한다.
    • 상세 에러 메시지
 09/22/08 07:48:40,515 [1096](1096.md) INFO VT - PearDatabase ->ADODB error  
 Query Failed:insert into vtiger_account(accountid, accountname, phone, 
 website, fax, tickersymbol, otherphone, parentid, email1, employees, email2, 
 ownership, rating, industry, siccode, account_type, 
   annualrevenue, emailoptout, notify_owner)
 values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)::->
 [1366](1366.md)Incorrect integer value: '' for column 'parentid' at row 1
  • 원인 : PHP 버전 4.x와 달리 PHP 버전 5.x에서는 숫자 항목에 빈 문자열을 등록할 때 오류가 발생한다.

  • 조치 1 : 숫자 항목에는 반드시 숫자를 등록하여야 하여 사용한다.

  • 조치 2 : 프로그램을 수정할 수 없거나 패키지 제품을 사용할 경우에는, MySQL의 $MYSQL_HOME/my.ini 설정 파일의 sql-mode에서 NO_AUTO_CREATE_USER 항목을 제거하면, PHP 프로그램을 수정하지 않더라도 오류가 발생하지 않는다. 단, MySQL은 재기동 하여야 한다.

  • 참고 문헌

  • vTiger로 로그인한 후 Settings -> System Details 메뉴에서 오류 발생시 다음과 같이 조치 한다.

    • 상세 에러 메시지
 XPath error in XPath.class.php:1823 In importFromString(): 
 XML error in given string on line 59 column 47. Reason:Invalid character
 
 Notice: Undefined index: /phpsysinfo[1](1.md) in
   D:\OpenBiz\31_application\vtiger\modules\System\includes\XPath.class.php on 
 line 4023 XPath error in XPath.class.php:5903
   The supplied xPath '/phpsysinfo/Vitals/Hostname'
 does not *uniquely* describe a node in the xml document.
   Not unique xpath-query, matched 0-times.
 이하 생략

CentOS에 vTiger 6.1.0 설치


vTiger 6.1.0 다운로드

{| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" |- | style="background-color: rgb(241, 241, 241);" | cd install
wget http://jaist.dl.sourceforge.net/project/vtigercrm/vtiger CRM 6.1.0/Core Product/vtigercrm6.1.0.tar.gz
wget 
http://jaist.dl.sourceforge.net/project/vtigercrm/vtiger%20CRM%206.1.0/Core%20Product/vtigercrm6.1.0.tar.gz
|}


관리자 가이드



적용 라이센스

  • vTiger는 [[Mozilla Public License 1.1]], [GNU GPL License](GNU General Public License version 3.0.md) 중 하나의 라이센스를 취할 수 있는 듀얼 라이센스 이다.

  • 라이센스 공통 요소 설명

    • 상용 가능 : 상용 소프트웨어로 판매 가능
    • 결합 소스 공개 의무 : 결합된 소스를 공개해야 함
    • 특허 허용 : 특허와 같이 배포 가능
    • 버그 패치 의무 : 소프트웨어의 버그를 패치해야 하는 의무
    • 라이센스 전파 의무 : 수정 배포된 소프트웨어가 원 소프트웨어의 라이센스를 따라야 함
  • 2008년 10월 1일 ~ 2008년 10월 15일, Version 0.0.2
    {| cellspacing="1" cellpadding="1" border="1" width="100%" |- |width="20%" bgcolor="cyan" align="center" valign="middle"|라이센스 |width="32%" bgcolor="cyan" align="center" valign="middle"|적용 소프트웨어 |width="8%" bgcolor="cyan" align="center" valign="middle"|수정소스
    공개 |width="8%" bgcolor="cyan" align="center" valign="middle"|결합소스
    공개 |width="8%" bgcolor="cyan" align="center" valign="middle"|특허 |width="8%" bgcolor="cyan" align="center" valign="middle"|버그 패치 |width="8%" bgcolor="cyan" align="center" valign="middle"|라이센스
    전파 |width="8%" bgcolor="cyan" align="center" valign="middle"|라이센스
    양립성 |- |align="center" valign="middle"|vtiger Public License 1.1, [http://www.vtiger.kr/vtiger/LICENSE_AGREEMENT.txt 원본], MPL 1.1 기반 |align="left" valign="middle"|

  • vtiger CRM, [http://sourceforge.net/projects/vtigercrm/ 홈] : CRM
    |align="center" valign="middle"|공개 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|무상, LEGAL |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |- |align="center" valign="middle"|[GNU LGPL License](GNU Lesser General Public License 3.0.md) |align="left" valign="middle"|

  • nusoap, [http://sourceforge.net/projects/nusoap/ 홈]: SOAP Toolkit for PHP

  • PHPMailer, [http://sourceforge.net/projects/phpmailer/ 홈]

  • FCKeditor, [http://sourceforge.net/projects/fckeditor/ 홈]

  • Smarty Template Engine for PHP, [http://www.smarty.net/ 홈]

  • freetag (BSD, LGPL)

  • Image_Canvas

  • [[Graph]] / Image_Graph (For Linux)

  • log4php, [http://sourceforge.net/projects/log4php/ 홈]

  • jscalendar

  • tcpdf, [http://sourceforge.net/projects/tcpdf/ 홈] : PHP class for PDF
    |align="center" valign="middle"|공개 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|묵시적 무상 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|전파 |align="center" valign="middle"|  |- |align="center" valign="middle"|[GNU GPL License](GNU General Public License version 3.0.md) |align="left" valign="middle"|

  • [MySQL database](MySQL 5.0.51.md), [http://www.mysql.com/ 홈]

  • [[gdwin32]] / gd 2.0.28(for Linux)

  • phpSysinfo, [http://sourceforge.net/projects/phpsysinfo/ 홈]

  • MagpieRSS, [http://sourceforge.net/projects/magpierss/ 홈]

  • Mailfeed

  • NOCC scripts, [http://sourceforge.net/projects/nocc/ 홈]
    |align="center" valign="middle"|공개 |align="center" valign="middle"|공개 |align="center" valign="middle"|묵시적 무상 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|전파 |align="center" valign="middle"|  |- |align="center" valign="middle"|BSD license |align="left" valign="middle"|

  • ADOdb, [http://sourceforge.net/projects/adodb/ 홈]

  • freetag (BSD, LGPL)
    |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|규정 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |- |align="center" valign="middle"|[PHP License version 3.0](PHP License version 3.0.md), [http://www.opensource.org/licenses/php.php 원본] |align="left" valign="middle"|

  • [PHP](PHP 5.2.5.md)

  • Image_Color
    |align="center" valign="middle"|  |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|무상 아님 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |- |align="center" valign="middle"|[Apache License](Apache Software License 2.0.md) |align="left" valign="middle"|

  • [Apache Web server](Apache HTTP Server 2.2.8.md)
    |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|무상 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |- |align="center" valign="middle"|SugarCRM Public License 1.1.2, [http://www.vtiger.kr/vtiger/license.txt 원본], MPL 1.1 기반 |align="left" valign="middle"|

  • SugarCRM
    |align="center" valign="middle"|공개 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|무상, LEGAL |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |- |align="center" valign="middle"|[MIT Style license](MIT license.md) |align="left" valign="middle"|

  • script.oculo.us scripts
    |align="center" valign="middle"|  |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|무상 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |- |align="center" valign="middle"|Mozilla Public License 1.1 |align="left" valign="middle"|  |align="center" valign="middle"|공개 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|무상, LEGAL |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|의무 없음 |align="center" valign="middle"|  |}

  • 참조 : 오픈소스 라이센스 분류

  • 참조 : 오픈 소스 라이센스에 대한 요약

  • 라이센스에 대한 판단은 본인의 책임(확인) 하에 적용하여야 한다.


로그 생성

  • $VTIGER_HOME/log4php.properties에서 다음과 같은 설정을 변경한다.
    • moce : DEBUG, INFO, FATAL
 log4php.rootLogger=INFO,A1

JOSSO 적용

  • Session 정보
 $_SESSION["authenticated_user_id"]("authenticated_user_id".md)
 $_SESSION["app_unique_key"]("app_unique_key".md)
  • index.php
 $use_current_login = false;
 $action=="Authenticate" && $module=="Users"
 $_REQUEST['action']('action'.md) == 'Login', 'Logout'
 
 session_destroy();
  • modules/Users/Authenticate.php
 //--- 사용자 아이디와 암호로 로그인 한다.
 $focus = new Users();
 $focus->column_fields["user_name"] = to_html($_REQUEST['user_name']('user_name'.md));
 $user_password = vtlib_purify($_REQUEST['user_password']('user_password'.md));
 $focus->'''load_user'''($user_password);
 
 if($focus->is_authenticated()) {
    //--- 로그인 되었을 경우 처리를 한다.
 } else {
    //--- 로그인 되지 않았을 경우 처리를 한다.
 }
  • modules/Users/Users.php
 //--- 사용자 아이디와 암호로 로그인을 하는 모듈에서
 //--- 사용자만 있으면 암호에 상관없이 로그인이 되도록 수정 한다.
 function doLogin($user_password) {
     //--- JOSSO: $query = "SELECT * from $this->table_name where user_name=? AND user_password=?";
     //--- JOSSO: $result = $this->db->requirePsSingleResult($query, array($usr_name, $encrypted_password), false);
     $query = "SELECT * from $this->table_name where user_name=?";
     $result = $this->db->requirePsSingleResult($query, array($usr_name), false);
 }
  • 로그인용 form
 

vTiger 아키텍처


vTiger의 소스를 분석하여 vTiger 아키텍처를 이해한다.


프로그램 입력


프로그램 상태

  • $_SESSION

    • authenticated_user_id
    • authenticated_user_language
    • vtiger_authenticated_user_theme
    • app_unique_key
    • internal_mailer
    • lastpage
    • administrator_error
  • $_SERVER

    • REQUEST_URI
    • argv

프로그램 출력

  • require_once('phpversionfail.php') : PHP 버전이 5.0 이하일 경우
  • require_once('include/utils/utils.php') : 공통 모듈
    • require_once('include/database/PearDatabase.php');
    • require_once('include/ComboUtil.php'); //new
    • require_once('include/utils/ListViewUtils.php');
    • require_once('include/utils/EditViewUtils.php');
    • require_once('include/utils/DetailViewUtils.php');
    • require_once('include/utils/CommonUtils.php');
    • require_once('include/utils/InventoryUtils.php');
    • require_once('include/utils/DeleteUtils.php');
    • require_once('include/utils/SearchUtils.php');
    • require_once('include/FormValidationUtil.php');
    • require_once("./themes/$file/config.php");
    • require_once("modules/$module/$module.php");
  • '''require_once('config.inc.php') : 설정 파일'''
  • '''require_once('config_override.php') : 설정 파일'''
  • require_once('include/logging.php') : 로깅
  • require_once('modules/Users/Users.php') : 사용자 정보
  • include ('include/utils/export.php') : action == "Export"일 경우
  • include ('include/utils/ExportAjax.php') : action == "ExportAjax"일 경우
  • require_once('user_privileges/audit_trail.php') : Audit
  • require_once("modules/$currentModule/Activity.php") : module == "Calendar"일 경우
  • '''require_once("modules/$currentModule/$currentModule.php") : 설정 파일'''
  • include('themes/'.$theme.'/header.php') : 테마
  • include('themes/'.$theme.'/loginheader.php') : 테마
  • require_once('include/utils/UserInfoUtil.php') : 보안
    • require_once('include/database/PearDatabase.php');
    • require_once('include/database/Postgres8.php');
    • require_once('include/utils/utils.php');
    • require_once('include/utils/GetUserGroups.php');
    • include('config.php');
      • include('config.inc.php');
  • include($currentModuleFile)
  • include('themes/'.$theme.'/footer.php') : 테마

테마

  • $_SESSION'vtiger_authenticated_user_theme'

  • @include("themes/$theme/language/$current_language.lang.php");

  • require_once("./themes/$file/config.php");

  • @include("./themes/$theme/config.php");

  • include('themes/'.$theme.'/header.php');

  • include('themes/'.$theme.'/loginheader.php');

  • include('themes/'.$theme.'/footer.php');


다국어 지원

  • @include("themes/$theme/language/$current_language.lang.php");
  • @include("include/language/$language.lang.php");
  • require("include/language/$default_language.lang.php");
  • @include("modules/$module/language/$language.lang.php");
  • require("modules/$module/language/$default_language.lang.php");

보안/권한


vTiger 5.2.2 한글팩


  • vi config.inc.php
 $default_language = 'ko_kr';
  • vTiger522_Lang_kokr.zip 구조
    • vi packdata.xml
 
 
   Korean
   5.2.2
   2011-05-01 09:00:00
   pnuskgh
   ko_kr
   0
   UTF-8
   MPL1.1
 
  • vi manifest.xml
 
 
   language
   Korean
   
   ko_kr
   5.2.2
   UTF-8
   2011-05-01 09:00:00
   pnuskgh
   MPL1.1
   
     5.2.2
     5.*
   
 
  • include/
    :js/ko_kr.lang.js :language/ko_kr.lang.php

  • modules/모듈명/language/ko_kr.lang.php

  • Language 정보가 저장된 테이블

    • vtiger_language, vtiger_language_seq

vTiger 한글팩



vTiger 한글화 프로젝트

구축형 오픈소스 CRM인 [http://www.vtiger.com/ vTiger]에서 한글화 프로젝트를 시작 한다. 오픈소스 프로젝트를 진행하는 것은 처음인데 향후 오픈소스 프로젝트를 진행하려는 이에게 참고가 될 수 있도록 그 진행 사항을 기록으로 남긴다. 아래 정리되는 사항은 오픈소스 vTiger 한글화 프로젝트를 개설하였을 때 vtiger에서 기본으로 제공하는 서비스 이다.


한글팩 구조

  • 디렉토리 구조

    • '''아래 파일은 모두 UTF-8로 인코딩되어 있으므로 문자셋을 맞추어 편집 한다.'''

    • $default_language은 "en_us"이므로 해당 파일을 복사하여 "ko_kr" 파일을 작성한다.

    • $VTIGER_HOME/themes/$theme/language/$current_language.lang.php (ko_kr.lang.php 파일 작성)

    • $VTIGER_HOME/include/language/$language.lang.php (ko_kr.lang.php 파일 작성)

    • $VTIGER_HOME/include/language/$default_language.lang.php (en_us.lang.php)

    • $VTIGER_HOME/modules/$module/language/$language.lang.php (ko_kr.lang.php 파일 작성)

    • $VTIGER_HOME/modules/$module/language/$default_language.lang.php (en_us.lang.php)

    • ADOdb (BSD license)

      • $VTIGER_HOME/adodb/lang/adodb-ko.inc.php
    • jscalendar (GNU GPL License)

      • $VTIGER_HOME/jscalendar/lang/calendar-ko.js (이미 있어서 생략)
      • $VTIGER_HOME/jscalendar/lang/calendar-ko-utf8.js (이미 있어서 생략)
    • FCKeditor (GNU GPL License)

      • $VTIGER_HOME/include/fckeditor/editor/plugins/placeholder/lang/ko.js
    • tcpdf (GNU LGPL License)

      • $VTIGER_HOME/include/tcpdf/config/lang/kor.php
      • $VTIGER_HOME/include/tcpdf/doc/com.tecnick.tcpdf/_tcpdf_config_lang_kor_php.html
    • PHPMailer (GUN GPL License)

      • $VTIGER_HOME/cron/language/phpmailer.lang-ko.php
    • $VTIGER_HOME/include/js/ko_kr.lang.js


한글팩 관련 설정

  • $VTIGER_HOME/config.inc.php

    • $default_charset = 'UTF-8'; <-- ISO-8859-1
    • $languages = Array('ko_kr'=>'Korea','en_us'=>'US English',);

vTiger 6.1.0 한글화


languages/ko_KR/ 파일 생성


문제 해결



참고 문헌



지원 업체


{{지원업체}} [[Category:CRM|Category:CRM]]
[[Category:Cloud|Category:Cloud]]
분류: WebSite

최종 수정일: 2022-10-24 19:17:28

이전글 :
다음글 :
상단 menu
arrow_back_ios
arrow_forward_ios