웹사이트 검색

Ubuntu 16.04에서 Apache 및 SSL을 사용하여 Ghost Blog 소프트웨어를 설치하는 방법


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

  • 우분투 16.04(Xenial Xerus)
  • 우분투 15.10(Wily Werewolf)

이 페이지에서

  1. 전제 조건
  2. 1단계 - Ubuntu에 Node.js 설치
  3. 2단계 - Ghost Blog 설치
  4. 3단계 - Ghost 구성
  5. 4단계 - Apache 및 Ghost VirtualHost 설치
  6. 5단계 - Ghost용 SSL 활성화\n
  7. 테스트
  8. 결론

Ghost는 아름답게 디자인되고 사용하기 쉬운 강력한 오픈 소스 출판 및 블로그 플랫폼입니다. Ghost는 자바스크립트로 작성되었으며 node.js를 런타임 환경으로 사용합니다. 첫 번째 Ghost 버전은 MIT 라이선스에 따라 2013년에 출시되었으며 지속적으로 업데이트됩니다. 이 가이드에서는 Ubuntu 16.04에서 Ghost Blog 소프트웨어, Node.js 및 Apache를 SSL 프록시 서버로 설치하는 방법을 보여줍니다.

Nodejs는 서버 측 웹 애플리케이션 개발을 위해 Chrome V8 자바스크립트 엔진(v4)에 구축된 오픈소스 자바스크립트 런타임입니다. Nodejs는 OS X, Microsoft Windows, Linux 및 FreeBSD에서 실행할 수 있는 교차 플랫폼 런타임입니다. 실시간 웹 애플리케이션을 위해 가볍고 효율적으로 만드는 이벤트 기반 아키텍처 및 비차단 I/O 모델을 제공합니다. Node.js 프로젝트는 Ryan Dahl이 2009년에 시작하여 현재 버전 6.5.0(LTS)에 도달했습니다.

전제 조건

  • 우분투 16.04
  • 루트 권한\n

이 튜토리얼에서 우리가 할 것:

  • Node.js 설치
  • 고스트 설치
  • Ghost 구성
  • Apache 설치 및 Ghost VirtualHost 추가
  • Ghost용 SSL 활성화\n

1단계 - Ubuntu에 Node.js 설치

이 튜토리얼에서는 nodejs v4.x를 사용합니다. Nodejs는 소스에서 설치 또는 Ubuntu 저장소에서 설치와 같은 다양한 방법으로 설치할 수 있습니다. 설치를 위해 nodesecure https://deb.nodesource.com/node_4.x의 nodejs 리포지토리를 사용하겠습니다. 여기에는 최신 소프트웨어가 포함되어 있으며 리포지토리를 사용하면 node.js를 쉽게 업데이트할 수 있습니다. 나중에.

아래 명령어를 사용하여 nodesource 저장소 키를 설치합니다.

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

그런 다음 아래 명령어를 실행하여 nodejs 저장소를 추가합니다.

sudo echo 'deb https://deb.nodesource.com/node_4.x xenial main' > /etc/apt/sources.list.d/nodesource.list
sudo echo 'deb-src https://deb.nodesource.com/node_4.x xenial main' >> /etc/apt/sources.list.d/nodesource.list

저장소를 업데이트합니다.

sudo apt-get update

이제 서버에 node.js와 해당 종속 항목을 설치하는 "nodejs" 패키지를 설치할 수 있습니다.

sudo apt-get install -y nodejs

이제 nodejs 버전을 확인하여 설치가 성공했는지 확인하십시오.

node --version

npm 버전 확인:

npm --version

npm은 노드 프로그램을 설치, 게시 및 관리하는 패키지 관리자입니다.

2단계 - 고스트 블로그 설치

우리는 "/var/www/" 디렉토리에 고스트를 설치하고 최신 버전의 고스트를 사용할 것입니다. /var에 새 디렉토리 "www"를 만들고 "cd"로 입력하세요.

mkdir -p /var/www/
cd /var/www/

wget 명령으로 Ghost를 다운로드한 다음 "ghostblog"라는 디렉토리에 압축을 풉니다.

wget https://ghost.org/zip/ghost-latest.zip
unzip -d ghostblog ghost-latest.zip

참고: -d : 자동으로 디렉토리를 생성합니다.

그런 다음 ghostblog 디렉토리로 이동하여 npm 명령을 사용하여 Ghost를 설치합니다.

cd ghostblog/
sudo npm install --production

3단계 - 고스트 구성

ghostblog 디렉토리로 이동한 다음 구성 샘플 파일을 "config.js"에 복사하십시오.

cd /var/www/ghostblog/
cp config.example.js config.js

다음으로 새 사용자 "ghost"를 추가합니다. 이 사용자는 Ghost를 실행하라는 소송을 당할 것입니다.

useradd -d /var/www -s /bin/bash ghost
passwd ghost
TYPE NEW PASSWORD FOR ghost USER

메모:

-d = /var/www/에서 고스트 사용자의 홈 디렉토리를 정의합니다.

-s = 고스트 사용자의 쉘을 정의합니다.

이제 고스트 설치 디렉토리의 소유자를 "ghost" 사용자로 변경하십시오.

chown -R ghost:ghost /var/www/ghostblog

고스트 사용자로 npm 명령을 실행하여 고스트 블로그를 테스트합니다. 사용자 ghost로 로그인하십시오:

su - ghost

설치 디렉토리로 이동하여 Ghost를 시작하십시오.

cd ghostblog/
npm start --production

Ghost는 포트 2368로 localhost에 설치되어 실행 중입니다. curl 명령으로 확인할 수 있습니다.

curl -I localhost:2368

고스트가 실행 중인 것을 볼 수 있습니다 - HTTP/1.1 200 OK.

고스트를 더 쉽게 시작할 수 있도록 고스트를 서비스로 실행할 것입니다. "exit"를 입력하여 sudo/root 사용자로 돌아가서 "/lib/systemd/system/" 디렉토리에 "ghost.service"라는 새 파일을 만드십시오.

cd /lib/systemd/system/
vim ghost.service

아래에 systemd 스크립트를 붙여넣습니다.

[Unit]
Description=ghost
After=network.target

[Service]
Type=simple
# Ghost installation Directory
WorkingDirectory=/var/www/ghostblog
User=ghost
Group=ghost
ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost

[Install]
WantedBy=multi-user.target

다음으로 systemd 데몬을 다시 로드합니다.

systemctl daemon-reload

그런 다음 부팅 시 시작할 고스트를 추가하고 systemctl 명령으로 고스트를 시작합니다.

systemctl enable ghost
systemctl start ghost

포트 2368을 확인하여 Ghost가 실행 중인지 확인합니다.

netstat -plntu

4단계 - Apache 및 Ghost VirtualHost 설치

apt-get 명령으로 아파치를 설치합니다.

sudo apt-get install apache2

설치가 완료되면 "/etc/apache2/sites-available/" 디렉토리에 고스트 가상 호스트용 새 파일을 만듭니다.

sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf

아래 구성을 붙여넣습니다.

<VirtualHost *:80>
    #Domain Name
    ServerName ghostblog.me
    ServerAlias www.ghostblog.me

    #HTTP proxy/gateway server
    ProxyRequests off 
    ProxyPass / http://127.0.0.1:2368/ 
    ProxyPassReverse / http:/127.0.0.1:2368/     
</VirtualHost>

저장 및 종료.

아래와 같이 a2enmod 명령을 사용하여 apache에서 HTTP 프록시 모듈을 활성화합니다.

sudo a2enmod proxy proxy_http

마지막으로 Ghost 가상 호스트를 활성화한 다음 Apache를 다시 시작해야 합니다.

sudo a2ensite ghostblog
sudo systemctl restart apache2

고스트 재시작:

sudo systemctl restart ghost

도메인을 방문하여 테스트: http://ghostblog.me

5단계 - Ghost용 SSL 활성화

Apache에서 SSL을 활성화하려면 OpenSSL 라이브러리가 시스템에 설치되어 있는지 확인하십시오. "/etc/apache2/certs" 디렉토리에 새 키와 crt 파일을 생성합니다. 먼저 새 디렉터리 인증서를 만듭니다.

sudo mkdir -p /etc/apache2/certs

그리고 아래 명령으로 인증서 키를 생성합니다.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/certs/ghostblog.key -out /etc/apache2/certs/ghostblog.crt

인증서 파일의 권한을 변경하십시오.

sudo cd /etc/apache2/certs/
sudo chmod 600 *

그런 다음 "ghostblog.conf" 파일을 편집하여 고스트 가상 호스트에 SSL 구성을 추가합니다.

sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf

아래에 새 구성 스크립트를 붙여넣습니다.

<VirtualHost *:80>
    ServerName ghostblog.me
    ServerAlias www.ghostblog.me

    # Force http to https
    Redirect permanent / https://ghostblog.me/
#    ProxyRequests off 
#    ProxyPass / http://127.0.0.1:2368/ 
#    ProxyPassReverse / http:/127.0.0.1:2368/     
</VirtualHost>

<VirtualHost *:443>

   ServerName ghostblog.me

   SSLEngine on
   SSLCertificateFile /etc/apache2/certs/ghostblog.crt
   SSLCertificateKeyFile /etc/apache2/certs/ghostblog.key

   ProxyPass / http://127.0.0.1:2368/
   ProxyPassReverse / http:/127.0.0.1:2368/
   ProxyPreserveHost   On

   RequestHeader set X-Forwarded-Proto "https"

</VirtualHost>

파일을 저장하고 vim을 종료합니다.

OpenSSL apache 모듈을 활성화하고 apache를 다시 시작합니다.

sudo a2enmod ssl headers
sudo systemctl restart apache2

테스트

http://ghostblog.me를 방문하면 블로그의 HTTPS/SSL 사이트로 이동하게 됩니다.

apache 및 SSL을 사용하는 Ghost가 성공적으로 설치되었습니다.

결론

Nodejs는 서버 측 웹 애플리케이션을 구축하기 위한 오픈 소스 다중 플랫폼 자바스크립트 런타임입니다. 실시간 웹 애플리케이션에 가볍고 효율적입니다. Ghost는 Node.js용 Javascript로 작성된 블로그 플랫폼입니다. Ghost는 아름답게 디자인되었으며 사용자 친화적입니다. 직관적인 인터페이스로 이 블로그 시스템을 쉽게 사용할 수 있습니다. Ghost는 독립형으로 설치하거나 Apache 또는 Nginx와 같은 웹 서버와 함께 설치할 수 있습니다. OpenSSL로 Ghost를 보호할 수 있습니다. Apache 및 OpenSSL로 Ghost를 구성하는 것은 쉽습니다. Apache http_proxy 모듈을 설정하고 SSL 인증서를 생성하기만 하면 됩니다.