웹사이트 검색

Ubuntu 20.04에서 Nginx로 Craft CMS를 설치하는 방법


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

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(Bionic Beaver)

이 페이지에서

  1. 전제 조건
  2. 시작하기\n
    1. 시스템 업데이트
    2. 종속성 설치

    Craft CMS는 웹 사이트를 위한 무료 오픈 소스 콘텐츠 관리 시스템입니다. 성장하고 있는 대규모 개발자 및 디자이너 커뮤니티의 지원을 받는 이 제품은 사용하기 쉬운 우아한 디자인과 함께 다양한 혁신적인 기능을 제공합니다. 또한 사이트 개발의 모든 측면을 제어할 수 있습니다.

    오늘날 가장 널리 사용되는 두 가지 콘텐츠 관리 시스템인 WordPress 및 Drupal의 훌륭한 대안입니다.

    콘텐츠 관리 시스템(CMS)은 콘텐츠를 편집하거나 새 페이지 및 사진을 추가하는 등 웹 콘텐츠를 보다 쉽게 관리하는 데 사용되는 소프트웨어입니다. HTML 또는 기타 마크업 언어를 사용하여 코드로 각 페이지를 개별적으로 생성해야 하는 경우 웹사이트 운영이 어려울 수 있습니다. 특정 요소의 모양이나 작동 방식에 대한 합의가 없을 수 있으므로 사이트에서 한 번에 여러 사람이 작업하는 경우 문제가 발생할 수 있습니다.

    CMS를 사용하면 블로그 게시물이나 제품 설명과 같은 특정 요소뿐만 아니라 각 페이지의 일반 구조를 설정할 수 있습니다. 그런 다음 다른 사람이 해당 정보를 편집해야 할 때 CMS를 사용하기만 하면 됩니다.

    이 가이드는 Ubuntu 20.04 LTS(Focal Fossa)에 Craft CMS를 설치하는 방법을 보여줍니다. Ubuntu 서버에 Craft CMS를 설치하는 방법을 보여줍니다. MySQL/MariaDB 데이터베이스를 사용하려는 경우 이 가이드가 설치하는 데 도움이 될 것입니다.

    Ubuntu에 Craft CMS를 설치하는 프로세스는 사용 중인 배포 및 버전에 관계없이 비슷하므로 시스템이 약간 다르더라도 이 가이드를 따를 수 있습니다. 이 튜토리얼은 Ubuntu의 새로 설치를 염두에 두고 작성되었습니다. 그러나 일부 단계는 현재 서버 설정에 따라 약간 다를 수 있습니다.

    전제 조건

    이 가이드를 따르려면 몇 가지가 필요합니다.

    • Ubuntu 20.04 LTS를 실행하는 서버.\n
    • Ubuntu 서버에 설정된 sudo 권한이 있는 루트가 아닌 사용자.\n

    시작하기

    시스템 업데이트

    먼저 아래 명령을 실행하여 루트가 아닌 사용자로 서버에 로그인하십시오.

    ssh _instance_ip

    사용자 이름은 root이고 SSH 프로토콜을 사용하여 instance_ip 서버에 연결합니다.

    your_instance_ip는 Craft CMS가 설치될 서버의 사설 IP 주소입니다.

    아래 명령을 실행하여 운영 체제를 업데이트하십시오.

    sudo apt update && sudo apt upgrade -y

    sudo apt update는 Ubuntu 시스템이 최신 상태인지 확인하기 위해 실행됩니다. 이 명령은 Ubuntu가 Ubuntu 리포지토리에서 새 Ubuntu 패키지를 다운로드하고 Ubuntu 운영 체제에 설치하도록 합니다. 우분투는 우분투가 모든 응용 프로그램을 가져오는 소프트웨어 배포 센터인 리포지토리(또는 더 정확하게는 "리포지토리")를 사용합니다.

    sudo apt upgrade는 Ubuntu 소프트웨어를 업데이트하고 업그레이드하는 Ubuntu 명령입니다. 이렇게 하면 Ubuntu 코어, 설치된 패키지 및 새 버전의 Ubuntu 소프트웨어 업데이트를 포함하는 Ubuntu 소프트웨어가 업그레이드됩니다.

    -y는 --yes의 짧은 형식입니다. Ubuntu 명령 apt upgrade -y는 Ubuntu가 모든 Ubuntu 소프트웨어 업데이트 요청에 대해 자동으로 예라고 응답함을 의미합니다.

    이 명령을 실행할 때 오류가 발생하면 Ubuntu 소프트웨어 센터 또는 터미널을 통해 오류를 수정해야 할 수 있습니다. sudo apt-get -f install을 입력하고 Ubuntu 소프트웨어 센터의 지침에 따라 모든 문제를 수정하거나 터미널 명령 "sudo dpkg --configure -a"를 사용하여 오류를 수정한 다음 다시 시작할 수 있습니다. -위의 명령을 실행하십시오.

    sudo apt-get -f install
    sudo dpkg --configure -a

    샘플 출력:

    종속성 설치

    아래 명령을 실행하여 종속성을 설치합니다.

    sudo apt install -y curl wget vim git unzip socat 

    curl은 Ubuntu 리포지토리에서 Ubuntu 업데이트를 다운로드하기 위한 Ubuntu용입니다. wget은 HTTP, HTTPS 및 FTP 프로토콜을 사용하여 파일을 가져오기 위해 Ubuntu 및 기타 Linux 운영 체제에서 지원되는 무료 소프트웨어입니다.

    vim은 거의 모든 Unix 시스템과 Microsoft Windows에서 실행되는 널리 사용되는 Unix 기반 텍스트 편집기입니다.

    Ubuntu는 압축 해제를 사용하여 ZIP 파일에서 파일을 추출합니다.

    Ubuntu는 명령줄 기반 유틸리티인 socat을 사용하여 표준 입력 및 출력 스트림 또는 파일을 사용하면서 서로 다른 두 응용 프로그램 간의 연결을 엽니다.

    샘플 출력:

    LEMP 서버 설치

    Craft CMS는 PHP로 작성되었으며 MySQL/MariaDB를 데이터베이스 엔진으로 사용합니다. "LEMP 스택"을 사용하여 함께 사용하도록 Ubuntu를 구성합니다. LEMP 스택은 Linux, Nginx 웹 서버, MySQL/MariaDB 데이터베이스 엔진 및 PHP 프로그래밍 언어의 약어입니다.

    먼저 터미널에서 다음 명령을 실행하여 Nginx 및 MariaDB 서버를 설치합니다.

    sudo apt-get install nginx mariadb-server -y

    샘플 출력:

    둘 다 설치되면 터미널에서 다음 명령을 실행하여 PHP를 설치할 수 있습니다.

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

    php-cli는 PHP용 명령줄 인터페이스이며 이전의 기본 패키지 이름은 \php5\였습니다. 이제 \php\로 이름이 바뀌었습니다.

    php-fpm은 php-cgi의 대기 버전입니다. 동시 요청을 잘 처리할 수 있으며 프록시 서버 뒤에서 사용하는 것이 유용합니다.

    php-common은 다른 모듈에 필요한 공통 라이브러리용입니다. 예를 들어 php-json은 "php"를 설치할 때 자동으로 설치됩니다.

    php-curl은 cURL(HTTP 요청을 보내는 명령줄 도구)을 통해 URL에 액세스하는 모듈입니다.

    참고: Ubuntu는 Ubuntu Software Center를 사용하여 Ubuntu 소프트웨어를 설치합니다. 그러나 Ubuntu Software Center는 Craft CMS에 필요한 일부 Python 패키지(virtualenv 등)와 같은 타사 소프트웨어를 다운로드하거나 설치할 수 없습니다. Ubuntu 소프트웨어 센터에서 여기에 있는 명령을 수동으로 복사하여 터미널 창에 붙여넣고 지침을 따라야 합니다.

    모든 패키지를 설치한 후 Ubuntus 디렉토리 etc/php/7.4/fpm에서 php.ini 파일을 편집합니다.

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

    파일에서 다음 구성을 변경합니다.

    memory_limit = 512M
    post_max_size = 32M
    upload_max_filesize = 32M
    date.timezone = Asia/Kolkata
    

    memory_limit = 512M은 Craft CMS에 필요합니다. Ubuntu 20.04 LTS에서 PHP는 memory_limit 자체를 변경할 수 없으므로 php.ini 파일에서 수동으로 변경해야 합니다.

    CMS를 통해 이미지 파일을 업로드하려면 post_max_size = 32M 및 upload_max_filesize = 32M이 필요합니다. Ubuntu 20.04 LTS는 Ubuntus php.ini 파일에서 기본적으로 post_max_size 및 upload_max_filesize 값을 16M으로 설정했으며 Craft CMS는 32M이 필요합니다.

    Craft CMS는 또한 Ubuntu 20.04 LTS에서 시간을 올바르게 표시하기 위해 date.timezone = Asia/Kolkata가 필요합니다. Ubuntu 20.04 LTS는 기본적으로 UTC-5를 표준 시간대로 사용하고 Craft CMS에는 UTC+05:30(인도 표준시)의 표준 시간대가 필요합니다.

    php.ini 파일을 편집한 후 파일을 저장하고 닫은 다음 Ubuntus PHP-FPM 서비스를 다시 시작합니다.

    sudo systemctl restart php7.4-fpm

    Ubuntus PHP-FPM 서비스의 상태를 확인하려면 아래 명령을 입력하십시오.

    sudo systemctl status php7.4-fpm

    샘플 출력:

    이제 LEMP 서버가 준비되었으므로 다음 단계로 넘어갑니다.

    데이터베이스 생성

    이제 Craft CMS용 데이터베이스를 생성하겠습니다. Ubuntus MySQL 콘솔 열기:

    sudo mysql -u root -p

    -p는 암호를 의미합니다. 루트 사용자로 연결하려면 다른 특정 정보를 입력하지 않고 -u root를 작성하고 Enter 키를 누르십시오.

    Ubuntus 설치 중에 설정한 비밀번호를 입력합니다. 그런 다음 아래 명령을 실행하여 craftdb라는 데이터베이스를 만듭니다.

    CREATE DATABASE craftdb;
    GRANT ALL ON craftdb.* TO 'craftuser' IDENTIFIED BY 'mypassword';
    FLUSH PRIVILEGES;
    EXIT;

    이 데이터베이스를 사용하려면 연결해야 합니다. 그래서 우리는 craftuser라는 사용자를 만들었습니다. 우리는 VALUES 대신에 IDENTIFIED BY를 사용합니다. 왜냐하면 우리는 MySQL에게 다른 데이터는 사용하지 않고 데이터베이스만 사용하도록 지시하기 때문입니다. mypassword라는 단어를 선택한 보안 암호로 바꿉니다.

    FLUSH PRIVILEGES는 이 세션에서 커밋되지 않은 모든 트랜잭션을 삭제하는 것입니다.

    크래프트 CMS 설치

    Craft CMS를 설치하려면 먼저 최신 버전의 Composer를 설치해야 합니다. Ubuntu는 시스템에서 gem 사용을 지원하지 않기 때문입니다. Composer를 통해서만 Craft CMS를 설치할 수 있습니다. 아래 명령을 실행하여 Composer를 설치합니다.

    sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

    -s 자동 모드를 켭니다. 기본적으로 curl은 -s를 따라갈 때 출력을 표시하지 않으며 구문 분석할 URL을 전달할 수 있습니다. 이 경우 URL https://getcomposre the -s를 가져오도록 curl에 지시하고 파일(https://getcomposer.org/installer)을 다운로드하기 위한 플래그를 추가하고 URL, -o 플래그를 저장합니다. curl이 다운로드한 파일을 composer-setup.php에 쓰도록 지시합니다.

    그런 다음 아래 명령어를 실행하여 Composer를 설치합니다.

    sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

    이 PHP 스크립트 sudo composer-setup.php --install-dir=/usr/local/bin --filename=composer를 실행하고 싶다고 컴퓨터에 알리려면 php 명령이 필요합니다.

    install-dir은 Composer의 대상 경로입니다. 이 경우 /usr/local/bin입니다. 모든 사용자가 파일에 액세스할 수 없도록 하려면 ./ 또는 ./를 사용하십시오. 또한 이 디렉터리에는 실행 권한이 있어야 합니다.

    --filename 플래그는 Composer가 설치될 파일의 이름입니다.

    파일을 어디에 둘지 모르는 경우 파일을 원하는 디렉토리에 복사하거나 --filename 뒤에 지정하십시오.

    Composer가 설치되면 아래 명령을 사용하여 설치된 버전을 확인합니다.

    composer --version

    샘플 출력:

    다음으로 Craft CMS 프로젝트를 위한 디렉토리를 생성합니다. 우리는 /var/www/html/ 디렉토리 아래에 craft라는 디렉토리를 생성합니다. 이 디렉토리를 웹 루트로 사용합니다. 즉, 우리가 만드는 모든 파일이나 Craft CMS에서 제공하는 페이지는 웹 루트에서 액세스됩니다.

    mkdir /var/www/html/craft

    다음으로 craft 디렉토리로 이동하고 Composer를 사용하여 Craft CMS를 설치합니다.

    cd /var/www/html/craft
    composer create-project craftcms/craft

    참고: 0.97 미만의 Craft 버전을 사용하는 경우 create-project를 install로 바꾸십시오.

    경고: 디렉터리에 있는 기존 파일을 덮어씁니다.

    Craft CMS에 대해 다른 디렉터리를 사용하려면 --prefer-dist 옵션을 지정할 수 있습니다.

    호스팅 제공업체에서 문서 루트를 /var/www로 변경하는 것을 허용하지 않는 경우 다음과 같은 webroot의 하위 디렉토리에 Craft를 설치하는 것이 좋습니다. mkdir craft 및 composer create-project craftcms/craft craft 실행

    샘플 출력:

    관리를 위해 데이터베이스 세부 정보, 사용자 이름 및 암호를 제공하라는 메시지가 표시됩니다.

    Craft가 내부 보안 키를 설정할 수 있도록 MYSQL 데이터베이스에 대한 일부 사용자 자격 증명을 제공해야 합니다! 호스트 이름은 localhost이고 사용자 이름은 craftuser이며 암호는 위에서 MySQL 데이터베이스를 생성할 때 선택한 암호입니다.

    이 시점에서 Composer는 웹루트 구조 /var/www 내부의 craft라는 디렉토리에 Craft를 컴파일하고 설치할 수 있어야 합니다. 기본적으로 HTTP 액세스를 활성화하지 않으면 인터넷을 통해 액세스할 수 없습니다.

    다음으로 새로 설치된 Craft 디렉토리에 대한 적절한 소유권을 설정합니다.

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

    Nginx 구성

    Nginx는 직접 이동하는 클라이언트의 요청을 처리하는 데 사용됩니다. 정적 파일 제공, 페이지 캐싱 및 이러한 페이지의 gzip 압축과 같은 추가 이점을 제공합니다.

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

    파일을 다음 줄로 채웁니다.

    server {
    listen 80;
    server_name craft.example.com;
    root /var/www/html/craft/web;
    index index.php;
    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.4-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 "";
    }
    }

    서버 이름: 이것은 서버의 도메인 이름 또는 IP 주소입니다. 클라이언트는 이를 사용하여 파일을 요청해야 하는 대상을 확인합니다(이 경우에는 craft.example.com).

    문서 루트: /var/www/html/craft 아래에 있는 웹 및 코어 폴더를 포함하여 Craft CMS 핵심 자산이 있는 위치입니다. 여기에 표시되는 경로는 사용 중인 공예 버전이나 폴더 구조가 변경되었는지 여부에 따라 다를 수 있습니다.

    Try_files $uri $uri/$uri : http://craft.example.com/index.php와 같은 상대 URI에 대한 요청의 경우 일반적으로 craft 설치의 문서 루트에 있는 index.php 파일을 반환합니다.

    위치 ~ [^/]\\.php(/|$) : PHP 파일에 대한 정규식은 기본적으로 .php로 끝나거나/및 $를 제외한 모든 항목과 일치하는 모든 요청을 검색하는 것을 의미합니다(재귀적으로 검색).

    PHP-FPM 소켓 위치: Craft CMS 코어 자산 요청에서 사용되며 이 값은 마스터 구성 파일 /etc/php/7.4{5,6}-fpm.conf의 php-fpm 소켓 파일 이름과 일치해야 합니다.

    파일을 저장하고 닫은 다음 다음을 실행하여 작동하는지 확인합니다.

    sudo nginx -t

    샘플 출력:

    오류가 없으면 아래 명령으로 Nginx를 다시 시작할 수 있습니다.

    sudo systemctl reload nginx

    Craft CMS에 액세스

    이제 파일이 구성되었으므로 Craft CMS 설치에 액세스할 수 있습니다. 브라우저에서 http://craft.example.com으로 이동하면 시작 화면이 표시됩니다.

    제어판으로 이동하여 관리자 정보를 입력하고 "로그인"을 클릭하십시오. 기본 대시보드가 표시되어야 합니다.

    다음과 같이 "503 사용할 수 없음"이라는 메시지가 표시되는 경우:

    최신 Craft, Craft 테마 및 Craft 플러그인 업데이트가 있는지 확인하십시오. 그래도 도움이 되지 않으면 다음 단계를 시도하세요. 이 문서에 설명된 대로 Crafts 폴더 권한이 올바른지 확인하세요. 이러한 파일은 root가 소유해야 하며 craft는 해당 폴더에 대한 쓰기 권한이 없어야 합니다.

    결론

    축하합니다! 이제 Ubuntu 20.04에 CraftCMS를 성공적으로 설치했습니다. 웹사이트를 만들어 봅시다! 언제나 그렇듯이 주저하지 말고 아래에 의견이나 제안을 남겨주세요.