[SuiteCRM] [기술지원] Debug 방법

SuiteCRM 사용시 오류가 발생할 경우, 확인할 수 있는 방법을 소개 합니다.
SuiteCRM 설정
“관리 > 시스템 설정” 메뉴에서 다음을 설정 합니다.
  • 오류의 스택 추적 표시 : 체크 – 오류가 발생할 경우 브라우저 화면에 표시 합니다.
  • 개발자 모드 : 체크 – 파일을 수정할 경우, 캐시를 사용하지 않고 바로 적용 됩니다.
  • 로그 레벨 : Error – suitecrm.log 파일에 Error 레벨 이상의 로그를 저장 합니다.
Nginx 로그 확인

#— 오류 로그 확인
tail -f /var/log/nginx/error.log

#— 접속 로그 확인
tail -f /var/log/nginx/access.log

SuiteCRM 로그 확인

cd  /usr/share/nginx/html/suitecrm                             #— SuiteCRM이 설치된 폴더로 이동 합니다.
tail  -f  /usr/share/nginx/html/suitecrm/*.log

로그 파일에 로그를 남기려면 PHP 파일에서 다음 명령어를 사용 합니다.
  • $GLOBALS[‘log’]->error(‘에러 로그’);
  • $GLOBALS[‘log’]->debug(‘디버그로그’);
  • $GLOBALS[‘log’]->info(‘정보성로그’);
2017.11.15 ~ 2017.11.15, ver 0.01

[SuiteCRM] [기술지원] client intended to send too large body

첨부 파일 등을 업로드할 때, Nginx의 오류 로그 파일에 “client intended to send too large body” 오류가 발생하면 서비스를 위해 설정한 첨부 파일 용량보다 큰 파일을 업로드 하려고 해서 오류가 발생한 것 입니다. 다음과 같이 조치를 하세요.
첨부 파일 최대 용량 지정

vi  /etc/php.ini
upload_max_filesize = 20M
post_max_size = 20M

vi  /etc/nginx/nginx.conf
client_max_body_size 20M;

#— 서비스 재기동
systemctl  stop  nginx.service
systemctl  stop  php-fpm.service

systemctl  start  php-fpm.service
systemctl  start  nginx.service

2017.11.15 ~ 2017.11.15, ver 0.01

413 Request Entity Too Large 오류

“413 Request Entity Too Large” 오류는 파일 등을 업로드할 때 사이즈 제한에 걸려 발생 합니다.
아래와 같이 작업하여 문제를 해결 합니다.

vi  /etc/nginx/nginx.conf
http {
client_max_body_size  20M;                            #— 20MB로 크기를 변경 합니다.
}

vi  /etc/php.ini
[PHP] upload_max_filesize = 20M                                 #— 20MB로 크기를 변경 합니다.
post_max_size = 20M                                       #— 20MB로 크기를 변경 합니다.

systemctl  stop  nginx.service
systemctl  stop  php-fpm.service
systemctl  start  php-fpm.service
systemctl  start  nginx.service

2017.10.30 ~ 2017.10.30, ver 0.01

[기술지원] 이메일 발송 테스트 오류

 

 

SuiteCRM에 이메일 계정을 등록할 때, 발송 테스트를 합니다. 이 때 여러가지 오류가 발생할 수 있습니다. 보통은 메일 서버의 권한 설정 등으로 조치가 가능하지만 그래도 계속 오류가 발생하면 Linux Command Line에서 “이메일 발송 테스트“를 진행 합니다.
만일 이메일 발송 테스트가 정상인데도 불구하고 발송 테스트 오류가 발생하면 SELinux 설정을 확인 하세요.
SELinux 설정

#— SELinux 설정 확인
getsebool httpd_can_sendmail                            #— 설정값이 on 이어야 합니다.
getsebool httpd_can_network_connect                   #— 설정값이 on 이어야 합니다.
#— 이메일 발송을 위한 SELinux 설정
setsebool -P httpd_can_sendmail 1
setsebool -P httpd_can_network_connect 1

2017.11.20 ~ 2017.11.20, ver 0.01

[기술지원] crontab -e -u nginx 등록시 오류

 

 

SuiteCRM을 설치한 후 스케쥴러를 정상 동작하도록 설정하려면 crontab을 설정하여야 합니다.
오류 메시지

[root@demo html]# crontab -e -u nginx
no crontab for nginx – using an empty one
crontab: installing new crontab
“/tmp/crontab.wdqUAj”:1: bad hour
errors in crontab file, can’t install.
Do you want to retry the same edit? n
crontab: edits left in /tmp/crontab.wdqUAj


발생 원인
nginx 사용자가 linux로 로그인할 수 있도록 허용되어 있지 않아 발생하는 문제 입니다.
해결 방안
두가지 방법인 있는데 첫번째 방법은 nginx 사용자로 Linux로 로그인할 수 있도록 설정하는 방법이며 두번째 방법은 root 사용자로 crontab을 등록하고 crontab이 실행될 때 nginx 사용자 권한으로 실행되도록 하는 방법 입니다. 여기서는 첫번째 방법을 설명합니다.
vi  /etc/passwd
    nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin          #— 이 라인을 삭제
    nginx:x:996:994:Nginx web server:/var/lib/nginx:/bin/bash              #— 이 라인을 추가 
2017.11.20 ~ 2017.11.20, ver 0.01

[기술지원] 이메일 발송 테스트

 

 

SuiteCRM의 이메일 발송을 Linux Commnad Line에서 테스트할 수 있습니다.
SuiteCRM의 최상위 폴더에 emailTest.php 파일을 생성 합니다.
php  emailTest.php 명령을 실행하여 이메일 발송을 테스트 합니다.
emailTest.php

<?php
require_once ‘include/phpmailer/class.phpmailer.php’;
require_once ‘include/phpmailer/class.smtp.php’;
 
$mail = new PHPMailer;
 
$mail->SMTPDebug=14;
$mail->Debugoutput=’html’;
$mail->isSMTP();
$mail->Host = ‘smtp.gmail.com’;                                     //— Email Server
$mail->SMTPAuth = true;                                               //— true. SMTP 인증을 사용함
$mail->Username = ‘~@gmail.com’;                                 //— Email Server 로그인 아이디
$mail->Password = ‘~’;                                                //— Email Server 로그인 비밀번호
$mail->SMTPSecure = ‘tls’;                                            //— TLS, SSL 사용 여부
$mail->Port = 587;                                                     //— Port. SMTP (25), TLS (587)
 
$mail->From = ‘~@gmail.com’;                                      //— 보낸사람 이메일 주소
$mail->FromName = ‘OBCon Test’;                                  //— 보낸사람 이름
$mail->addReplyTo(‘~@gmail.com’, ‘OBCon Test’);               //— 회신 받을 사람의 이메일 주소와 이름
$mail->addAddress(‘~@jopenbusiness.com’, ‘Consult’);          //— 받는사람 이메일 주소와 이름
//$mail->addCC(‘cc@example.com’);                               //— 참조
//$mail->addBCC(‘bcc@example.com’);                            //— 숨은 참조
 
$mail->WordWrap = 50;
//$mail->addAttachment(‘/var/tmp/file.tar.gz’);                    //— 첨부 파일
//$mail->addAttachment(‘/tmp/image.jpg’, ‘new.jpg’);            //— 첨부 파일
$mail->isHTML(true);
 
$mail->Subject = ‘OBCon Test Email’;                              //— 이메일 제목
$mail->Body    = ‘This is the HTML message body <b>in bold!</b>’;          //— 이메일 본문 (html)
$mail->AltBody = ‘This is the body in plain text for non-HTML mail clients’;   //— 이메일 본문 (text)
 
if(!$mail->send()) {
    echo ‘Message could not be sent.’;
    echo ‘Mailer Error: ‘ . $mail->ErrorInfo;
} else {
    echo ‘Message has been sent’;
}
?>

 

 

2017.11.20 ~ 2017.11.20, ver 0.01