웹사이트 검색

Debian 9에 Craft CMS를 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 초기 단계
  4. 1단계 - PHP 및 필수 PHP 확장 설치\n
  5. 2단계 - MySQL/MariaDB 설치 및 데이터베이스 생성
  6. 3단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)\n
  7. 4단계 - Nginx 설치 및 구성
  8. 5단계 - Composer 설치
  9. 6단계 - Craft CMS 설치
  10. 7단계 - Craft CMS 설정 완료
  11. 링크

Craft는 PHP로 작성된 오픈소스 CMS입니다. Craft를 사용하면 멋진 콘텐츠를 쉽게 만들고 관리할 수 있으며 필요한 콘텐츠를 정확하게 디자인하고 구축할 수 있습니다. 대규모 플러그인 생태계와 Craft 소스 코드가 포함된 안전하고 확장 가능한 CMS는 GitHub에서 호스팅됩니다. 이 튜토리얼은 Nginx를 웹 서버로 사용하는 새로운 Debian 9 서버에서 Craft CMS 설치 절차를 안내하고 Lets encrypt SSL 인증서로 웹사이트를 보호합니다.

요구 사항

Craft CMS에는 다음이 필요합니다.

  • 다음 PHP 확장이 있는 PHP 버전 7.0 이상: (ctype, cURL, GD 또는 ImageMagick, iconv, JSON, 멀티바이트 문자열, OpenSSL, PCRE, PDO MySQL 드라이버 또는 PDO PostgreSQL 드라이버, PDO, Reflection, SPL, Zip, 국제, DOM)
  • MySQL 5.5+(InnoDB, MariaDB 5.5+ 또는 PostgreSQL 9.5+ 포함)\n
  • PHP에 최소 256MB의 메모리 할당\n
  • 최소 200MB의 여유 디스크 공간

전제 조건

  • Debian 9를 실행하는 운영체제입니다.\n
  • sudo 권한이 있는 루트가 아닌 사용자.\n

초기 단계

Debian 버전 확인:

lsb_release -ds
# Debian GNU/Linux 9.8 (stretch)

시간대 설정:

sudo dpkg-reconfigure tzdata

운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 중요한 첫 번째 단계입니다.

sudo apt update && sudo apt upgrade -y

Debian 운영 체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.

sudo apt install -y curl wget vim git unzip socat apt-transport-https

1단계 - PHP 및 필수 PHP 확장 설치

PHP와 필요한 PHP 확장을 설치합니다.

sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-common php7.0-curl php7.0-gd php-imagick php7.0-json php7.0-mbstring php7.0-mysql php7.0-pgsql php7.0-zip php7.0-intl php7.0-xml

PHP 버전 확인:

php --version

# PHP 7.0.33-0+deb9u3 (cli) (built: Mar  8 2019 10:01:24) ( NTS )
# Copyright (c) 1997-2017 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies

sudo vim /etc/php/7.0/fpm/php.ini를 실행하고 memory_limit를 최소 256MB로 설정합니다.

또한 max_execution_time을 최소 120초로 설정하고 PHP-FPM 서비스를 다시 로드합니다.

memory_limit = 256M
max_execution_time = 120

PHP-FPM 서비스는 Debian 9 시스템에서 재부팅 시 자동으로 시작되고 활성화되므로 수동으로 시작하고 활성화할 필요가 없습니다. 다음 단계인 데이터베이스 설치 및 설정으로 넘어갈 수 있습니다.

2단계 - MySQL/MariaDB 설치 및 데이터베이스 생성

Craft CMS는 MySQL/MariaDB 및 PostgreSQL 데이터베이스를 지원합니다. 이 튜토리얼에서는 MariaDB를 데이터베이스 서버로 사용합니다.

MariaDB 데이터베이스 서버 설치:

sudo apt install -y mariadb-server

MariaDB 버전을 확인합니다.

mysql --version
# mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper

mysql_secure 설치 스크립트를 실행하여 MariaDB 보안을 개선하고 MariaDB root 사용자의 비밀번호를 설정합니다.

sudo mysql_secure_installation

각 질문에 답하십시오.

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_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 셸에 연결합니다.

sudo mysql -u root -p
# Enter password

Craft CMS용 빈 MariaDB 데이터베이스 및 사용자를 만들고 사용자 인증 정보를 기억하세요.

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

MariaDB에서 종료:

mysql> exit

dbname, usernamepassword를 자신의 이름으로 바꾸세요.

3단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)

HTTPS로 웹 사이트를 보호할 필요는 없지만 사이트 트래픽을 보호하는 것이 좋습니다. Lets Encrypt에서 TLS 인증서를 얻기 위해 Acme.sh 클라이언트를 사용합니다. Acme.sh는 종속성이 없는 Lets Encrypt에서 TLS 인증서를 얻기 위한 순수 Unix 셸 소프트웨어입니다.

Acme.sh 다운로드 및 설치:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail
cd ~

Acme.sh 버전 확인:

/etc/letsencrypt/acme.sh --version
# v2.8.0

도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서 받기:<br>

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

위 명령을 실행하면 인증서가 다음 위치에 있게 됩니다.

  • RSA의 경우: /etc/letsencrypt/example.com 디렉토리.
  • ECC/ECDSA의 경우: /etc/letsencrypt/example.com_ecc 디렉터리.

4단계 - Nginx 설치 및 구성

Craft CMS는 널리 사용되는 여러 웹 서버 소프트웨어와 잘 작동합니다. 이 튜토리얼에서는 Nginx를 선택했습니다.

공식 Nginx 리포지토리에서 Nginx의 최신 메인라인 릴리스를 다운로드하여 설치합니다.

Nginx 저장소 PGP 키 다운로드로 시작:

wget https://nginx.org/keys/nginx_signing.key

apt 프로그램 키링에 키를 추가합니다.

sudo apt-key add nginx_signing.key

Nginx 메인라인 APT 리포지토리 추가 및 설정:

sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit

리포지토리 목록을 업데이트합니다.

sudo apt update

최신 메인라인 Nginx 패키지를 설치합니다.

sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

Nginx 서비스 시작 및 활성화:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Nginx 버전 확인:

sudo nginx -v
# nginx version: nginx/1.15.10

다음을 실행하여 Craft CMS용 Nginx를 구성합니다.

sudo vim /etc/nginx/conf.d/craft.conf

그리고 다음 구성으로 파일을 채웁니다.

server {

  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;

  server_name example.com;

  root /var/www/craft/web;

  index index.php;

  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  location / {
    try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }

  location ~ [^/]\.php(/|$) {
    try_files $uri $uri/ /index.php?$query_string;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_PROXY "";
  }

}

참고: Craft에 대한 완전한 프로덕션 준비 Nginx 구성을 보려면 https://github.com/nystudio107/nginx-craft를 방문하세요. 구성을 조밀하고 단순하게 유지하기 위해 구성을 의도적으로 단순화했습니다.

nginx.conf 파일을 열고 userwww-data로 설정합니다.

sudo vim /etc/nginx/nginx.conf
user www-data www-data;

Nginx 구성 테스트:

sudo nginx -t

Nginx를 다시 로드합니다.

sudo systemctl reload nginx.service

5단계 - 작성기 설치

PHP 종속성 관리자인 Composer를 전역적으로 설치합니다.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

Composer 버전 확인:

composer --version
# Composer version 1.8.4 2019-02-11 10:52:10

참고: Composer 설치 명령은 향후 변경될 예정이므로 위의 명령이 작동하지 않는 경우 https://getcomposer.org/download/에서 최신 명령을 확인하십시오.

6단계 - Craft CMS 설치

Craft CMS는 Composer를 사용하거나 .zip 또는 tar.gz 아카이브를 수동으로 다운로드하여 다운로드할 수 있습니다. 이 튜토리얼에서는 Composer를 사용하여 Craft CMS를 다운로드합니다.

Craft CMS가 상주해야 하는 문서 루트 디렉터리를 만듭니다.

sudo mkdir -p /var/www/craft

문서 루트 디렉토리로 이동합니다.

cd /var/www/craft

/var/www/craft 디렉토리의 소유권을 [jour_username]으로 변경합니다.

sudo chown -R [your_username]:[your_username] /var/www/craft

새 Craft 프로젝트를 만들려면 다음 명령을 실행합니다.

composer create-project craftcms/craft .

/var/www/craft 디렉토리의 소유권을 www-data:로 변경합니다.

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

웹 브라우저에서 http:///index.php?p=admin/install로 이동합니다(를 웹 서버의 호스트 이름으로 대체). 지금까지 모든 작업을 제대로 완료했다면 Craft의 설정 마법사가 여러분을 반길 것입니다.

7단계 - Craft CMS 설정 완료

설치 URL을 열면 아래와 같은 페이지가 나타납니다. "Craft 설치" 버튼을 클릭합니다.

"확인" 버튼을 클릭하여 라이선스에 동의합니다.

데이터베이스 세부정보를 입력하고 "다음" 버튼을 클릭합니다.

Craft 계정을 생성하고 "다음" 버튼을 클릭합니다:

사이트를 설정하고 "마침" 버튼을 클릭하십시오:

그런 다음 Craft 관리 페이지로 리디렉션되어야 합니다.

연결

  • https://craftcms.com/
  • https://github.com/nystudio107/nginx-craft