설치 가이드 · 8 min read · Oct 20, 2025

Ubuntu 20.04에 SuiteCRM 설치하는 방법

SuiteCRM은 SalesAgility에서 개발한 무료 오픈 소스 기업급 CRM 시스템입니다. 이는 SugarCRM 커뮤니티 에디션의 포크입니다. CRM 및 ERP 요구 사항을 갖춘 모든 비즈니스를 운영하는 데 필요한 모든 기능을 제공합니다. 이메일 마케팅, 소셜 미디어 통합, 마케팅 자동화, 내부 채팅 통합, 문서 저장, 알림, 작업 관리 등 다양한 기능을 제공합니다. 이 게시물에서는 Ubuntu 20.04에서 Nginx 및 Let’s Encrypt SSL로 SuiteCRM을 설치하는 방법을 보여줍니다.

필수 조건

  • Ubuntu 20.04를 실행하는 서버.
  • 서버 IP에 포인팅된 유효한 도메인 이름.
  • 서버에 구성된 루트 비밀번호.

시작하기

시작하기 전에 시스템 패키지를 최신 버전으로 업데이트해야 합니다. 다음 명령어를 사용하여 업데이트할 수 있습니다:

apt-get update -y

서버가 업데이트되면 다음 단계로 진행할 수 있습니다.

Nginx, MariaDB 및 PHP 설치

먼저, Nginx 웹 서버, MariaDB, PHP 및 기타 PHP 확장을 서버에 설치해야 합니다. 다음 명령어를 사용하여 모두 설치할 수 있습니다:

apt-get install nginx mariadb-server php7.4 php7.4-fpm php7.4-gd php7.4-opcache php7.4-mbstring php7.4-xml php7.4-json php7.4-zip php7.4-curl php7.4-imap php-mysql unzip -y

모든 패키지를 설치한 후, php.ini 파일을 편집하고 권장 설정을 변경합니다:

nano /etc/php/7.4/fpm/php.ini

다음 설정을 변경합니다:

post_max_size = 60M
upload_max_filesize = 60M
memory_limit = 256M
max_input_time = 60
max_execution_time = 5000
date.timezone = Asia/Kolkata

파일을 저장하고 닫은 후, 변경 사항을 적용하기 위해 PHP-FPM 서비스를 재시작합니다.

systemctl restart php7.4-fpm

이 시점에서 LEMP 서버가 서버에 설치되었습니다. 이제 다음 단계로 진행할 수 있습니다.

SuiteCRM용 데이터베이스 생성

SuiteCRM은 콘텐츠를 저장할 데이터베이스가 필요합니다. 먼저, 다음 명령어를 사용하여 MariaDB 셸에 로그인합니다:

mysql

로그인한 후, 다음 명령어를 사용하여 데이터베이스와 사용자를 생성합니다:

MariaDB [(none)]> CREATE DATABASE suitecrm;  
MariaDB [(none)]> GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrm'@'localhost' IDENTIFIED BY 'password';

다음으로, 변경 사항을 적용하기 위해 권한을 플러시해야 합니다.

MariaDB [(none)]> FLUSH PRIVILEGES;

다음으로, 다음 명령어를 사용하여 MariaDB 콘솔에서 종료합니다:

MariaDB [(none)]> EXIT;

이제 SuiteCRM을 위한 데이터베이스와 사용자가 준비되었습니다. 이제 다음 단계로 진행할 수 있습니다.

SuiteCRM 설치

먼저, SuiteCRM 공식 웹사이트로 가서 다음 명령어를 사용하여 SuiteCRM의 최신 버전을 다운로드합니다:

wget https://sourceforge.net/projects/suitecrm/files/SuiteCRM-7.11.19.zip

다운로드가 완료되면, 다음 명령어를 사용하여 다운로드한 파일의 압축을 풉니다:

unzip SuiteCRM-7.11.19.zip

다음으로, 추출된 디렉토리를 Nginx 루트 디렉토리로 이동합니다:

mv SuiteCRM-7.11.19 /var/www/html/suitecrm

다음으로, suitecrm 디렉토리에 적절한 권한과 소유권을 설정합니다:

chown -R www-data:www-data /var/www/html/suitecrm/  
chmod 755 -R /var/www/html/suitecrm/

작업이 완료되면 Nginx를 구성할 수 있습니다.

SuiteCRM 호스팅을 위한 Nginx 구성

다음으로, SuiteCRM을 인터넷에 호스팅하기 위해 Nginx 가상 호스트 구성 파일을 생성해야 합니다. 다음 명령어로 생성할 수 있습니다:

nano /etc/nginx/conf.d/suitecrm.conf

다음 줄을 추가합니다:

server {
   listen 80;
   server_name suitecrm.example.com;

   root /var/www/html/suitecrm;
   error_log /var/log/nginx/suitecrm.error;
   access_log /var/log/nginx/suitecrm.access;
   client_max_body_size 20M;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   location ~ \.php$ {
     include snippets/fastcgi-php.conf;
     fastcgi_pass unix:/run/php/php7.4-fpm.sock;
   }

   location ~* ^/index.php {
     # try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;

     fastcgi_buffer_size 128k;
     fastcgi_buffers 256 16k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }

    # Don't log favicon
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    # Don't log robots
    location = /robots.txt  {
        access_log off;
        log_not_found off;
    }

    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ \. {
        deny all;
        access_log off;
        log_not_found off;
    }

     # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

작업이 완료되면 파일을 저장하고 닫은 후, 다음 명령어를 사용하여 Nginx의 구문 오류를 확인합니다:

ginx -t

다음과 같은 출력을 받아야 합니다:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

다음으로, 변경 사항을 적용하기 위해 Nginx 서비스를 재시작합니다:

systemctl restart nginx

Nginx 서비스의 상태를 확인하려면 다음 명령어를 실행합니다:

systemctl status nginx

다음과 같은 출력을 받아야 합니다:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-22 10:16:45 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 18988 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19000 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19001 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 2.7M
     CGroup: /system.slice/nginx.service
             ??19001 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19002 nginx: worker process

May 22 10:16:45 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 22 10:16:45 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

이 시점에서 Nginx가 SuiteCRM을 제공하도록 구성되었습니다. 이제 SuiteCRM에 접근할 수 있습니다.

SuiteCRM 접근

이제 웹 브라우저를 열고 URL http://suitecrm.example.com을 사용하여 SuiteCRM에 접근합니다. 다음 페이지가 표시되어야 합니다:

라이센스 계약을 수락하고 다음 버튼을 클릭합니다. 다음 페이지가 표시되어야 합니다:

모든 필수 조건이 설치되었는지 확인한 후 다음 버튼을 클릭합니다. 다음 페이지가 표시되어야 합니다:

데이터베이스 이름, 사용자, 비밀번호, 관리자 사용자 이름, 비밀번호, SuiteCRM URL, 이메일 주소를 제공한 후 다음 버튼을 클릭합니다. 설치가 완료되면 다음 페이지가 표시되어야 합니다:

이제 다음 버튼을 클릭합니다. SuiteCRM 로그인 페이지가 표시되어야 합니다:

관리자 사용자 이름과 비밀번호를 제공하고 로그인 버튼을 클릭합니다. 다음 페이지에서 SuiteCRM 대시보드를 볼 수 있어야 합니다:

Let’s Encrypt로 SuiteCRM 보안 설정

다음으로, Let’s Encrypt SSL을 설치하고 관리하기 위해 Certbot 클라이언트 패키지를 설치해야 합니다.

먼저, 다음 명령어로 Certbot을 설치합니다:

apt-get install certbot python3-certbot-nginx -y

설치가 완료되면, 다음 명령어를 실행하여 웹사이트에 Let’s Encrypt SSL을 설치합니다:

certbot --nginx -d suitecrm.example.com

유효한 이메일 주소를 제공하고 서비스 약관에 동의하라는 메시지가 표시됩니다:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for suitecrm.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/suitecrm.conf

다음으로, HTTP 트래픽을 HTTPS로 리디렉션할지 여부를 선택하라는 메시지가 표시됩니다:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

2를 입력하고 Enter를 눌러 설치를 완료합니다. 다음과 같은 출력을 받아야 합니다:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/suitecrm.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://suitecrm.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=suitecrm.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/suitecrm.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/suitecrm.example.com/privkey.pem
   Your cert will expire on 2021-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

이제 SuiteCRM이 Let’s Encrypt SSL로 보안 설정되었습니다. URL https://suitecrm.example.com을 사용하여 안전하게 접근할 수 있습니다.

결론

지금까지입니다. Ubuntu 20.04에서 Nginx 및 Let’s Encrypt SSL로 SuiteCRM을 성공적으로 설치했습니다. 이제 조직에서 SuiteCRM을 구현할 수 있습니다. 더 많은 정보는 SuiteCRM 사용자 매뉴얼을 방문하세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.