웹사이트 검색

CentOS 7에서 Nginx와 함께 SuiteCRM을 설치하는 방법


이 페이지에서

  1. 우리가 할 일\n
  2. 전제 조건
  3. 1단계 - Nginx 웹 서버 설치
  4. 2단계 - PHP-FPM 설치 및 구성
  5. 3단계 - MariaDB 설치 및 구성
  6. 4단계 - SuiteCRM 다운로드 및 구성
    1. SuiteCRM 다운로드
    2. 방화벽 구성\n
    3. 새 SSL Letsencrypt 생성
    4. SuiteCRM Nginx 가상 호스트 구성\n

    SuiteCRM은 PHP 기반의 오픈 소스 CRM(Customer Relationship Management) 소프트웨어입니다. 이것은 인기 있는 CRM 소프트웨어인 SugarCRM의 포크이며 후자의 팀이 무료 버전의 개발을 중단하기로 결정한 후 더 인기를 얻었습니다. SuiteCRM은 BOSSIE 2015 및 2016에서 최고의 오픈 소스 CRM 소프트웨어로 지명되었습니다.

    이 자습서에서는 Nginx를 웹 서버로 사용하여 SuiteCRM을 설치하고 구성하는 방법을 보여줍니다. CRM 소프트웨어는 HTTPS가 활성화된 LEMP 스택에서 실행됩니다. 이를 위해 CentOS 7을 기본 OS로 사용하는 것이 좋습니다.

    우리가 할 일

    1. Nginx 웹 서버 설치
    2. PHP-FPM 설치 및 구성
    3. MariaDB 설치 및 구성
    4. SuiteCRM 다운로드 및 구성
    5. 웹 설치 프로그램을 통해 SuiteCRM 설치\n
    6. 최종 구성

    전제 조건

    • CentOS 7 서버
    • 루트 권한\n

    1단계 - Nginx 웹 서버 설치

    서버를 연결하고 SuiteCRM용 기본 스택을 설치하기 위해 수행해야 하는 첫 번째 단계입니다. 다음 명령을 사용하여 SSH를 통해 서버에 연결합니다.

    ssh 

    루트 사용자로 연결한 후 시스템에 타사 리포지토리를 설치해야 합니다. 특히 Nginx를 설치하기 전에 시스템에 EPEL(Extra Package for Enterprise Linux) 리포지토리를 설치해야 합니다.

    다음과 같은 방법으로 yum 명령을 사용하여 EPEL 저장소를 설치합니다.

    yum -y install epel-release

    이제 시스템에 Nginx 웹 서버를 설치할 수 있습니다.

    yum -y install nginx

    설치가 완료되면 서비스를 시작하고 아래와 같이 systemctl 명령을 사용하여 부팅 시 자동으로 실행되도록 합니다.

    systemctl start nginx
    systemctl enable nginx

    이제 Nginx 웹 서버가 설치되었으며 기본적으로 포트 80에서 실행됩니다. netstat 또는 curl 명령을 사용하여 확인하십시오.

    netstat -plntu
    curl -I localhost

    포트 80이 LISTEN 상태이고 curl 명령이 출력에 200 HTTP 상태 코드를 제공하는지 확인하십시오.

    2단계 - PHP-FPM 설치 및 구성

    이 단계에서는 CentOS 7 서버에 PHP-FPM 버전 7을 설치하고 구성합니다. 기본적으로 centOS는 새로운 PHP 버전 7에 대한 리포지토리를 제공하지 않습니다. 따라서 PHP-FPM 7 설치를 위해 다른 리포지토리를 추가해야 합니다.

    rpm 명령을 사용하여 시스템에 새로운 PHP 7 저장소 webtatic을 추가합니다.

    sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    이제 아래와 같이 yum 명령을 사용하여 PHP 7 패키지 및 확장을 설치합니다.

    sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml

    설치가 완료되면 vim을 사용하여 기본 php.ini 구성 파일을 편집합니다.

    vim /etc/php.ini

    SuiteCRM 설치를 위한 최대 업로드 파일 크기를 100MB로 변경합니다. 최소한 SuiteCRM에는 6MB 이상이 필요합니다.

    upload_max_filesize = 100M

    다음 CGI 줄의 주석을 제거하고 값을 0으로 변경합니다.

    cgi.fix_pathinfo=0

    세션 경로 구성의 경우 해당 행의 주석을 제거하고 아래와 같이 경로를 /var/lib/session으로 변경합니다.

    session.save_path = "/var/lib/php/session"

    그게 다야. 변경 사항을 저장하고 vim을 종료합니다.

    이제 세션 경로에 대한 새 디렉터리를 만들고 디렉터리의 소유권 권한을 nginx 사용자 및 그룹으로 변경합니다.

    mkdir -p /var/lib/php/session
    chown -R nginx:nginx /var/lib/php/session

    다음으로 php-fpm 구성을 편집해야 합니다. 이를 위해 /etc/php-fpm.d 디렉토리로 이동하여 www.conf 구성 파일을 편집합니다.

    cd /etc/php-fpm.d/
    vim www.conf

    이제 사용자 및 그룹 행을 nginx로 변경하십시오.

    user = nginx
    group = nginx

    시스템 포트를 사용하는 대신 PHP-FPM이 유닉스 소켓 파일에서 실행됩니다.

    청취 라인 변경:

    listen = /var/run/php-fpm/php-fpm.sock

    Unix 소켓 파일에 대한 권한과 소켓 파일의 소유권을 아래와 같이 설정합니다.

    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660

    그게 다야. 변경 사항을 저장하고 편집기를 종료합니다.

    이제 PHP-FPM 서비스를 시작하고 부팅 시 자동으로 시작되도록 추가하십시오.

    systemctl start php-fpm
    systemctl enable php-fpm

    이것으로 PHP-FPM이 설치되고 소켓 파일이 실행됩니다.

    netstat 명령을 사용하여 이를 확인할 수 있습니다.

    netstat -pl | grep php

    php-fpm.sock 파일이 보이는지 확인하십시오.

    3단계 - MariaDB 설치 및 구성

    이 단계에서는 MariaDB를 설치한 다음 시작하고 시스템 부팅 시마다 실행되도록 활성화합니다. 마지막으로 SuiteCRM 설치를 위한 새 데이터베이스와 사용자를 생성합니다.

    다음 yum 명령을 사용하여 CentOS 리포지토리에서 mariadb를 설치합니다.

    yum install -y mariadb mariadb-server

    MariaDB 서비스를 시작하고 아래 명령을 사용하여 부팅 시간을 시작하도록 활성화합니다.

    systemctl start mariadb
    systemctl enable mariadb

    이제 MariaDB가 설치되어 실행 중입니다. 이제 mysql_secure_installation 명령을 사용하여 루트 비밀번호를 구성해야 합니다.

    mysql_secure_installation

    구성에 대한 메시지가 표시되면 Y를 입력하고 Enter 키를 누릅니다.

    Set root password? [Y/n] Y
    New password:
    Re-enter new password:

    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] Y
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y

    그래서 MariaDB 루트 비밀번호가 구성되었습니다.

    다음으로 SuiteCRM 설치를 위해 새 데이터베이스와 새 사용자를 생성해야 합니다. 이를 위해 사용자 루트와 암호를 사용하여 MySQL 셸에 로그인합니다.

    mysql -u root -p

    suitecrm_db라는 새 데이터베이스와 암호 hakase-labs123을 사용하여 새 사용자 crmadmin을 만듭니다. 이 모든 작업은 아래의 mysql 쿼리를 사용하여 수행할 수 있습니다.

    CREATE DATABASE suitecrm_db;
    CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
    GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
    FLUSH PRIVILEGES;

    이렇게 SuiteCRM 설치를 위한 데이터베이스 구성이 완료되었습니다.

    4단계 - SuiteCRM 다운로드 및 구성

    이 단계에서는 SuiteCRM 설치를 위한 몇 가지 작업을 수행합니다. SuiteCRM 소스 코드를 다운로드하고, Firewalld를 구성하고, 새 SSL Letsencrypt를 생성하고, SuiteCRM용 nginx 가상 호스트를 구성합니다. 시작하겠습니다.

    SuiteCRM 다운로드

    아직 설치하지 않은 경우 아래 yum 명령을 사용하여 시스템에 git을 설치합니다.

    yum -y install git

    이제 /opt 디렉토리로 이동하여 아래와 같이 git 명령을 사용하여 SuiteCRM 코드를 다운로드합니다.

    cd /opt/
    git clone https://github.com/salesagility/SuiteCRM.git suitecrm

    그런 다음 캐시 디렉토리를 만들고 suitecrm 디렉토리의 일부 파일 및 디렉토리에 대한 권한을 변경한 다음 모든 suitecrm 코드의 소유자를 nginx 사용자 및 그룹으로 변경합니다.

    cd /opt/suitecrm
    mkdir -p /opt/suitecrm/cache
    chmod -R 775 cache custom modules themes data upload config_override.php
    chown nginx:nginx -R /opt/suitecrm

    따라서 suiteCRM 코드는 서버의 /opt/suitecrm/ 디렉토리에 다운로드되었습니다.

    방화벽 구성

    서버에서 실행 중인 Firewalld가 없는 경우 다음 명령을 사용하여 설치하십시오.

    yum -y install firewalld

    서비스를 시작하고 부팅 시 실행되도록 활성화합니다.

    systemctl start firewalld
    systemctl enable firewalld

    다음으로 새 포트 HTTP 및 HTTPS를 열어야 합니다. SuiteCRM 액세스에 사용됩니다. 이를 위해 다음 방화벽 cmd 명령을 실행합니다.

    firewall-cmd --add-service=http --permanent
    firewall-cmd --add-service=https --permanent

    이제 다음 명령을 사용하여 방화벽 규칙을 다시 로드하십시오.

    firewall-cmd --reload

    이제 새로운 HTTP 및 HTTPS 포트가 Firewalld에 추가되었습니다. 세부 구성을 보려면 아래 명령을 실행하십시오.

    firewall-cmd --list-all

    새 SSL Letsencrypt 생성

    이 자습서에서는 SuiteCRM 액세스에 SSL을 사용합니다. 그리고 이를 위해 letsencrypt의 무료 SSL 인증서를 사용할 것입니다.

    새 SSL letsencrypt 인증서를 생성하려면 먼저 시스템에 letsencrypt 명령 도구 certbot을 설치해야 합니다. CentOS 저장소에서 사용할 수 있습니다. 다음 yum 명령을 사용하여 certbot을 설치합니다.

    yum -y install certbot

    certbot 설치가 완료되면 suiteCRM 도메인 이름 suitecrm.hakase-labs.co에 대한 SSL 인증서 파일을 생성합니다.

    아래 명령을 실행하여 SSL 인증서 파일을 생성하십시오.

    certbot certonly --standalone -d suitecrm.hakase-labs.co

    알림 갱신을 위한 이메일 주소를 묻는 메시지가 표시됩니다. 이메일을 입력하고 Enter 키를 눌러 계속하십시오.

    Letsencrypt TOS의 경우 A를 입력하여 동의하고 Enter 키를 다시 누릅니다. 공유 이메일 주소 쿼리에 N을 입력하고 Enter 키를 누릅니다.

    인증서 생성이 완료되면 아래와 같은 결과가 나옵니다.

    새 인증서 파일은 /etc/letsencrypt/live/domain.com 디렉터리에 생성됩니다.

    SuiteCRM Nginx 가상 호스트 구성

    Nginx 구성 디렉터리 /etc/nginx로 이동하고 Vim 편집기를 사용하여 conf.d 디렉터리에 새 파일 suitecrm.conf 파일을 만듭니다.

    cd /etc/nginx/
    vim conf.d/suitecrm.conf

    거기에 SuiteCRM Nginx 가상 호스트를 아래에 붙여넣습니다.


    # Server Config - hakase-labs
    server {
        listen 80;
        server_name suitecrm.hakase-labs.co;

        # Automatically redirect to HTTPS
        return 301 https://$host$request_uri;
    }

    # Nginx SSL for SuiteCRM
    server {

        server_name suitecrm.hakase-labs.co;

        # Enable http2
        listen 443 http2 ssl;

        # SSL Config
        ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

        client_max_body_size 50M;

        index index.php index.html index.htm;
        root /opt/suitecrm;

        location / {
            root /opt/suitecrm;
            index index.php index.html index.htm;
        }
     
        error_page 500 502 503 504 /50x.html;
        error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;

        location = /50x.html {
            root /usr/share/nginx/html;
        }

        ## Images and static content is treated different
        location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
            access_log off;
            expires max;
            root /opt/suitecrm;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~ /\.ht {
            deny all;
        }

    }

    그게 다야. 변경 사항을 저장하고 Vim을 종료합니다.

    이제 nginx 구성을 테스트하고 오류가 없는지 확인하십시오. 완료되면 서비스를 다시 시작하십시오.

    nginx -t
    systemctl restart nginx

    이로써 SuiteCRM 설치를 위한 nginx 구성이 완료되었습니다.

    5단계 - SuiteCRM 웹 설치 프로그램

    웹 브라우저를 열고 SuiteCRM 도메인 이름(suitecrm.hakase-labs.co)을 방문하십시오.

    HTTPS 연결 install.php로 리디렉션되고 GNU AFFERO 라이선스에 대한 페이지가 표시됩니다. 동의합니다 상자를 체크하고 다음을 클릭합니다.

    시스템 환경 페이지에서 모든 결과가 정상인지 확인하십시오.

    계속하려면 다음을 클릭하십시오.

    다음은 관리자 및 데이터베이스 구성입니다. dbname, dbuser 및 dbpassword와 같은 데이터베이스 정보를 입력합니다. 관리자 구성의 경우 사용자 이름, 이메일 및 비밀번호를 입력하십시오.

    하단으로 스크롤하고 다음을 클릭하여 SuiteCRM 설치를 계속합니다.

    잠시 기다리면 설치가 완료되고 아래와 같이 로그인 페이지로 리디렉션됩니다.

    이 페이지에서 관리자 사용자와 암호를 입력한 다음 로그인 버튼을 누릅니다.

    그러면 아래와 같이 SuiteCRM 대시보드가 표시됩니다.

    그래서 SuiteCRM이 설치되었습니다.

    6단계 - 최종 구성

    이 마지막 단계에서는 cronjob에 구성을 추가해야 합니다.

    기본적으로 nginx 사용자 및 그룹으로 새로운 cron을 생성해야 합니다.

    sudo crontab -e -u nginx

    그리고 다음 구성을 붙여넣습니다.

    *    *    *    *    *     cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1

    저장 및 종료.

    그게 다야. CentOS 7에서 Nginx 웹 서버로 SuiteCRM 설치가 완료되었습니다.

    참조

    • https://suitecrm.com/wiki/index.php/Installation