找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2149|回复: 1

如何在Fedora 25上部署Ghostv0.11 LTS

[复制链接]
Ghost是一个开源的博客平台,自2013年发布以来,它在开发者和普通用户中越来越受欢迎。它把重点放在内容和博客上。Ghost最吸引人的地方在于它简单、干净、反应灵敏的设计。你可以从手机上写博客文章。Ghost的内容是使用Markdown语言编写的。“Ghost”完全适合于个人或小群体的作家。
在本指南中,我们将设置并部署一个安全的Ghostv0.11。xlts在Fedora 25 VPS上使用Let ' s加密,Certbot,Node。js,NPM,NGINX和MySQL。


要求
注册(购买)域名。

Fedora 25服务器实例,最小1GB RAM。

Sudo用户。

您可能必须使用 semanage port -a -t http_port_t -p tcp 2368.打开端口2368

在你开始之前

1、检查Fedora版本:
cat /etc/fedora-release
# Fedora release 25 (Twenty Five)


2、创建一个新的non-root用户:
useradd -c "John Doe" johndoe && passwd johndoe
3、通过将其添加到wheel 组,使其成为超级用户:
usermod -aG wheel johndoe
4、切换到新用户:
su - johndoe
5、更新操作系统的软件:
sudo dnf check-update || sudo dnf upgrade -y
6、设置时区:
timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'
7、安装开发工具:
sudo dnf install @development-tools -y
8、安装Vim文本编辑器和Wget:
sudo dnf install -y vim wget
9、如果需要重新启动系统:
sudo shutdown -r now
安装Certbot
注意:在开始此步骤之前,请确保您已经为您的域设置了DNS记录。
我们将使用Let ' s加密CA和EFF的Certbot客户端为我们的Ghost blog获取SSL / TLS证书。不要忘记替换https://www.iwagong.com的所有实例。tld与您的域名。
1、安装Certbot(以前让我们加密客户端)用Python制作的证书管理软件:
sudo dnf install -y certbot
2、检查Certbot版本:
certbot --version# certbot 0.14.1
3、使用独立认证方法获取RSA证书(插件):
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email admin@domain.tld --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 /生活/ blog.domain。tld目录。

安装Node.js和NPM
注意: Ghost目前支持节点。js版本4.5 + 6.9 +。
Ghost是建立在node . js.我们要安装v6的推荐版本GhostLTSBoron在撰写本文时。
1、下载并安装节点.js v6 LTS:
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -sudo dnf install -y nodejs
2、检查节点.js和NPM版本:
node -v && npm -v# v6.11.2# 3.10.10
安装MySQL
默认情况下,Ghost被配置为使用一个SQLite数据库,它不需要配置。
另外,也可以通过更改数据库配置来使用一个MySQL数据库。您必须先创建一个数据库和用户,然后才能更改现有的sqlite3配置。
从官方MySQL Dnf库下载并安装最新版本的MySQL(当前5.7):
cd /tmp # Adding the MySQL dnf Repositorywget https://dev.mysql.com/get/mysql5 ... 5-10.noarch.rpmsudo dnf install -y mysql57-community-release-fc25-10.noarch.rpm # Installing MySQLsudo dnf install -y mysql-community-server
2、检查MySQL版本:
mysql --version# mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
3、启动MySQL服务器并检查其状态:
sudo systemctl start mysqld.servicesudo systemctl status mysqld.service
4、MySQL版本5.7或更高版本为MySQL根用户生成临时随机密码,安装和密码存储在MySQL错误日志文件中,位于/ var/ log/mysqld.log。要显示它,请使用以下命令:
sudo grep 'temporary password' /var/log/mysqld.log
5、运行mysql_secure_installation脚本以确保您的数据库有一点:
注意:密码验证插件被安装和启用,所以你的新密码为root用户需要强大(一个大写字母,一个小写字母,一个数字,一个特殊字符,以及总密码长度至少为8个字符)。如果您想要完全放松或禁用插件(不推荐),请参考官方MySQL文档来了解如何做到这一点。
sudo mysql_secure_installation
6、作为根用户登录MySQL:
mysql -u root -p# Enter password:
7、创建一个新的MySQL数据库和用户:
create database dbname;grant all on dbname.* to 'user' identified by 'password';
8、退出MySQL:
exit
安装NGINX
1、下载并安装NGINX:
sudo dnf install -y nginx
2、检查NGINX版本是否安装了它:
sudo nginx -v# nginx version: nginx/1.10.2
3、检查状态,启用和启动NGINX服务(守护进程):
sudo systemctl status nginx.service # inactive (dead)sudo systemctl enable nginx.servicesudo systemctl start nginx.service
4、创建/ etc/ nginx/ssl目录并生成一个新的diffie- hellman(DH)参数:
sudo mkdir -p /etc/nginx/sslsudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
5、为blog.domain创建日志目录。tld虚拟主机:
sudo mkdir -p /var/log/nginx/blog.domain.tld
6、配置NGINX作为HTTP(S)反向代理服务器:
sudo vim /etc/nginx/conf.d/ghost.conf
7、在/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;    listen 80;    listen [::]:443 ssl http2;    listen 443 ssl http2;     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;    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-SHA384HE-RSA-AES128-GCM-SHA256HE-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-SHAHE-RSA-AES128-SHA256HE-RSA-AES128-SHAHE-RSA-AES256-SHA256HE-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-SHAES-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 "";    }}
8、保存和测试NGINX配置的语法错误:
sudo nginx -t
9、重载NGINX配置:
sudo systemctl reload nginx.service
安装Ghost
注意:如果您想在相同的VPS上托管多个Ghost博客,则每个Ghost实例必须在一个单独的端口上运行。
1、创建文档根目录:
sudo mkdir -p /var/ www.iwagong.com
2、创建一个新的Ghost用户:
sudo useradd -c 'Ghost application' ghost
3、下载Ghost
4、解压到/ var/www/ghost目录(推荐安装位置):
sudo unzip -uo ghost.zip -d /var/www/ghostrm ghost.zip
5、移动到新的Ghost目录:
cd /var/www/ghost
6、更改/ var/ www/ghost目录的所有权:
sudo chown -R ghost:ghost .
7、切换到新的ghost用户:
sudo su - ghost
8、导航到文档根/var/www/ghost:
cd /var/www/ghost
9、仅使用生产依赖项安装Ghost。完成后,就安装了Ghost:
npm install --production
10、通过更改配置中的生产对象的url、邮件和数据库属性来配置Ghost。js文件:
cp config.example.js config.jsvim /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 hereproduction: {    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文档如何做到这一点。

11、在生产环境中启动Ghost:
npm start --production
Ghost现在正在运行。博客前端和管理界面都使用HTTPS加密,而HTTP / 2也在工作。你可以在https://blog.domain.tld打开你的浏览器和访问网站。别忘了替换blog.domain。tld与您的域名。
12、通过按CTRL + C关闭Ghost进程,从Ghost用户退出到您在开始创建的非root用户:
exit
运行Ghost作为系统服务
如果你用VPS结束你的终端会话,你的博客也会被关闭。那不是很好。为了避免这种情况,我们将使用systemd。它将使我们的博客每天24小时不间断。

创建Ghost服务systemd单元文件。运行sudo sudo vim /etc/systemd/system/ghost.服务及复制/粘贴以下内容:
[Unit]Description=Ghost - the professional publishing platformDocumentation=https://docs.ghost.org/v0.11.11/docsAfter=network.target [Service]Type=simple# Edit WorkingDirectory, User and Group as neededWorkingDirectory=/var/www/ghostUser=ghostGroup=ghostExecStart=/usr/bin/npm start --productionExecStop=/usr/bin/npm stop --productionRestart=alwaysSyslogIdentifier=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传递内容。如果你想改变默认的ghost小精灵一个自定义一个主题,主题你可以下载并解压缩到/var/www/ghost/content/themes文件夹并选择通过ghost管理界面,位于https://blog.domain.tld/ghost


我的恩山、我的无线 The best wifi forum is right here.
我还以为是Symantec Ghost呢...
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 02:05

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表