Vtiger
둘러보기로 가기
검색하러 가기
오픈소스로 제공되는, On-Premise 방식의 CRM인 vTiger를 소개한다.
- Mobile Module : Mobile Module for vtiger CRM 5.1.0
- 다운로드 : http://vtiger.com/index.php?option=com_content&task=view&id=30&Itemid=57
- 라이센스 : Mozilla Public License (MPL 1.1), GNU Public License (GPL)
- 플랫폼 : Windows, Unix, Linux, Mac OS
목차
설치 가이드
아래 설치 가이드는 Windows Server 2003을 기준으로 작성한 것 입니다. 설치 환경이 틀릴 경우에는 별도의 주석을 달아 주세요.
설치전 사전 준비 사항
- MySql Tools for 5.0 설치
- phpMyAdmin 설치 (옵션 사항으로 필요시 설치)
- PHP에 GD 확장팩 설치
- PHP에 GetText 확장팩 설치
- PHP에 IMAP 확장팩 설치
- PHP에 mysql, mysqli 확장팩 설치
vtiger 설치
- %APACHE_HOME%/conf/httpd.conf 파일에 vtiger 관련 정보를 추가하고 Apache를 재기동 한다.
- Windows Vista의 경우 관리자로 실행하여 수정한다.
<Directory /> Options FollowSymLinks AllowOverride None # Order deny,allow (이 라인을 주석으로 막는다) # Deny from all (이 라인을 주석으로 막는다) </Directory> ###----------------------------------------------- ### vtiger 설정, Document Root가 d:/www 일 경우 Alias /vtiger d:/www/vtiger <Directory "/vtiger"> Order allow,deny Allow from all </Directory>
- 다운로드 사이트에서 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" 버튼을 선택하여 설정을 시작한다.
- 라이선스를 확인하고 "Next" 버튼을 누른다.
- 설치 환경을 확인하고 "Next" 버튼을 누른다.
- 추가로 설치할 모듈을 선택하고 "Next" 버튼을 누른다.
- 접속 정보를 설정하고 "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
- URL : http://www.jopenbusiness.com/vtiger
- Currency Name : Korea (South), Won (\)
- User Configuration
- Password : xxxxxxxx
- Email : info@jopenbusiness.com
-
- Host Name에 localhost를 사용하여 "Unable to connect to database Server. Invalid mySQL Connection Parameters specified" 오류가 발생할 경우, 127.0.0.1 을 사용 한다.
- DB 접속 등이 정상적으로 되었는지 메시지를 확인하고 "Next" 버튼을 누른다.
- 설치를 위해 "Next" 버튼을 누른 후 약 4분간 기다린다.
- 최종 설치 완료 정보를 확인하고 "Finish" 버튼을 눌러 설치를 종료한다.
- 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] 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]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] 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 다운로드
관리자 가이드
적용 라이센스
- vTiger는 Mozilla Public License 1.1, GNU GPL License 중 하나의 라이센스를 취할 수 있는 듀얼 라이센스 이다.
- 라이센스 공통 요소 설명
- 상용 가능 : 상용 소프트웨어로 판매 가능
- 결합 소스 공개 의무 : 결합된 소스를 공개해야 함
- 특허 허용 : 특허와 같이 배포 가능
- 버그 패치 의무 : 소프트웨어의 버그를 패치해야 하는 의무
- 라이센스 전파 의무 : 수정 배포된 소프트웨어가 원 소프트웨어의 라이센스를 따라야 함
- 2008년 10월 1일 ~ 2008년 10월 15일, Version 0.0.2
라이센스 | 적용 소프트웨어 | 수정소스 공개 |
결합소스 공개 |
특허 | 버그 패치 | 라이센스 전파 |
라이센스 양립성 |
vtiger Public License 1.1, 원본, MPL 1.1 기반 |
|
공개 | 의무 없음 | 무상, LEGAL | 의무 없음 | 의무 없음 | |
GNU LGPL License |
|
공개 | 의무 없음 | 묵시적 무상 | 의무 없음 | 전파 | |
GNU GPL License |
|
공개 | 공개 | 묵시적 무상 | 의무 없음 | 전파 | |
BSD license | 의무 없음 | 의무 없음 | 규정 없음 | 의무 없음 | 의무 없음 | ||
PHP License version 3.0, 원본 | 의무 없음 | 무상 아님 | 의무 없음 | 의무 없음 | |||
Apache License | 의무 없음 | 의무 없음 | 무상 | 의무 없음 | 의무 없음 | ||
SugarCRM Public License 1.1.2, 원본, MPL 1.1 기반 | 공개 | 의무 없음 | 무상, LEGAL | 의무 없음 | 의무 없음 | ||
MIT Style license | 의무 없음 | 무상 | 의무 없음 | 의무 없음 | |||
Mozilla Public License 1.1 | 공개 | 의무 없음 | 무상, LEGAL | 의무 없음 | 의무 없음 |
- 참조 : 오픈소스 라이센스 분류
- 참조 : 오픈 소스 라이센스에 대한 요약
- 라이센스에 대한 판단은 본인의 책임(확인) 하에 적용하여야 한다.
로그 생성
- $VTIGER_HOME/log4php.properties에서 다음과 같은 설정을 변경한다.
- moce : DEBUG, INFO, FATAL
log4php.rootLogger=INFO,A1
JOSSO 적용
- Session 정보
$_SESSION["authenticated_user_id"] $_SESSION["app_unique_key"]
- index.php
$use_current_login = false; $action=="Authenticate" && $module=="Users" $_REQUEST['action'] == 'Login', 'Logout' session_destroy();
- modules/Users/Authenticate.php
//--- 사용자 아이디와 암호로 로그인 한다. $focus = new Users(); $focus->column_fields["user_name"] = to_html($_REQUEST['user_name']); $user_password = vtlib_purify($_REQUEST['user_password']); $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
<form name='theForm' method="post" action='index.php'> <input type='text' name='module' value='Users'></input> <input type='text' name='action' value='Authenticate'></input> <input type='text' name='return_module' value='Users'></input> <input type='text' name='return_action' value='Login'></input> <input type='text' name='user_name' value='아이디'></input> <input type='text' name='user_password' value='암호'></input> <input type='text' name='login_theme' value='softed'></input> <input type='text' name='login_language' value='ko-KR'></input> <input type='submit' name='btn' value=' 로그인 '></input> </form>
vTiger 아키텍처
vTiger의 소스를 분석하여 vTiger 아키텍처를 이해한다.
프로그램 입력
- $_REQUEST, $_POST, $_GET
- PHPSESSID
- module, action, record, lang_crm
- module=$module&action=$action&record=$record&lang_crm=$lang_crm
- category
- file
- Cookie
- setcookie('ck_login_id_vtiger', $_SESSION['authenticated_user_id']);
- setcookie('ck_login_theme_vtiger', $_SESSION['vtiger_authenticated_user_theme']);
- setcookie('ck_login_language_vtiger', $_SESSION['authenticated_user_language']);
프로그램 상태
- $_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');
- <link rel='stylesheet' type='text/css' href='themes/$theme/style.css'>
- 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
<?xml version="1.0" encoding="UTF-8"?> <languagepack> <name>Korean</name> <version>5.2.2</version> <creationDate>2011-05-01 09:00:00</creationDate> <author>pnuskgh</author> <prefix>ko_kr</prefix> <lockfor>0</lockfor> <encoding>UTF-8</encoding> <license>MPL1.1</license> </languagepack>
- vi manifest.xml
<?xml version="1.0"?> <module> <type>language</type> <name>Korean</name> <label>Korean</label> <prefix>ko_kr</prefix> <version>5.2.2</version> <encoding>UTF-8</encoding> <creationDate>2011-05-01 09:00:00</creationDate> <author>pnuskgh</author> <license>MPL1.1</license> <dependencies> <vtiger_version>5.2.2</vtiger_version> <vtiger_max_version>5.*</vtiger_max_version> </dependencies> </module>
- 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인 vTiger에서 한글화 프로젝트를 시작 한다. 오픈소스 프로젝트를 진행하는 것은 처음인데 향후 오픈소스 프로젝트를 진행하려는 이에게 참고가 될 수 있도록 그 진행 사항을 기록으로 남긴다. 아래 정리되는 사항은 오픈소스 vTiger 한글화 프로젝트를 개설하였을 때 vtiger에서 기본으로 제공하는 서비스 이다.
- 사용자/개발자 커뮤니티 서비스
- vTiger 한글화 프로젝트 페이지 : vtiger에서 제공하는 공식 프로젝트 페이지
- vTiger 한글화 프로젝트 홈페이지 : 프로젝트의 홈페이지로 SSH2로 접속하여 관리가 가능함
- SSH 서버 : korealang.forge.vtiger.com
- 프로젝트 디렉토리 : /home/groups/korealang
- korealang-commits@lists.forge.vtiger.com
- List : http://lists.forge.vtiger.com/cgi-bin/mailman/listinfo/korealang-commits
- Admin : http://lists.forge.vtiger.com/cgi-bin/mailman/admin/korealang-commits
- 게시판
- 뉴스
- 문서
- 다운로드
- 익명 저장 공간 : ftp://korealang.forge.vtiger.com/pub/korealang/
- 개발자를 위한 커뮤니티 서비스
- 하위 프로젝트 : 각 담당자별로 작업을 할당할 수 있음
- Subversion : 프로젝트의 소스 관리
- svn checkout svn://svn.forge.vtiger.com/svnroot/korealang
- svn checkout svn+ssh://developername@svn.forge.vtiger.com/svnroot/korealang
- 둘러보기
- 참고 문헌 : TortoiseSVN을 사용한 SVN Checkout/Update/Commit
한글팩 구조
- 디렉토리 구조
- 아래 파일은 모두 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/ 파일 생성
문제 해결
참고 문헌
- vTiger 한글화 프로젝트
- 윈도우용 설치 가이드
- vtiger CRM v5.x User and Administration Manual
- 요즘 하는 일!? 오픈소스 제품 수정 : vTiger의 PDF 변환기의 한글 문제
- https://sites.google.com/a/ibinfo.co.kr/ibinfo/tip/opeunsoseusugarcrmguchughagi
지원 업체
SuiteCRM을 사용한 영업관리, 고객관리는 아래 담당자에게 연락하여 주시면, 빠르고 친절하게 전문적인 답변을 드리겠습니다.
영업 문의 | sales@obcon.biz | 010-4667-1106 | 영업 대표 |
기술 문의 | tech@obcon.biz | 구축/컨설팅 담당 | |
고객 지원 | support@obcon.biz | 고객 지원 담당 |