웹사이트 검색

Ubuntu 20.04 LTS에서 Nginx와 함께 BoltWire CMS를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
    1. 시스템 업데이트
    2. 필수 패키지 설치\n

    1. Nginx 구성

    1. 데이터베이스 만들기

    Bolt는 널리 사용되는 PHP 프레임워크에 구축된 경량 콘텐츠 관리 시스템(CMS)입니다. Bolt는 HTML 및 기타 프로그래밍 언어를 배울 필요 없이 자체 웹 사이트를 유지하려는 소규모 비즈니스에 적합합니다. Bolt는 강력한 위키 마크업, 전자 상거래, 사진 갤러리 및 앨범 빌더, 오디오 갤러리 및 플레이어, 방명록과 같은 고급 기능을 제공합니다.

    Boltwire는 CMS가 필요한 모든 규모의 개인 및 그룹에게 완전히 무료라는 점에서 두드러집니다. Joe Casabona는 Boltwire의 창시자이며 다른 사람들이 자신의 오픈 소스 프로젝트를 최대한 활용할 수 있도록 도와줌으로써 자신의 열정을 공유합니다. Bolt는 200개 이상의 국가에서 500,000개 이상의 웹사이트를 관리하는 데 사용됩니다. 개발자는 자원 봉사자이며 모든 사용자가 피드백을 제공하고 개발에 기여함으로써 프로젝트에 참여하기를 기대합니다.

    Bolt에는 몇 가지 고유한 기능이 있습니다.

    • 동적 페이지 생성: 데이터베이스에서 페이지를 가져올 때 찾은 데이터를 기반으로 페이지를 조합할 수 있습니다. 예를 들어 사용자가 온라인 저널에 새 항목을 게시하면 전체 웹 페이지를 새로 고치지 않고도 블로그의 다른 항목을 동적으로 추가할 수 있습니다. 이를 통해 특히 범주당 페이지 또는 미디어 항목이 많은 경우(예: 사진 갤러리의 모든 사진) 로드 시간이 빨라집니다.\n
    • 콘텐츠 관리 및 관리: 여러 사용자가 콘텐츠를 관리하여 각 사용자가 페이지의 특정 부분만 변경할 수 있도록 합니다. 또한 보거나 편집할 수 있는 항목을 제한할 수도 있습니다. 예를 들어, 대부분의 사람들은 새 기사를 게시하거나 댓글을 자유롭게 추가할 수 없습니다. 이것은 사이트 관리자를 위해 예약되어 있습니다. 독자는 관리자가 별도로 지정하지 않는 한 먼저 로그인하지 않고도 모든 기사를 볼 수 있습니다.\n
    • 사용 편의성: Bolt는 Joomla 및 Drupal과 같은 다른 CMS에 비해 웹 페이지를 만드는 데 필요한 노력을 크게 줄여줍니다. Bolt에 내장된 마법사는 구성 프로세스의 많은 부분을 자동화하므로 내부 작업 방식에 대해 걱정할 필요가 없습니다.\n
    • 쉬운 확장성: Bolt는 오픈 소스이기 때문에 Bolt에 기능을 확장하거나 추가할 새 모듈을 쉽게 생성할 수 있습니다. 새로운 기능은 종종 핵심 소프트웨어에 통합되어 더욱 쉽게 사용할 수 있습니다. 현재 Modboom에서 사용할 수 있는 약 40개의 확장 기능을 통해 PHP 프로그래밍에 너무 깊이 들어가지 않고도 원하는 Bolt의 모든 부분을 쉽게 확장할 수 있습니다.\n
    • BoltWire는 영어(기본값), 독일어, 이탈리아어, 일본어, 폴란드어, 포르투갈어, 스페인어 등 다양한 언어로 제공됩니다. 위의 언어에 대한 표준 BoltWire 패키지 외에도 프랑스어(100%) 및 네덜란드어(50% 이상)로 전체 현지화가 가능합니다.\n

    단점은 현지 언어로 작동하는 방식에 대해 질문이 있는 경우 도움말 포럼 외에는 사용할 수 있는 지원이 거의 없다는 것입니다. 이와 관련하여 원하는 대로 일을 처리하는 것은 귀하의 책임입니다. 그러나 텍스트 편집기를 사용하는 것이 편하고 Bolt에서 직접 작업할 시간이 있다면 간단하지만 전문적으로 보이는 웹 사이트를 몇 분 안에 만드는 데 방해가 되는 것은 없습니다.

    이 가이드에서는 Ubuntu 20.04 서버에 BoltWire를 설치하는 방법에 대해 알아봅니다.

    전제 조건

    • Ubuntu 20.04를 실행하는 새로운 서버.\n
    • 전체 SSH 루트 액세스 또는 sudo 권한이 있는 사용자.\n
    • 도메인 이름이 등록되고 서버를 가리킵니다.

    시작하기

    우선 SSH로 우분투에 로그인합니다.

    ssh [이메일 보호됨]_Address -p Port_number

    root는 Ubuntu의 기본 사용자입니다. 다른 사용자를 사용하는 경우 'root'를 자신의 사용자 이름으로 바꾸십시오.

    IP_Address는 서버의 주소입니다. 당신은 이것을 사용하여 확인할 수 있습니다

    hostname -I 명령줄에서 SSH의 경우 Port_number는 22여야 합니다.

    hostname -I

    '-p'는 ssh에게 지정된 포트를 사용하도록 지시합니다. 포트 번호를 지정하지 않으면 22가 사용됩니다.

    방화벽 뒤에 있는 경우 포트 22가 차단될 수 있습니다. 이 경우 Port_number를 2222와 같은 다른 것으로 변경하십시오.

    시스템 업데이트

    다음 명령을 사용하여 시스템에 적절한 Ubuntu 버전이 설치되어 있는지 확인할 수 있습니다.

    sudo lsb_release -a

    샘플 출력:

    패키지를 설치하기 전에 항상 시스템을 업데이트하는 것이 좋습니다.

    sudo apt-get update && apt-get upgrade -y

    -y는 업데이트 프로세스 중에 모든 질문에 자동으로 예라고 대답하는 명령입니다. apt-get update는 패키지 목록을 업데이트하고 apt-get upgrade는 시스템을 업그레이드합니다.

    샘플 출력:

    업데이트는 다운로드 및 설치해야 하는 패키지 수에 따라 다소 시간이 걸릴 수 있습니다. 업데이트가 완료되면 서버를 재부팅하라는 메시지가 표시됩니다. 업데이트 후 시스템을 재부팅하려면 아래 명령을 실행하십시오.

    sudo reboot

    필수 패키지 설치

    Bolt를 설치하려면 시스템에 여러 패키지를 설치해야 합니다. 일부 패키지는 특정 순서로 설치됩니다. 이 경우 아래 명령을 사용하여 Bolt 설치에 필요한 모든 패키지를 설치합니다.

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

    socat은 프록시용으로 Bolt가 웹 서버에서 실행 중인 것처럼 보이게 합니다.

    apt-transport-https는 sudo apt update와 같은 명령줄 작업이 https 연결에서 작동하도록 허용합니다. bash-completion은 bash가 처음 몇 글자를 입력한 후 명령을 자동 완성하도록 하는 프로그램입니다.

    curl은 패키지를 다운로드하는 데 사용되며 wget은 웹 사이트에서 최신 버전의 Bolt와 같은 파일을 다운로드하는 데 사용됩니다.

    샘플 출력:

    Nginx 설치

    Nginx는 Bolt에서 웹사이트를 관리하기 위한 리버스 프록시로 사용됩니다. Nginx는 가볍고 구성하기 쉽고 빠릅니다. 아래 명령을 실행하여 Nginx를 설치합니다.

    sudo apt-get install nginx

    프롬프트가 표시되면 y를 입력하면 설치 프로세스가 자동으로 시작됩니다.

    샘플 출력:

    설치가 완료되면 nginx 서비스를 시작하고 시스템 시작 시 실행되도록 활성화합니다.

    sudo systemctl start nginx
    sudo systemctl enable nginx

    Nginx가 현재 실행 중인지 확인하려면 터미널에서 이 명령을 사용하십시오.

    sudo systemctl status nginx

    샘플 출력:

    Nginx 구성

    BoltWire CMS는 /var/www/ 디렉토리에 설치됩니다. BoltWire CMS에 액세스하고 테스트하려면 모든 정적 콘텐츠 요청과 모듈 및 플러그인 파일 요청에 대해 요청을 webroot 폴더 경로 /var/www/로 자동 라우팅하도록 Nginx 서버 블록을 구성해야 합니다.

    다음 명령을 실행하여 bolt.conf라는 새 구성 파일을 생성합니다.

    sudo nano /etc/nginx/sites-available/bolt.conf

    다음 콘텐츠로 구성 파일을 채웁니다.

    server {
    listen 80;
     listen [::]:80; 
     root /var/www/bolt; 
     index index.php index.html index.htm; 
     server_name bolt.example.com;

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

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

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

    location ^~ /bolt/ { 
     try_files         $uri /index.php?$query_string; 
     } 

    }

    방금 생성한 Nginx 서버 블록은 /var/www/ 디렉토리로 설정된 기본 문서 루트를 사용합니다. 다른 서버 환경에서 BoltWire CMS를 실행하는 경우 conf 파일을 편집하고 그에 따라 문서 루트의 경로를 바꿉니다.

    server_name 지시문은 Nginx 웹 서버가 청취할 URL을 구성합니다. bolt.example.com을 실제 서버 도메인 이름 또는 IP 주소로 바꾸십시오.

    try_files $uri $uri/ /index.php?$query_string; 이 지시문을 사용하면 파일 경로 요청이 있는 경우 직접 처리할 수 있습니다. 예를 들어 사용자가 브라우저에서 BoltWire CMS의 홈 페이지에 액세스하려고 하면 /index.php가 인덱스 파일로 사용되며 그렇지 않으면 PHP-FPM으로 돌아가 404 Not Found 응답을 반환합니다.

    변경 사항을 적용하고 bolt.conf 파일에 저장한 후 Nginx를 다시 로드하고 다시 시작하면 새 구성이 적용됩니다.

    sudo systemctl reload nginx
    sudo systemctl restart nginx

    다음 명령을 실행하여 nginx 구성을 확인합니다.

    sudo nginx -t

    샘플 출력:

    MySQL 설치

    BoltWire CMS는 MySQL 서버 버전 4.2 이상이 필요하지만 BoltWire CMS는 5.x 이상에서 작동하지 않습니다.

    따라서 몇 가지 옵션이 있습니다. Microsoft SQL Server와 같은 원격 데이터베이스 서버를 사용합니다. 모든 웹 서버 시스템에 MySQL을 구현합니다(권장하지 않음). MySQL 버전을 업그레이드합니다. 첫 번째 옵션은 매우 간단하지만 업그레이드 유형은 복잡합니다.

    LAMP 스택(Linux, Apache, MySQL 및 PHP)을 사용하는 사용자의 경우 Ubuntu에는 이미 MySQL 서버가 저장소에 포함되어 있으므로 별도로 MySQL을 설치할 필요가 없습니다.

    아래 명령을 실행하여 MySQL을 설치합니다.

    sudo apt -y install mysql-server

    샘플 출력:

    설치가 완료되면 아래 명령을 실행하여 이 세션에 대한 MySQL 데몬(MySQL 서버)을 시작하고 시스템 시작 시 실행되도록 활성화합니다.

    sudo systemctl start mysql
    sudo systemctl enable mysql 

    데이터베이스 생성

    명령줄을 사용하여 bolt라는 데이터베이스를 생성합니다.

    아래 명령을 실행하여 mysql에 연결하여 데이터베이스를 생성합니다.

    sudo mysql -u root -p 

    mysql의 루트 암호를 입력합니다. 이제 mysql 콘솔에 로그인되었습니다. 데이터베이스 및 데이터베이스 사용자를 생성하려면 아래 명령을 실행하십시오.

    CREATE DATABASE bolt;
    CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'mypassword';
    GRANT ALL ON bolt.* TO 'bolt'@'localhost'; 
    FLUSH PRIVILEGES; 
    exit

    CREATE USER bolt@localhost IDENTIFIED BY mypassword는 비밀번호가 mypassword인 사용자 볼트를 생성합니다. 여기에서 mypassword라는 단어 대신 보안 암호를 사용하십시오! Flush 권한은 위에서 만든 권한 부여 테이블을 다시 로드합니다.

    PHP 설치

    BoltWire CMS에는 PHP 버전 7 이상과 해당 개발 헤더가 필요합니다. 필요한 PHP 버전(7.2)과 함께 ppa:ondrej/php PPA를 추가할 것입니다. 필요한 PHP 버전으로 직접 변경할 수 있습니다. 다음 명령을 실행하여 ppa를 추가하고 apt-get을 업데이트하십시오.

    sudo apt -y install software-properties-common 
    sudo add-apt-repository ppa:ondrej/php 
    sudo apt-get update

    아래 명령을 실행하여 PHP 7.2를 설치합니다.

    sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mysql php7.2-intl php7.2-json php7.2-opcache php7.2-xml

    php7.2-cli는 PHP7.2용 명령줄 인터페이스이며 php7.2-common을 사용하면 php7.2-extensions, 웹 서버 (PHP) 모듈 및 표준 CLI 확장을 설치합니다. php7.2 -fpm은 웹 서버에서 PHP 응용 프로그램을 실행하는 일반적인 방법인 FastCGI Process Manager를 설치합니다. php7.2-mbstring은 BoltWire CMS에 필요한 멀티바이트 문자열 기능을 설치합니다. php7.2-opcache는 컴파일된 스크립트를 캐싱하여 더 나은 성능을 제공하고 웹 서버의 부하를 줄이는 PHP7.2용 opcode 캐시를 설치합니다. php7.2-xml은 BoltWire CMS를 사용하는 데 필요한 PHP7.2용 XML 처리 확장 프로그램을 설치합니다.

    샘플 출력:

    PHP 7.2를 설치한 후 아래 명령을 실행하여 PHP7.2 버전을 확인하십시오.

    php -v 

    샘플 출력:

    다음으로 nano 텍스트 편집기를 사용하여 Nginx용 PHP 기본 구성 파일을 엽니다.

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

    이제 다음 줄을 변경하겠습니다.

    file_uploads = On
    allow_url_fopen = On
    memory_limit = 256M
    upload_max_filesize = 100M
    max_execution_time = 360
    date.timezone = America/St. Louis

    • file_uploads = On은 BoltWire CMS에 파일 업로드 기능을 활성화합니다.\n
    • allow_url_fopen = 켜짐은 원격 웹 서버에서 업로드된 파일이 있는 요청에서 직접 URL 또는 HTTP 리디렉션을 허용합니다.\n
    • memory_limit = 256M은 Nginx 작업자 프로세스에 대해 설정할 PHP 7.2 메모리 제한(MB)입니다. 메모리 사용량이 많은 PHP 스크립트를 실행하면 php 런타임 오류가 발생할 수 있습니다.\n
    • upload_max_filesize = 100M은 BoltWire CMS 사이트에 단일 업로드 파일의 최대 크기입니다. 무제한 크기 파일 업로드를 활성화하려면 이 값을 0으로 변경하십시오.\n
    • max_execution_time = 360은 PHP 스크립트가 실행되는 최대 실행 시간(초)이며, 스크립트가 이 값을 초과하면 종료됩니다.\n
    • date.timezone=미국/세인트. BoltWire CMS 시스템에서 고객 날짜 및 시간 값을 올바르게 표시하는 위치의 표준 시간대 Louis.\n

    위의 변경 사항을 적용하려면 php7.2-fpm을 다시 시작하십시오.

    sudo service php7.2-fpm restart

    이것은 필요한 PHP7.2 및 관련 패키지에 충분해야 합니다. 다음 단계로 넘어갑니다.

    작곡가 설치

    BoltWire CMS는 Composer가 필요한 외부 라이브러리를 웹 사이트에 추가해야 하므로 이 자습서를 계속하기 전에 먼저 설치해야 합니다. Composer는 PHP 프로젝트의 종속성을 관리하는 PHP용 패키지 관리자입니다. NodeJS의 npm 또는 ruby gem과 유사합니다.

    먼저 홈 디렉토리로 이동하여 설치 프로그램을 다운로드합니다.

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

    아래 명령은 Composer를 설치합니다.

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

    위의 명령은 Composer를 /usr/local/bin 디렉토리에 시스템 전체 바이너리로 다운로드하고 설치합니다.

    명령의 /usr/local/bin 부분을 ~/user_로 대체하여 사용자에 대해서만 Composer를 구성하도록 선택할 수 있습니다.

    설치가 완료되면 아래 명령을 실행하여 설치가 성공했는지 테스트할 수 있습니다.

    composer

    샘플 출력:

    볼트 설치하기

    이제 필요한 모든 패키지가 설치되었으므로 이제 Bolt를 설치할 수 있습니다.

    먼저 /var/www/ 디렉토리로 이동하고 아래 명령을 사용하여 GitHub에서 최신 버전의 Bolt CMS를 다운로드합니다.

    cd /var/www/
    sudo git clone https://github.com/bolt/bolt.git

    샘플 출력:

    다운로드가 완료되면 Bolt CMS용 작성기 구성 파일인 "composer.json"이라는 단일 파일이 있는 bolt라는 디렉터리가 표시됩니다.

    이제 Bolt 디렉토리로 이동하여 거기에서 Bolt를 설치합니다.

    cd bolt
    sudo composer install

    이 명령은 Composer 패키지 관리자를 사용하여 필요한 모든 Bolt 소스 파일과 종속성을 /var/www/bolt에 설치합니다.

    샘플 출력:

    다음 단계는 다음 명령을 실행하여 Bolt 작업 디렉토리를 설정하는 것입니다.

    sudo chown -R www-data:www-data /var/www/bolt
    sudo chmod -R 755 /var/www/bolt

    위의 명령은 Bolt 파일의 소유권을 Nginx 사용자 www-data로 변경하여 Bolt URL에 액세스할 때 파일을 읽고 쓸 수 있도록 합니다.

    다음 단계는 볼트 구성 파일을 구성하는 것입니다.

    sudo cp app/config/config.yml.dist app/config/config.yml

    BoltWire CMS에 액세스하기

    이제 Linux 또는 Windows 컴퓨터의 브라우저에서 다음 URL을 사용하여 BoltWire CMS에 액세스할 수 있어야 합니다.

    아래와 같은 기본 BoltWire CMS 랜딩 페이지가 나타납니다.

    이 양식에 필요한 모든 정보를 입력하면 아래와 같이 BoltWire dasboard에 액세스할 수 있습니다.

    이제 Bolt Wire CMS용 Linux 서버를 성공적으로 구성했습니다.

    새로 설치된 BoltWire CMS에 액세스하려고 할 때 문제가 발생하는 경우. 다음은 일반적인 오류 및 가능한 해결 방법 목록입니다.

    • \액세스 거부 - 오류\. 이는 BoltWire CMS가 실행 중이지만 브라우저에서 해당 페이지에 액세스할 수 없음을 의미합니다. Nginx 구성 디렉토리를 확인하십시오.\n
    • "동적 라이브러리 /var/www/BoltWire/vendor/php72-zip/libphp7.2.so를 로드할 수 없습니다" 또는 "스크립트 실행 오류". 이는 BoltWire CMS 디렉토리에 PHP 파일을 실행하고 실행하는 데 필요한 권한이 없음을 의미합니다.\n
    • "초기화 오류 ... 그런 파일이나 디렉토리가 없습니다". 이는 BoltWire CMS가 제대로 설치되지 않았음을 의미합니다. BoltWire CMS 설치를 위해 올바른 절차를 따랐는지 확인해야 합니다.\n
    • "권한이 거부됨". 이는 /var/www/bolt 또는 /var/www 디렉토리에 대한 적절한 액세스 권한이 없음을 의미합니다.\n
    • \치명적인 오류: 클래스 PDO를 찾을 수 없음...\. 이는 PHP가 데이터베이스에 연결할 수 없으며 PHP 구성을 확인해야 할 수도 있음을 의미합니다.\n
    • \찾는 중...\ 또는 \경고: foreach()에 잘못된 인수가 제공됨...\. 이것은 BoltWire CMS가 당신이 준 것을 찾을 수 없다는 것을 의미합니다. 일반적으로 이는 구성에서 블로그 이름과 슬러그 또는 경로를 모르기 때문에 발생합니다.\n
    • "디렉터리를 생성할 수 없습니다 ... 정의되지 않은 인덱스: 본 데이터". 이는 BoltWire CMS가 Nginx 서버에 디렉토리를 생성할 수 없으며 PHP 구성을 확인해야 할 수도 있음을 의미합니다.\n
    • "구문 분석 오류: 구문 오류, 예상치 못한 = in ... at ...". 이는 BoltWire CMS가 파일을 실행할 수 없거나 파일 중 하나를 읽을 수 없음을 의미합니다. 이는 구성에서 잘못된 구문을 사용한 경우에 발생할 수 있습니다.\n
    • "404 not found nginx/1.14.0 (ubuntu)" 서버에 bolt.example.com에 대한 A 레코드를 추가하면 도움이 됩니다.\n
    • "404 찾을 수 없음" 또는 "요청한 URL ... 이 서버에서 찾을 수 없습니다". 이는 BoltWire CMS가 해당 파일을 찾을 수 없음을 의미합니다. BoltWire 구성을 확인하고 올바른 경로를 지정했는지 확인해야 할 수도 있습니다.\n

    BoltWire가 설치되었지만 페이지가 없거나 BoltWire CMS가 설치된 경우 BoltWire 로그인 페이지가 표시되면 Bolt는 Bolts 설치 디렉토리 내의 /var/www/bolt/_templates 폴더에서 기본 BoltWire 템플릿을 찾고 그렇지 않은 경우 거기에서 파일을 찾으면 Bolt는 Bolts 설치 디렉토리의 index.php 파일을 홈 페이지로 사용합니다. 그래도 작동하지 않으면 PHP 구성이나 Nginx 구성에 다른 문제가 있을 수 있습니다.

    결론

    BoltWire CMS는 블로그나 개인 웹사이트를 운영하기 위한 훌륭한 소프트웨어입니다. BoltWire CMS 공식 사이트에서 Bolt CMS에 대해 자세히 알아볼 수 있습니다.

    이 기사가 Ubuntu 20.04 서버에 BoltWire를 설치하는 방법을 배우는 데 도움이 되기를 바랍니다. 이 기사가 마음에 들면 twitter 또는 facebook에서 친구들과 공유하십시오. 질문이 있으시면 아래에 의견을 남겨주십시오.