在CentOS 8/RHEL 8上安装和配置Ghost CMS
本指南将详细说明用于在CentOS 8/RHEL 8 Linux服务器上安装Ghost CMS的步骤。 Ghost是一个开源内容管理系统,专为初学者,专业博客作者和文档团队而设计。 Ghost CMS完全支持Markdown,并提供易于使用的Web界面进行管理和内容生成。
对于Ubuntu,请检查如何在Ubuntu上安装Ghost CMS。
在本文中,我们将使用Nginx作为反向代理在CentOS 8上安装Ghost。我在全新安装的CentOS 8上执行此设置。建议这样做,以确保我们不会破坏生产环境。
在CentOS/RHEL 8上安装Ghost
以下是在RHEL/CentOS 8上安装Ghost时通常遵循的步骤。在CentOS 8/RHEL 8上执行Ghost的安装时,请喝杯咖啡。
更新CentOS系统
我们总是从yum软件包更新开始安装。
sudo dnf -y update sudo reboot
重新引导后,将SELinux设置为许可模式。
sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
添加EPEL存储库
一些依赖包将从EPEL存储库中提取。通过下面的命令执行将其添加到系统中。
sudo dnf -y install epel-release
安装MySQL/MariaDB数据库服务器
为Ghost CMS安装数据库服务器。它可以是MySQL或者MariaDB数据库服务器。我们有设置MySQL或者MariaDB数据库服务器的指南。
在CentOS/RHEL 8上安装MariaDB
如何在CentOS/RHEL 8上安装MySQL 8
完成后,为我们打算添加的幽灵博客创建数据库:
$mysql -u root -p CREATE USER theitroad@localhost IDENTIFIED BY "StrongPassword"; CREATE DATABASE ghost; GRANT ALL ON ghost.* TO theitroad@localhost; FLUSH PRIVILEGES; QUIT
安装Node.js
Ghost的核心是用Node.js编写的。 npm软件包管理器将作为依赖项安装。
sudo dnf -y install @nodejs
确认节点版本
$node -v v10.14.1
可以通过pm2进程管理器控制Ghost进程。让我们确保将pm2安装在系统中。
sudo npm install pm2 -g
成功的安装输出;
安装Ghost-CLI
创建Ghost管理员用户:
sudo useradd ghostadmin sudo passwd ghostadmin sudo usermod -aG wheel ghostadmin
现在,我们需要安装packageghost-cli,它提供了ghost命令。
$sudo npm i -g ghost-cli /usr/bin/ghost -> /usr/lib/node_modules/ghost-cli/bin/ghost + theitroad@localhost added 364 packages from 191 contributors in 16.712s $which ghost /usr/bin/ghost
在CentOS/RHEL 8上配置Ghost
为Ghost数据创建一个新文件夹:
请注意:在/root文件夹中安装Ghost无法正常工作,并且会导致安装程序损坏!在/home/{user}文件夹中安装Ghost无法正常工作,并且会导致设置错误!请仅使用/var/www/{folder}因为它具有正确的权限。
因此,让我们创建以下目录:
sudo mkdir -p /var/www/ghost sudo chown ghostadmin:ghostadmin /var/www/ghost sudo chmod 775 /var/www/ghost
创建Ghost项目(博客)文件夹:
sudo su - ghostadmin cd /var/www/ghost mkdir blog.example.com cd blog.example.com
其中:blog.example.com是包含站点/博客文件的目录。/var/www/ghost是博客目录的路径
如果要使用sqlite数据库安装Ghost,请运行:
ghost install --db=sqlite3
对于开发环境,我们可以执行以下操作:
ghost install local
否则使用MySQL数据库,运行:
$ghost install
提供服务URL,数据库连接详细信息,并同意配置Systemd。
✔ Finishing install process ? Enter your blog URL: http://localhost:2368 ? Enter your MySQL hostname: localhost ? Enter your MySQL username: ghost ? Enter your MySQL password: [hidden] ? Enter your Ghost database name: ghost ? Do you wish to set up Systemd? Yes
这是我的安装输出:
通过运行以下命令确认服务状态:
$ghost ls
$systemctl status ghost_blog-theitroad-com
● ghost_blog-theitroad-com.service - Ghost systemd service for blog: blog-theitroad-com
Loaded: loaded (/var/www/ghost/blog.theitroad.local/system/files/ghost_blog-theitroad-com.service; indirect; vendor preset: disab>
Active: active (running) since Sat 2019-10-05 19:05:48 EAT; 10min ago
Docs: https://docs.ghost.org
Main PID: 12669 (ghost run)
Tasks: 18 (limit: 11512)
Memory: 142.9M
CGroup: /system.slice/ghost_blog-theitroad-com.service
├─12669 ghost run
└─12678 /usr/bin/node current/index.js
...............................................................
例:
配置Nginx代理
安装Nginx
sudo dnf install @nginx
为Ghost创建Nginx配置文件。
sudo vi /etc/nginx/conf.d/ghost.conf
添加配置。
server {
listen 80;
listen [::]:80;
server_name blog.example.com;
root /var/www/ghost/blog.example.com/system/nginx-root;
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}
将Blog.example.com替换为Ghost站点URL/var/www/ghost/blog.example.com替换为站点的路径DocumentRoothttp://127.0.0.1:2368并替换为本地Ghost侦听URL
Nginx配置不应包含任何错误。
$sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
确认节点服务后端处于活动状态。
# netstat -tunlp | grep 2368 tcp 0 0 127.0.0.1:2368 0.0.0.0:* LISTEN 12678/node
确认后,重新启动nginx服务。
sudo systemctl enable --now nginx sudo systemctl restart nginx
由于执行了命令,因此有望成功重启。
$systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-10-06 12:05:47 EAT; 29s ago
Process: 21817 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 21814 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 21812 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 21819 (nginx)
Tasks: 2 (limit: 11512)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─21819 nginx: master process /usr/sbin/nginx
└─21820 nginx: worker process
Oct 06 12:05:47 centos8.novalocal systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Oct 06 12:05:47 centos8.novalocal systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 06 12:05:47 centos8.novalocal nginx[21814]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 06 12:05:47 centos8.novalocal nginx[21814]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Oct 06 12:05:47 centos8.novalocal systemd[1]: Started The nginx HTTP and reverse proxy server.
在防火墙中打开http和https服务端口。
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
在CentOS 8/RHEL 8上访问Ghost CMS仪表板
现在,设置已准备就绪,可以访问Ghost Web管理界面,我们可以其中上传主题,更改设置并使用markdown语法编写内容。
要完成出版物的设置,请访问:http://blog.example.com/ghost。
通过单击创建帐户来创建第一个Ghost管理员/发布者帐户。
(可选)邀请其他成员。我们将在少数几个地方访问Ghost CMS仪表板。
Ghost基本管理命令
这是大多数Ghost管理操作所需的命令。
日志目录:/content/logs /
$ghost start:启动start
$ghost restart:重新启动ghost
$ghost run:测试ghost是否可以成功启动
$ghost uninstall:卸载ghost
$ghost update:升级update
$ghost update force:如果有错误,则强制升级
$ghost update rollback:如果升级失败,请还原到早期版本
$sudo npm i -gtheitroad @ localhost:升级Ghost-CLI
$ghost ssl-renew:续订ssl证书
$ls ./system/files/*.conf:系统配置文件
$ghost setup nginx:手动设置nginx
$ghost setup nginx ssl:使用SSL设置nginx

