Fedora 25에서 Ghost v0.11 LTS를 배포하는 방법
다른 시스템을 사용하십니까? Ghost는 201 년 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다.
Ghost 는 2013 릴리스 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다. 내용과 블로그에 중점을 둡니다. Ghost의 가장 매력적인 점은 간단하고 깨끗하며 반응이 빠른 디자인입니다. 휴대폰에서 블로그 게시물을 작성할 수 있습니다. Ghost의 컨텐츠는 마크 다운 언어를 사용하여 작성됩니다. 고스트는 개인 또는 소규모 작가 그룹에게 적합합니다.
이 안내서에서는 Let 's Encrypt , Certbot , Node.js , NPM , NGINX 및 MySQL을 사용하여 CentOS 7.3 VPS에서 보안 Ghost v0.11.x LTS 블로그 를 설정하고 배포 할 것 입니다.
CentOS 버전 확인 :
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
루트가 아닌 새 사용자를 작성하십시오 .
useradd -c "John Doe" johndoe && passwd johndoe
wheel
그룹 에 추가하여 수퍼 유저로 만드십시오 .
usermod -aG wheel johndoe
새로운 사용자로 전환 :
su - johndoe
운영 체제 소프트웨어를 업데이트하십시오.
sudo yum check-update || sudo yum update -y
시간대를 설정하십시오.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
개발 도구를 설치하십시오.
sudo yum groupinstall -y 'Development Tools'
Vim 텍스트 편집기를 설치하십시오.
sudo yum install -y vim
필요한 경우 시스템을 재부팅하십시오 :
sudo shutdown -r now
참고 :이 단계를 시작하기 전에 도메인에 대한 DNS 레코드를 설정했는지 확인 하십시오.
우리는 사용하려고 하자 암호화 CA 와 EFF 얻을의 Certbot 클라이언트 SSL / TLS의 우리의 유령 블로그에 대한 인증서를. 모든 인스턴스를 blog.domain.tld
도메인 이름 으로 바꾸는 것을 잊지 마십시오 .
EPEL (Extra Packages for Enterprise Linux) 저장소를 사용하십시오.
# Certbot is packaged in Extra Packages for Enterprise Linux (EPEL) repository. To use Certbot, you must first enable the EPEL repository.
sudo yum install -y epel-release
Python으로 만든 Certbot (이전의 Let 's Encrypt 클라이언트 ) 인증서 관리 소프트웨어를 설치하십시오 .
sudo yum install -y certbot
Certbot 버전 확인 :
certbot --version
# certbot 0.14.1
독립형 인증 방법 (플러그인)을 사용하여 RSA 인증서를 얻습니다 .
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --no-eff-email --agree-tos
# IMPORTANT NOTES:
# - Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/blog.domain.tld/fullchain.pem.
# Your cert will expire on YYYY-MM-DD. . . .
# . . .
이전 단계를 거친 후에는 인증서 와 개인 키 가 /etc/letsencrypt/live/blog.domain.tld
디렉토리에 있습니다.
참고 : Ghost는 현재 Node.js 버전 4.5+ 및 6.9+ 만 지원합니다.
Ghost는 Node.js를 기반으로합니다. 이 문서를 작성할 당시의 Ghost 권장 버전 을 설치하려고합니다 v6 Boron LTS
.
Node.js v6 LTS를 다운로드하여 설치하십시오.
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
Node.js 및 NPM 버전을 확인하십시오.
node -v && npm -v
# v6.11.2
# 3.10.10
기본적으로 Ghost는 구성이 필요없는 SQLite 데이터베이스를 사용하도록 구성되어 있습니다.
데이터베이스 구성을 변경하여 Ghost를 MySQL 데이터베이스와 함께 사용할 수도 있습니다. 먼저 데이터베이스와 사용자를 작성해야하며 기존 sqlite3 구성을 변경할 수 있습니다.
공식 MySQL Yum 저장소에서 최신 버전의 MySQL (현재 5.7 )을 다운로드하여 설치하십시오 .
cd /tmp
# Adding the MySQL Yum Repository
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum localinstall -y mysql57-community-release-el7-11.noarch.rpm
# Installing MySQL
sudo yum install -y mysql-community-server
MySQL 버전 확인 :
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
MySQL 서버를 시작하고 상태를 확인하십시오.
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL 버전 5.7 이상 root
은 설치 후 MySQL 사용자 의 임시 임의 비밀번호를 생성 하며 비밀번호는에있는 MySQL 오류 로그 파일에 저장됩니다 /var/log/mysqld.log
. 공개하려면 다음 명령을 사용하십시오.
sudo grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
스크립트를 실행 하여 데이터베이스를 약간 보호하십시오.
참고 : Password Validation Plugin이 설치되어 활성화되어 있으므로 사용자의 새 비밀번호
root
가 강력해야합니다 ( 대문자, 소문자, 숫자 및 특수 문자). 그리고 전체 비밀번호 길이는 8 자 이상이어야합니다. ). 완화하거나 플러그인을 완전히 비활성화하려면 ( 권장되지 않음 ) 공식 MySQL 설명서를 참조하십시오.
sudo mysql_secure_installation
루트 사용자로 MySQL에 로그인하십시오.
mysql -u root -p
# Enter password:
새로운 MySQL 데이터베이스와 사용자를 생성합니다 :
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
MySQL을 종료하십시오.
exit
공식 NGINX 저장소에서 최신 메인 라인 버전의 NGINX를 다운로드하여 설치하십시오 .
# Add the NGINX Yum Repository
sudo vim /etc/yum.repos.d/nginx_mainline.repo
# Copy/paste the following into /etc/yum.repos.d/nginx_mainline.repo
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
rm nginx_signing.key
sudo yum install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
NGINX 버전을 확인하여 설치되었는지 확인하십시오.
sudo nginx -v
# nginx version: nginx/1.13.3
상태 확인, NGINX 서비스 활성화 및 시작 (데몬) :
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
/etc/nginx/ssl
디렉토리를 작성 하고 새로운 Diffie-Hellman ( DH ) 매개 변수를 생성하십시오.
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
blog.domain.tld
가상 호스트의 로그 디렉토리를 작성하십시오 .
sudo mkdir -p /var/log/nginx/blog.domain.tld
NGINX를 HTTP ( S ) 리버스 프록시 서버로 구성하십시오.
sudo vim /etc/nginx/conf.d/ghost.conf
다음에 붙여 넣습니다 /etc/nginx/conf.d/ghost.conf
.
# domain: blog.domain.tld
# public: /var/www/ghost
upstream ghost_app {
server 127.0.0.1:2368;
keepalive 32;
}
server {
listen [::]:80 default_server;
listen 80 default_server;
listen [::]:443 ssl http2 default_server;
listen 443 ssl http2 default_server;
server_name blog.domain.tld;
root /var/www/ghost;
error_log /var/log/nginx/blog.domain.tld/error.log;
access_log /var/log/nginx/blog.domain.tld/access.log;
client_max_body_size 100M;
ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
ssl_dhparam ssl/dhparams-2048.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_buffer_size 4K;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50M;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
location / {
proxy_pass http://ghost_app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_hide_header X-Powered-By;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
구문 오류에 대해 NGINX 구성을 저장하고 테스트하십시오.
sudo nginx -t
NGINX 구성을 다시로드하십시오.
sudo systemctl reload nginx.service
참고 : 동일한 VPS에서 여러 Ghost 블로그를 호스팅하려면 각 Ghost 인스턴스가 별도의 포트에서 실행 중이어야합니다.
문서 루트 디렉토리를 작성하십시오.
sudo mkdir -p /var/www/
새로운 고스트 사용자를 생성합니다 :
sudo useradd -c 'Ghost application' ghost
고스트 다운로드 :
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
Ghost를 /var/www/ghost
디렉토리에 압축 해제하십시오 (권장 설치 위치).
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
새로운 고스트 디렉토리로 이동하십시오 :
cd /var/www/ghost
/var/www/ghost
디렉토리 의 소유권을 변경하십시오 .
sudo chown -R ghost:ghost .
새로운 ghost
사용자로 전환 :
sudo su - ghost
문서 루트로 이동하십시오 /var/www/ghost
.
cd /var/www/ghost
프로덕션 종속성이있는 Ghost 만 설치하십시오. 완료되면 Ghost가 설치됩니다.
npm install --production
구성 변경하여 유령 url
, mail
및 database
생산 개체 내부의 특성 config.js
파일 :
cp config.example.js config.js
vim /var/www/ghost/config.js
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
url: 'https://blog.domain.tld',
mail: {
transport: 'SMTP',
options: {
service: 'Mailgun',
auth: {
user: '',
pass: ''
}
}
},
database: {
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'your_database_user',
password: 'your_database_password',
database: 'your_database_name',
charset: 'utf8'
},
debug: false
},
// . . .
// . . .
참고 :
프로덕션 환경에서 Ghost를 시작하십시오.
npm start --production
이제 고스트가 실행됩니다. 블로그 프런트 엔드 및 관리 인터페이스는 모두 HTTPS로 보호되며 HTTP / 2도 작동합니다. 에서 브라우저를 열고 사이트를 방문 할 수 있습니다 https://blog.domain.tld
. blog.domain.tld
도메인 이름 으로 바꾸는 것을 잊지 마십시오 .
CTRL
+ 를 눌러 Ghost 프로세스를 C
종료하고 고스트 사용자 에서 처음에 작성한 루트 가 아닌 사용자로 종료 하십시오.
exit
VPS와의 터미널 세션을 닫으면 블로그도 다운됩니다. 그 좋지 않다. 이를 피하기 위해 systemd를 사용할 것입니다. 블로그를 연중 무휴 24 시간 유지합니다.
시스템 ghost.service
단위 파일을 작성 하십시오. sudo를 실행 sudo vim /etc/systemd/system/ghost.service
하고 아래 내용을 복사 / 붙여 넣기하십시오.
[Unit]
Description=Ghost - the professional publishing platform
Documentation=https://docs.ghost.org/v0.11.11/docs
After=network.target
[Service]
Type=simple
# Edit WorkingDirectory, User and Group as needed
WorkingDirectory=/var/www/ghost
User=ghost
Group=ghost
ExecStart=/bin/npm start --production
ExecStop=/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost
[Install]
WantedBy=multi-user.target
활성화 및 시작 ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
ghost.service
상태 확인 :
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
https://blog.domain.tld/ghost/
Ghost 관리 사용자로 이동하여 작성하십시오. 가능한 빨리 이것을하십시오!
그게 다야. 이제 모든 기능을 갖춘 Ghost 블로그가 있습니다. 서버는 클라이언트가 지원할 때 HTTP / 2를 통해 컨텐츠를 제공합니다. Casper 라는 기본 Ghost 테마 를 사용자 정의 테마로 변경하려면 테마를 /var/www/ghost/content/themes
폴더에 다운로드하여 압축을 풀고 에 위치한 Ghost 관리 인터페이스를 통해 테마를 선택하면됩니다 https://blog.domain.tld/ghost
.
다른 시스템을 사용하십니까? Ghost는 201 년 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다.
소개 WordPress는 인터넷에서 지배적 인 컨텐츠 관리 시스템입니다. 블로그에서 동적 컨텐츠가있는 복잡한 웹 사이트에 이르기까지 모든 것을 지원합니다.
다른 시스템을 사용하십니까? Fork는 PHP로 작성된 오픈 소스 CMS입니다. 포크 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드는 Fork CM을 설치하는 방법을 보여줍니다.
Vultr 가상 서버의 일반적인 사용법은 Wordpress 웹 사이트를 호스팅하는 것입니다. 이 가이드는 scratc에서 가상 서버의 구성을 자동화하는 방법을 보여줍니다
Ghost는 Ember.js 관리 클라이언트, JSON API 및 Handlebars.js로 구동되는 테마 API를 사용하여 Node.js를 기반으로하는 최신 오픈 소스 출판 플랫폼입니다. 고스
다른 시스템을 사용하십니까? Ghost는 201 년 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다.
Vultr 인스턴스는 WordPress 블로그를 실행하는 좋은 방법이지만 WordPress의 확장 기능은 전자 상거래 플러그인 인 WooCommerce입니다.
다른 시스템을 사용하십니까? Fork는 PHP로 작성된 오픈 소스 CMS입니다. 포크 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드는 Fork CM을 설치하는 방법을 보여줍니다.
다른 시스템을 사용하십니까? MODX Revolution은 빠르고 유연하며 확장 가능하며 무료이며 오픈 소스 인 엔터프라이즈 급 CMS (Content Management System)로 작성된 i
다른 시스템을 사용하십니까? MODX Revolution은 PHP로 작성된 빠르고 유연하며 확장 가능한 오픈 소스 엔터프라이즈 급 CMS (Content Management System)입니다. 내가
다른 시스템을 사용하십니까? Fork는 PHP로 작성된 오픈 소스 CMS입니다. 포크 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드는 Fork CM을 설치하는 방법을 보여줍니다.
다른 시스템을 사용하십니까? MODX Revolution은 빠르고 유연하며 확장 가능하며 무료이며 오픈 소스 인 엔터프라이즈 급 CMS (Content Management System)로 작성된 i
다른 시스템을 사용하십니까? Ghost는 2013 릴리스 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다. 나는
다른 시스템을 사용하십니까? Ghost는 2013 릴리스 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다. 나는
다른 시스템을 사용하십니까? Dotclear는 매우 간단한 블로그 엔진입니다. 오픈 소스이며 사용하기 쉽습니다. 이 튜토리얼은 설치를 진행합니다.
다른 시스템을 사용하십니까? MODX Revolution은 빠르고 유연하며 확장 가능하며 무료이며 오픈 소스 인 엔터프라이즈 급 CMS (Content Management System)로 작성된 i
고스트는 워드 프레스와 경쟁 할 수있는 가장 최신의 신생 기업입니다. Ghost 개발자는 두 가지 모두를 사용하기로 결정했기 때문에 테마 개발이 쉽고 빠릅니다.
소개 OpenBSD 설치를 기본값에 가깝게 유지하고 추가 된 패키지가 많을수록 더 안전합니다. 더 많은 commo 동안
다른 시스템을 사용하십니까? MODX Revolution은 빠르고 유연하며 확장 가능하며 무료이며 오픈 소스 인 엔터프라이즈 급 CMS (Content Management System)로 작성된 i
다른 시스템을 사용하십니까? Ghost는 201 년 이후 개발자와 일반 사용자 사이에서 인기를 얻고있는 오픈 소스 블로그 플랫폼입니다.
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.
Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능
인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.
최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.
빅데이터의 13가지 상용 데이터 추출 도구
우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true
과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.
26가지 빅 데이터 분석 기법에 대한 통찰: 1부
의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.