웹사이트 검색

Ubuntu 18.04 LTS에서 Nginx로 Ghost Blog를 배포하는 방법


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

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

이 페이지에서

  1. 요구 사항\n
  2. 초기 단계
  3. 1단계 - Node.js 및 npm 설치
  4. 2단계 - MariaDB 서버 설치
  5. 3단계 - NGINX 설치
  6. 4단계 - Yarn 설치(선택사항)\n
  7. 5단계 - Ghost-CLI 설치
  8. 6단계 - Ghost 설치
  9. 7단계 - Ghost 설정 완료

Ghost는 완전한 오픈 소스(MIT 라이선스) 블로그 플랫폼으로 2013년 출시 이후 개발자와 일반 사용자 사이에서 인기를 얻고 있습니다. Ghost 소스 코드는 GitHub에서 공개적으로 사용할 수 있습니다. Ghost는 일반적으로 잘 실행되기 위해 약 300MB의 RAM이 필요하므로 적당한 하드웨어에서 실행할 수 있습니다. 콘텐츠블로깅에 중점을 둡니다. Ghost의 가장 매력적인 점은 단순하고 깨끗하며 우아하고 반응이 빠른 디자인입니다. 휴대 전화에서 블로그 게시물을 작성할 수 있습니다. Ghost용 콘텐츠는 Markdown 언어를 사용하여 작성되고 형식이 지정됩니다. Ghost는 개인 또는 소규모 작가 그룹에 적합합니다. Ghost는 또한 AMP(Accelerated Mobile Pages) 프로젝트를 기본적으로 지원하므로 휴대전화에서 블로그를 번개처럼 빠르게 로드할 수 있습니다.


최근에 Ghost 개발자는 Ghost의 첫 번째 주요 안정적인 릴리스인 1.0.0을 출시했습니다. Ghost 1.0.0은 많은 새로운 기능을 도입했으며 그중 가장 주목할만한 기능은 새로운 Markdown 편집기, 새로워진 사용자 인터페이스(UI), 새로운 기본 테마 디자인, Ghost-CLI 도구를 사용한 새롭고 향상된 설치 및 업데이트 프로세스입니다.


이 튜토리얼에서는 Lets Encrypt, Acme.sh, Node.js, npm, Yarn, NGINX 및 MySQL/MariaDB.

요구 사항

  • 도메인 이름. 이 가이드에서는 example.com 도메인을 사용합니다.\n
  • 1GB 또는 RAM으로 Ubuntu 18.04 LTS를 실행하는 서버.\n
  • sudo 권한이 있는 루트가 아닌 사용자.\n

초기 단계

Ubuntu 버전 확인:

lsb_release -ds 
# Ubuntu 18.04 LTS

시간대 설정:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

운영 체제 패키지 업데이트:

sudo apt update && sudo apt upgrade -y

build-essential 패키지를 설치합니다.

sudo apt install -y build-essential

1단계 - Node.js 및 npm 설치

참고: 최신 Ghost 1.0.0은 현재 Node.js 버전 8.9+ 및 6.9+만 지원합니다.

Ghost는 Node.js를 기반으로 합니다. 이 튜토리얼 작성 시점에 v8 Carbon LTS인 Ghost용 권장 버전을 설치할 예정입니다. Linux에는 Linux 바이너리(x86/x64), 소스 코드 또는 패키지 관리자를 통한 몇 가지 설치 옵션이 있습니다. Nodesource 저장소를 활용하여 Package Manager 방식을 사용하겠습니다.

Node.js의 최신 장기 지원(LTS) 버전(릴리스)을 다운로드하고 설치합니다.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs

참고: npm은 Node.js와 함께 배포됩니다. 즉, Node.js를 다운로드하면 자동으로 컴퓨터에 npm이 설치됩니다.

Node.js 및 npm 버전 확인:

node -v && npm -v
# v8.11.2
# 5.6.0

Npm은 Node.js와 별개의 프로젝트이며 더 자주 업데이트되는 경향이 있습니다. 결과적으로 방금 Node.js(따라서 npm)를 다운로드한 경우에도 npm을 업데이트해야 할 수 있습니다. 운 좋게도 npm은 스스로 업데이트하는 방법을 알고 있습니다! npm을 업데이트하려면 터미널에 다음을 입력하십시오.

sudo npm install -g 

npm 버전을 다시 확인하십시오. 최신 버전이어야 합니다.

npm -v
# 6.1.0

2단계 - MariaDB 서버 설치

Ghost는 MySQL/MariaDB 및 SQLite 데이터베이스를 지원합니다. 하지만 이 가이드에서는 MariaDB 데이터베이스를 사용합니다. 원하는 경우 MariaDB 대신 MySQL을 사용할 수 있습니다.

시스템의 MariaDB 저장소에서 안정적인 최신 버전의 MariaDB 서버를 다운로드하여 설치합니다.

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.nxthost.com/mariadb/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install -y mariadb-server

MariaDB 설치 프로세스 중에 MariaDB root 사용자 비밀번호를 입력하라는 메시지가 표시됩니다. 강력한 암호를 입력해야 합니다.

MariaDB 버전 확인:

mysql --version && sudo mysqld --version
# mysql  Ver 15.1 Distrib 10.3.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
# mysqld  Ver 10.3.7-MariaDB-1:10.3.7+maria~bionic-log for debian-linux-gnu on x86_64 (mariadb.org binary distribution)

MariaDB 데몬이 시작되어 실행 중인지 확인합니다.

sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service

mysql_secure_installation 유틸리티(스크립트)를 실행하여 MariaDB 설치의 보안을 개선하세요.

sudo mysql_secure_installation


# Enter current password for root (enter for none):

# Change the root password? [Y/n] N
# 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
# Success.

# All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

# Thanks for using MariaDB!

MariaDB root 사용자로 MariaDB 명령줄에 로그인(연결)합니다.

mysql -u root -p

Ghost 설치를 위한 새 MariaDB 데이터베이스 및 사용자를 만듭니다. 이 단계는 선택 사항입니다. 이후 단계에서 Ghost-CLI 도구가 데이터베이스를 생성할 수 있으므로 Ghost 설치 중에 Ghost-CLI에서 요청할 때 MariaDB 루트 사용자 자격 증명(사용자 이름 및 암호)을 입력하기만 하면 됩니다.

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

MariaDB에서 종료(연결 해제):

mysql> EXIT;

3단계 - NGINX 설치

NGINX(engine-x)는 베어 메탈, 퍼블릭/프라이빗/하이브리드 클라우드 및 컨테이너와 같은 모든 환경에서 잘 작동하는 고성능 웹 서버, 로드 밸런서, 캐시 및 프록시 서버입니다. NGINX는 Ghost 애플리케이션의 리버스 프록시로 사용됩니다.

NGINX는 운영 체제에 따라 다르게 설치할 수 있습니다. Linux의 경우 nginx.org의 NGINX 패키지를 사용할 수 있습니다.

공식 NGINX 저장소에서 직접 NGINX 및 동적으로 로드 가능한 모듈의 최신 mainline(대부분의 배포에 권장됨) 릴리스를 다운로드하고 설치합니다.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

버전을 확인하여 NGINX가 설치되어 있는지 확인합니다.

sudo nginx -v && sudo nginx -V
# nginx version: nginx/1.15.0
# nginx version: nginx/1.15.0

NGINX 시작 및 활성화:

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

/etc/nginx/snippets, /etc/nginx/ssl, /etc/nginx/sites-available /etc/nginx/sites-enabled <를 만듭니다. /코드>디렉토리. Ghost-CLI 도구가 올바르게 작동하려면 다음 디렉토리가 필요합니다:

sudo mkdir -p /etc/nginx/{snippets,ssl,sites-available,sites-enabled}

include /etc/nginx/sites-enabled/*.conf; 지시문을 nginx.conf 파일에 추가하고 다음을 실행합니다.

sudo vim /etc/nginx/nginx.conf

파일을 저장하고 Vim 편집기를 종료합니다.

4단계 - Yarn 설치(선택사항)

시스템에 Yarn 패키지 관리자를 다운로드하고 설치합니다.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install -y yarn

원사 버전 확인:

yarn --version
# 1.7.0

5단계 - Ghost-CLI 설치

Ghost-CLI는 Ghost를 쉽게 설치하고 업데이트할 수 있는 명령줄 인터페이스(CLI) 도구입니다. 데이터베이스를 설정하고, NGINX를 역방향 프록시로 구성하고, Let’s Encrypt CA를 사용하여 TLS/SSL 보안을 활성화하고, SSL을 자동으로 갱신하고, Ghost를 시스템 서비스로 초기화합니다. Ghost-CLI는 npm 또는 yarn을 통해 설치할 수 있는 npm 모듈입니다.

Ghost-CLI 도구 다운로드 및 설치:

sudo npm install -g 

Ghost-CLI 버전 확인:

ghost version
# Ghost-CLI version: 1.8.1

Ghost를 설치하거나 업데이트할 때 잠재적인 문제에 대해 시스템 문제를 해결하십시오.

ghost doctor install

6단계 - 고스트 설치

다음으로 Ghost-CLI 도구를 사용하여 Ghost를 설치합니다.

먼저 빈 문서 루트 디렉터리를 만듭니다.

sudo mkdir -p /var/www/example.com

/var/www/example.com 디렉토리의 소유권을 생성한 sudo 권한이 있는 루트가 아닌 사용자로 변경합니다. 이 예에서 johndoe는 다음을 수행합니다.

sudo chown johndoe:johndoe /var/www/example.com

설치 폴더에 올바른 권한이 있어야 합니다.

sudo chmod 755 /var/www/example.com

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

cd /var/www/example.com

파일 충돌을 방지하려면 디렉토리가 비어 있는지 확인하십시오.

ls -a

다음을 실행하여 프로덕션 모드에서 Ghost를 설치하세요.

ghost install

프롬프트에 따라 각 질문에 답하십시오.

? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: your_mysql_root_user_password_here
? Enter your Ghost database name: database_name_for_ghost
? Do you wish to set up "ghost" mysql user? yes ? Do you wish to set up Nginx? yes ? Do you wish to set up SSL? yes ? Enter your email (used for Let's Encrypt notifications) ? Do you wish to set up Systemd? yes ? Do you want to start Ghost? yes

설치 완료 후 실행

ghost ls

실행 중인 Ghost 프로세스를 보려면

앞으로 최신 버전이 출시될 때 Ghost 블로그를 업데이트하려면 다음을 실행하기만 하면 됩니다.

ghost update

Ghost 설치 디렉토리에서 명령을 내리면 Ghost-CLI가 모든 것을 처리합니다.

7단계 - Ghost 설정 완료

설정 프로세스를 완료하려면 블로그 URL 또는 IP 끝에 /ghost를 추가하여 Ghost 구성 페이지로 이동하세요. 이 예에서는 https://example.com/ghost를 사용합니다.

시작 화면에서 계정 만들기를 클릭합니다.

이메일을 입력하고 사용자, 비밀번호 및 블로그 제목을 만드십시오.

팀에 추가 구성원을 초대합니다. 이 단계를 건너뛰려면 나중에 하겠습니다. 내 블로그로 이동을 클릭합니다. 페이지 하단에.

Ghost 관리 영역을 탐색하여 첫 번째 게시물을 작성하거나 사이트 테마를 변경하거나 추가 설정을 구성하십시오.

축하해요! Ubuntu 18.04 LTS 서버에 Ghost 블로그 플랫폼을 성공적으로 설치하고 배포했습니다.