- 설치 가이드
- 설치전 사전 준비 사항
- vtiger 설치
- 설치 후 오류 수정
- CentOS에 vTiger 6.1.0 설치
- 관리자 가이드
- 적용 라이센스
- 로그 생성
- JOSSO 적용
- vTiger 아키텍처
- 프로그램 입력
- 프로그램 상태
- 프로그램 출력
- 테마
- 다국어 지원
- 보안/권한
- vTiger 5.2.2 한글팩
- vTiger 한글팩
- vTiger 한글화 프로젝트
- 한글팩 구조
- 한글팩 관련 설정
- vTiger 6.1.0 한글화
- 문제 해결
- 참고 문헌
- 지원 업체
오픈소스로 제공되는, On-Premise 방식의 CRM인 vTiger를 소개한다.
홈페이지 : http://vtiger.com/, http://sourceforge.net/projects/vtigercrm/, http://forge.vtiger.com/
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을 기준으로 작성한 것 입니다. 설치 환경이 틀릴 경우에는 별도의 주석을 달아 주세요.
설치전 사전 준비 사항
{{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" 버튼을 선택하여 설정을 시작한다.
화면이 표시되지 않을 경우에는 vtiger가 디렉토리가 ReadOnly로 설정되어 있는지 확인하여 ReadOnly를 제거한 후 Apache HTTP Server를 재기동 한다.
라이선스를 확인하고 "Next" 버튼을 누른다.
설치 환경을 확인하고 "Next" 버튼을 누른다.
붉은 색 메시지가 표시될 경우 PHP 라이브러리를 설치 또는 php.ini 파일에서 설정을 확인 합니다.
추가로 설치할 모듈을 선택하고 "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
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](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
freetag (BSD, LGPL)
[[Graph]] / Image_Graph (For Linux)
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)
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"|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 아키텍처를 이해한다.
프로그램 입력
$_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');
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.phpmodules/모듈명/language/ko_kr.lang.php
Language 정보가 저장된 테이블
vtiger_language, vtiger_language_seq
vTiger 한글팩
vTiger 한글화 프로젝트
구축형 오픈소스 CRM인 [http://www.vtiger.com/ vTiger]에서 한글화 프로젝트를 시작 한다. 오픈소스 프로젝트를 진행하는 것은 처음인데 향후 오픈소스 프로젝트를 진행하려는 이에게 참고가 될 수 있도록 그 진행 사항을 기록으로 남긴다. 아래 정리되는 사항은 오픈소스 vTiger 한글화 프로젝트를 개설하였을 때 vtiger에서 기본으로 제공하는 서비스 이다.
사용자/개발자 커뮤니티 서비스
vTiger 한글화 프로젝트 페이지 : vtiger에서 제공하는 공식 프로젝트 페이지
vTiger 한글화 프로젝트 홈페이지 : 프로젝트의 홈페이지로 SSH2로 접속하여 관리가 가능함
SSH 서버 : korealang.forge.vtiger.com
프로젝트 디렉토리 : /home/groups/korealang
개발자를 위한 커뮤니티 서비스
하위 프로젝트 : 각 담당자별로 작업을 할당할 수 있음
Subversion : 프로젝트의 소스 관리
svn checkout svn://svn.forge.vtiger.com/svnroot/korealang
svn checkout svn+ssh://developername@svn.forge.vtiger.com/svnroot/korealang
한글팩 구조
디렉토리 구조
'''아래 파일은 모두 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의 PDF 변환기의 한글 문제
https://sites.google.com/a/ibinfo.co.kr/ibinfo/tip/opeunsoseusugarcrmguchughagi
지원 업체
{{지원업체}}
[[Category:CRM|Category:CRM]]
[[Category:Cloud|Category:Cloud]]
분류: WebSite