在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