웹사이트 검색

Debian 11에 Monica Personal Relationship Manager를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 11(불스아이)
  • 데비안 10(버스터)

이 페이지에서

  1. 전제 조건
  2. Nginx 웹 서버 설치
  3. MariaDB 서버 설치
  4. PHP-FPM 8.1 설치 및 구성
  5. MariaDB 데이터베이스 및 사용자 설정
  6. 작성기 설치
  7. Node.js 및 Yarn 설치
  8. Monica CRM 설치
  9. Nginx 서버 블록 설정
  10. 마무리
  11. 결론

Monica CRM은 PHP로 작성된 무료 오픈 소스 CRM(Customer Relationship Manager)입니다. Monica CRM은 개인 이벤트, 활동, 작업 정보, 연락처, 저널, 메모 등을 추적하는 데 도움이 됩니다.

Monica CRM은 연락처 관리, 연락처 간의 관계, 미리 알림, 활동 및 작업 관리, 기본 저널링, 데이터 가져오기 및 내보내기, 문서 및 사진과 같은 미디어 파일 업로드 등과 같은 많은 기능을 제공합니다. Docker를 통해, 서버(VPS)에 수동으로 설치하거나 PaaS(Platform as a Service)를 사용하여 여러 가지 방법으로 설치할 수 있습니다.

이 가이드에서는 Debian 11 서버에 Personal Relationship Manager Monica CRM을 설치하는 방법을 설명합니다. 또한 LEMP 스택(Nginx, MariaDB, PHP-FPM)을 설치 및 구성하고, Composer를 통해 PHP 종속성을 설치하고, Node.js 및 Yarn을 사용하여 정적 자산을 설치 및 컴파일합니다.

전제 조건

이 자습서가 작동하려면 데비안 11 서버 하나가 필요하고 루트 또는 관리자 권한으로 루트가 아닌 사용자를 구성해야 합니다. 또한 프로덕션에 배포하려는 경우 Debian 서버 IP 주소를 가리키는 도메인 이름이 필요합니다. 또한 데비안 서버 프로덕션에서 방화벽을 켜는 것이 좋습니다.

Nginx 웹 서버 설치

Monica CRM은 주로 PHP로 작성된 웹 애플리케이션입니다. Monica CRM을 설치하려면 Apache2, Nginx 또는 Caddy 웹 서버와 같은 웹 서버를 사용할 수 있습니다.

이 가이드에서는 Nginx 웹 서버에서 Monica CRM을 실행합니다. 이제 Nginx 패키지를 데비안 서버에 설치합니다.

패키지 설치를 시작하기 전에 다음 apt 명령을 실행하여 Debian 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

이제 아래의 apt 명령을 통해 Nginx 패키지를 설치합니다. 설치를 확인하라는 메시지가 표시되면 Y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo apt install nginx

Nginx가 설치되면 nginx 서비스를 확인하여 아래의 systemctl 명령을 통해 실행 중인지 확인합니다.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

이제 nginx 서비스가 활성화되고 시스템 부팅 시 자동으로 실행되는 것을 볼 수 있습니다. 그리고 Nginx 서비스의 상태가 현재 실행 중입니다.

MariaDB 서버 설치

Monica CRM은 설치를 위해 MySQL/MariaDB를 지원합니다. 이제 MariaDB를 데비안 서버에 설치합니다. 또한 mysql_secure_installation 스크립트를 통해 MariaDB 서버의 배포를 보호합니다.

아래의 apt 명령을 통해 MariaDB 서버를 설치합니다. 설치를 확인하라는 메시지가 표시되면 Y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo apt install mariadb-server

MariaDB가 설치된 경우 MariaDB 서비스를 확인하고 서비스가 실행 중인지 확인합니다. 다음 systemctl 명령을 실행합니다.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

MariaDB 서버가 활성화되고 시스템 부팅 시 자동으로 실행되는 것을 볼 수 있습니다. 그리고 MariaDB 서비스의 현재 상태가 실행 중입니다.

다음으로 MariaDB 패키지에서 제공하는 mysql_secure_installation 스크립트를 통해 MariaDB 서버 배포를 보호합니다.

다음 명령을 실행하여 MariaDB 배포 보안을 시작합니다.

sudo mysql_secure_installation

여러 MariaDB 구성에 대해 묻는 메시지가 표시됩니다.

  • 인증을 unix_socket으로 변경하시겠습니까? n을 입력합니다.\n
  • MariaDB 루트 암호를 변경하시겠습니까? y를 입력하여 확인하고 MariaDB 서버의 새 비밀번호를 입력하고 비밀번호를 반복하십시오.\n
  • 원격 루트 로그인을 비활성화하시겠습니까? y를 입력하여 확인 - 루트 사용자는 원격으로 연결할 수 없습니다.익명 사용자를 제거하시겠습니까? y를 입력하여 확인하십시오.\n
  • 기본 데이터베이스 테스트를 제거하시겠습니까? y를 입력하여 테스트 데이터베이스를 확인하고 제거합니다.\n
  • 마지막으로 테이블 권한을 다시 로드하고 새 변경 사항을 적용하려면 y를 입력합니다.\n

이제 MariaDB 서버가 설치되고 보호됩니다.

PHP-FPM 8.1 설치 및 구성

Monica CRM은 PHP 기반 웹 애플리케이션이므로 Debian 서버에 PHP 패키지를 설치해야 합니다. Monica CRM의 현재 버전에는 최소한 PHP v8.1 이상이 필요합니다.

Debian 11 시스템의 경우 타사 리포지토리를 통해 PHP 8.1 패키지를 설치합니다. 이제 sury.org 리포지토리를 통해 PHP-FPM 8.1을 설치하고 Monica CRM 요구 사항에 따라 PHP 설치를 구성합니다.

다음 명령을 실행하여 PHP 8.1 리포지토리를 Debian 서버에 추가합니다.

curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

이제 PHP 8.1용 새 리포지토리가 추가되고 패키지 인덱스가 자동으로 새로 고쳐지고 업데이트되는 것을 볼 수 있습니다.

다음으로 아래의 apt 명령을 통해 PHP-FPM 8.1 패키지를 설치합니다.

sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-common php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-zip php8.1-intl php8.1-bcmath php8.1-gd php8.1-gmp php8.1-redis

Y를 입력하여 설치를 확인하고 ENTER를 눌러 계속 진행합니다.

PHP 8.1이 설치되면 nano 편집기 명령을 사용하여 구성 파일 /etc/php/8.1/fpm/php.ini를 편집합니다.

sudo nano /etc/php/8.1/fpm/php.ini

다음 설정을 사용하여 기본 PHP 구성을 변경합니다.

date.timezone = Europe/Paris
max_execution_time = 130
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128M

파일을 저장하고 완료되면 편집기를 닫습니다.

다음으로 PHP-FPM 8.1 서비스를 다시 시작하여 아래의 systemctl 명령을 통해 새 변경 사항을 적용합니다.

sudo systemctl restart php8.1-fpm

마지막으로 다음 systemctl 명령을 실행하여 PHP-FPM 8.1 서비스를 확인하고 서비스가 활성화되어 실행 중인지 확인합니다.

sudo systemctl is-enabled php8.1-fpm
sudo systemctl status php8.1-fpm

PHP-FPM 8.1이 활성화되고 시스템 시작 시 자동으로 실행되는 것을 볼 수 있습니다. 그리고 현재 PHP-FPM 8.1 서비스 상태입니다.

이제 LEMP 스택이 설치 및 구성되었습니다. 다음으로 Monica CRM용 새 데이터베이스 및 사용자 생성을 시작합니다.

MariaDB 데이터베이스 및 사용자 설정

Monica CRM 설치를 위해 MariaDB 데이터베이스 및 사용자를 설정하려면 MariaDB 셸에 로그인해야 합니다.

아래의 mysql 명령을 통해 MariaDB 셸에 로그인합니다.

sudo mysql -u root -p

다음 쿼리를 실행하여 Monica CRM에 대한 새 데이터베이스 및 사용자를 만듭니다. 이 가이드에서는 MariaDB 사용자 [email 로 새 데이터베이스 monicacrm_db를 만듭니다. 또한 반드시 새 비밀번호로 비밀번호를 변경하시기 바랍니다.

CREATE DATABASE monicacrm_db;
CREATE USER ;
GRANT ALL ON monicacrm_db.* TO 'monica'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

그런 다음 다음 쿼리를 실행하여 MariaDB 사용자[email 의 권한을 확인합니다.

SHOW GRANTS FOR ;
quit

그러면 MariaDB 사용자[email 가 Monica CRM 데이터베이스 monicacrm_db에 액세스할 수 있음을 알 수 있습니다.

작곡가 설치

MariaDB 데이터베이스 및 사용자가 구성되면 이제 Monica CRM에 대한 PHP 종속성을 설치하는 데 사용할 Composer를 설치합니다.

아래의 한 줄 명령을 통해 Composer를 설치합니다. 이 명령은 Composer용 설치 프로그램 스크립트를 다운로드하고 실행합니다. 그런 다음 Composer를 /usr/bin/composer에 설치합니다.

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

Composer가 설치되면 다음 작곡가 명령을 사용하여 확인합니다. Composer의 상세 버전과 Composer 사용 방법에 대한 도움말 페이지가 표시되어야 합니다.

sudo -u www-data composer -v

Node.js 및 Yarn 설치

Composer를 설치한 후 이제 Node.js와 Yarn을 설치합니다. 두 패키지 모두 Monica CRM용 정적 파일을 컴파일하는 데 사용됩니다. 그리고 Monica CRM의 현재 버전에는 최소한 Node.js v16이 필요했습니다.

기본 Debian 리포지토리는 Node.js v12를 제공하므로 타사 리포지토리 Nodesource를 통해 최신 버전의 Node.js를 설치합니다.

다음 명령을 실행하여 Node.js Nodesource 리포지토리를 추가합니다. 이 예에서는 Node.js v16을 설치합니다.

curl -fsSL https://deb.nodesource.com/setup_16.x | bash -

이제 Nodesource 저장소가 데비안 시스템에 추가되고 패키지 색인이 새로 고쳐지는 것을 볼 수 있습니다.

그런 다음 다음 명령을 실행하여 Yarn 패키지 리포지토리를 시스템에 추가합니다.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

이제 Debian 패키지 색인을 업데이트하고 새로 고칩니다. 그런 다음 다음 apt 명령을 통해 Node.js 및 Yarn을 설치합니다.

sudo apt update
sudo apt install nodejs yarn

y를 입력하여 설치를 확인하고 ENTER를 눌러 확인하고 진행합니다.

Node.js와 Yarn이 설치된 후 다음 명령을 실행하여 두 애플리케이션의 바이너리 파일을 확인합니다.

which node
which yarn

마지막으로 다음 명령을 사용하여 Node.js 및 Yarn 버전을 확인합니다. 출력에 설치된 Node.js 및 Yarn 버전이 표시됩니다.

node --version
yarn --version

이 시점에서 Monica CRM에 대한 패키지 종속성이 설치됩니다. 다음으로 소스 코드를 다운로드하고 Composer를 통해 패키지 종속성을 설치한 다음 Node.js 및 Yarn을 사용하여 정적 파일을 컴파일하여 Monica CRM 설치를 시작합니다.

모니카 CRM 설치

이제 Monica CRM 설치를 시작합니다. 소스 코드를 다운로드하고, 올바른 권한 및 소유권을 설정하고, Composer를 통해 PHP 종속성을 설치하고, Yarn 및 Node.js를 통해 정적 파일을 설치 및 생성한 다음, 애플리케이션 키를 생성하고 프로덕션을 위해 데이터베이스를 마이그레이션합니다.

설치를 시작하기 전에 git 패키지가 설치되어 있는지 확인하십시오. 그렇지 않은 경우 아래 apt 명령을 통해 설치할 수 있습니다.

sudo apt install git -y

이제 작업 디렉토리를 "/var/www/"로 이동하고 아래와 같이 git 명령을 통해 Monica CRM 소스 코드를 다운로드합니다. 새 디렉터리 "monica"가 표시됩니다.

cd /var/www/
git clone https://github.com/monicahq/monica.git

"/var/www/monica" 디렉토리로 이동하고 마스터 브랜치를 특정 버전 "3.7.0"으로 이동합니다. Monica CRM의 GitHub 페이지를 확인하여 Monica CRM의 자세한 버전을 얻을 수 있습니다.

cd /var/www/monica
git checkout tags/v3.7.0

그런 다음 기본 구성 .env.example.env에 복사합니다. 그런 다음 소유권을 www-data로 변경합니다.

cp /var/www/monica/.env.example /var/www/monica/.env
sudo chown www-data:www-data /var/www/monica/.env

nano 편집기를 사용하여 .env 파일을 편집합니다.

nano /var/www/monica/.env

APP_ENV를 프로덕션으로 변경하고 APP_URL을 Monica CRM 설치의 도메인 이름으로 변경합니다. 그런 다음 이전에 생성한 데이터베이스 및 사용자로 MariaDB 데이터베이스의 세부 정보를 변경합니다.

APP_ENV=production
...
APP_URL=https://hwdomain.io/
...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
...
DB_DATABASE=monica
DB_USERNAME=homestead
DB_PASSWORD=password

파일을 저장하고 완료되면 편집기를 종료하십시오.

이제 다음 명령을 실행하여 Monica CRM 설치 디렉터리 /var/www/monica의 소유권을 사용자 www-data로 변경합니다. 그런 다음 다른 디렉터리 /var/www/.cache를 만들고 소유권을 www-data로 변경합니다.

sudo chown -R www-data:www-data /var/www/monica

sudo mkdir -p /var/www/.cache
sudo chown -R www-data:www-data /var/www/.cache

다음으로 다음 작성기 명령을 실행하여 Monica CRM용 PHP 패키지 종속성을 설치합니다.

sudo -u www-data composer install --no-interaction --no-dev

아래에서 PHP 의존성 설치를 볼 수 있습니다.

종속 항목이 설치되면 다음과 같은 출력이 표시됩니다.

다음으로 JavaScript 패키지 캐시를 저장하는 데 사용할 또 다른 새 디렉터리를 만듭니다. 그런 다음 소유권을 www-data로 변경합니다.

sudo mkdir -p /var/www/.yarn
sudo chown -R www-data:www-data /var/www/.yarn

그런 다음 Monica CRM 웹 애플리케이션용 JavaScript 패키지를 설치하고 아래의 yarn 명령을 통해 프로덕션 환경용 정적 파일을 생성합니다.

sudo -u www-data yarn install
sudo -u www-data yarn run production

아래에서 JavaScript 패키지의 다운로드 프로세스를 볼 수 있습니다.

아래에서 정적 파일을 컴파일할 때 프로세스를 볼 수 있습니다.

정적 파일이 컴파일되면 "컴파일 성공..."과 같은 출력 메시지가 표시됩니다.

이제 다음 명령을 실행하여 Monica CRM용 애플리케이션 키를 생성합니다. 그런 다음 프로덕션을 위해 데이터베이스를 마이그레이션합니다. 작업을 확인하라는 메시지가 표시되면 yes를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo -u www-data php artisan key:generate
sudo -u www-data php artisan setup:production -v

데이터베이스가 마이그레이션되면 다음과 같은 출력이 표시됩니다.

마지막으로 Monica CRM 구성을 완료하려면 Cronjob도 생성해야 합니다. 다음 명령을 실행하여 www-data 사용자에 대한 새 cron을 만듭니다.

crontab -u www-data -e

선호하는 편집기를 선택하고 파일에 대한 다음 구성을 맛보십시오.

* * * * *   /usr/bin/php /var/www/monica/artisan schedule:run >> /dev/null 2>&1

파일을 저장하고 완료되면 편집기를 종료하십시오.

Monica CRM 설치 디렉터리의 권한을 확인하려면 다음 명령을 실행하여 소유권을 www-data로 변경합니다. 그런 다음 storage 디렉토리의 권한을 775로 변경합니다.

sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 775 /var/www/monica/storage

이 시점에서 Monica CRM 구성을 완료했습니다. 다음으로 Monica CRM용 Nginx 서버 블록을 설정합니다.

Nginx 서버 블록 설정

Nginx 서버 블록을 설정하기 전에 도메인 이름이 서버 IP 주소를 가리키고 이미 SSL 인증서가 있는지 확인하십시오. SSL 인증서가 없는 경우 Letsencrypt를 통해 무료 SSL을 생성할 수 있습니다.

nano 편집기를 사용하여 새 파일 /etc/nginx/sites-available/monicacrm을 만듭니다.

sudo nano /etc/nginx/sites-available/monicacrm

아래 Nginx 구성을 추가합니다. 그리고 SSL 인증서의 도메인 이름과 경로를 반드시 변경하십시오.

server {

    listen 80;
    server_name hwdomain.io;
    return 301 https://$host$request_uri;

}

server {
    listen 443 ssl http2;

    ssl_certificate /etc/letsencrypt/live/hwdomain.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/hwdomain.io/private.key;

    server_name hwdomain.io;
    root /var/www/monica/public;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
}

파일을 저장하고 완료되면 편집기를 종료하십시오.

다음으로 다음 명령을 실행하여 Nginx 서버 블록 monicacrm을 활성화합니다. 그런 다음 Nginx 구성을 확인하여 구성이 올바른지 확인하십시오.

sudo ln -s /etc/nginx/sites-available/monicacrm /etc/nginx/sites-enabled/
sudo nginx -t

적절한 Nginx 구성이 있는 경우 "Syntax OK - test successful"과 같은 출력 메시지가 표시되어야 합니다.

이제 다음 systemctl 명령을 실행하여 Nginx 서비스를 다시 시작하고 nee 서버 블록 구성을 적용합니다.

sudo systemctl restart nginx

이제 웹 브라우저를 통해 Monica CRM 설치에 액세스할 수 있습니다.

마무리

웹 브라우저를 열고 Monica CRM 설치의 도메인 이름(예: https://hwdomain.io/)을 방문합니다. 첫 번째 설정에서 Monica CRM 설치를 위한 계정을 등록해야 합니다.

세부 사용자 이름, 비밀번호 및 이메일 주소를 입력합니다. 그런 다음 등록을 클릭합니다.

사용자가 등록하면 이제 Monica CRM 사용자 대시보드가 표시됩니다.

결론

이 자습서에서는 Debian 11 서버에 Monica CRM을 설치했습니다. 또한 Debian 서버에 LEMP 스택(Nginx, MariaDB 및 PHP-FPM)을 구성하고 PHP 패키지 관리 Composer를 설치하고 Node.js 및 Yarn을 설치했습니다.

이 자습서 전체에서 이제 HTTPS 연결을 통해 Monica CRM을 설치하고 보호했습니다. 이제 연락처 정리를 시작하고 저널을 만들고 연락처에 대한 모든 중요한 사항을 추적할 수 있습니다.