Ubuntu 18.04 LTS에서 Nginx로 Ghost Blog를 배포하는 방법
이 튜토리얼은 다음 OS 버전에 대해 존재합니다.
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(Bionic Beaver)
이 페이지에서
- 요구 사항\n
- 초기 단계
- 1단계 - Node.js 및 npm 설치
- 2단계 - MariaDB 서버 설치
- 3단계 - NGINX 설치
- 4단계 - Yarn 설치(선택사항)\n
- 5단계 - Ghost-CLI 설치
- 6단계 - Ghost 설치
- 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 블로그 플랫폼을 성공적으로 설치하고 배포했습니다.