介绍Ghost是一个轻量级的开源博客平台,易于使用。 Ghost是完全可定制的,有许多主题可用。 在本教程中,您将在CentOS 7上设置Ghost。您还将Nginx配置为对Ghost的代理请求,并将Ghost作为系统服务在后台运行。 先决条件要完成本教程,您将需要:
第1步 – 安装Ghost首先我们需要安装Ghost。 我们将Ghost放在/var/www/ghost目录中,这是推荐的安装位置。 从Ghost的GitHub存储库中使用wget下载最新版本的Ghost: wget https://ghost.org/zip/ghost-latest.zip 要解压缩存档,请首先使用程序包管理器安装unzip程序。 在安装新程序之前,确保系统是最新的,所以更新软件包并使用以下命令安装unzip总是一个好主意: sudo yum update -y sudo yum install unzip -y 上述命令中的-y标志会自动更新和安装软件包,而不需要用户的确认。 安装unzip ,将下载的软件包解压缩到/var/www/ghost目录。 首先,创建/var/www文件夹,然后解压缩文件: sudo mkdir /var/www sudo unzip -d /var/www/ghost ghost-latest.zip 切换到/var/www/ghost/目录: cd /var/www/ghost/ 然后安装Ghost依赖关系,但只需要生产。 这跳过了只有开发Ghost的人才需要的任何依赖。 sudo npm install --production 一旦这个过程完成,Ghost就会安装,但我们需要先设置Ghost才能启动它。 第2步 – 配置GhostGhost使用位于/var/www/ghost/config.js的配置文件。 此文件不存在于开箱即用,但Ghost安装包含文件config.example.js ,我们将以此作为起点。 将示例配置文件复制到/var/www/ghost/config.js 。 我们将复制文件,而不是移动它,以便我们有一个原始配置文件的副本,以防我们需要恢复您的更改。 sudo cp config.example.js config.js 打开文件进行编辑: sudo vi config.js 我们必须更改Ghost使用的URL。 如果我们没有,博客上的链接将访问者访问my-ghost-blog.com 。将url字段的值更改为您的域名,或者如果您现在不想使用域,请将其更改为服务器的IP地址。
/var/www/ghost/config.js
... config = { // ### Production // When running Ghost in the wild, use the production environment // Configure your URL and mail settings here production: { url: 'http://your_domain_or_ip_address', mail: {}, ... url值必须以URL的形式,如http:// example.com或http:// 11.11.11.11 。 如果此值格式不正确,Ghost将无法启动。 Ghost可以在没有邮件设置的情况下运行; 如果您需要支持Ghost用户的密码恢复,那么它们是必需的。我们将在本教程中跳过配置此设置。 您可以通过官方网站上的配置详细信息进一步自定义Ghost。 保存文件并退出编辑器。 仍然在/var/www/ghost目录中,使用以下命令启动Ghost: sudo npm start --production 输出应类似于以下内容: > ghost@0.11.7 start /var/www/ghost > node index WARNING: Ghost is attempting to use a direct method to send email. It is recommended that you explicitly configure an email service. Help and documentation can be found at http://support.ghost.org/mail. Migrations: Creating tables... ... Ghost is running in production... Your blog is now available on http://your_domain_or_ip_address Ctrl+C to shut down Ghost正在监听端口2368 ,而不是在公共网络接口上监听,所以你将无法直接访问它。 让我们在Ghost面前设置Nginx。 第3步 – 配置Nginx到Ghost的代理请求下一步是设置Nginx来服务我们的Ghost博客。 这将允许端口80上的连接连接到Ghost正在运行的端口,所以人们可以访问您的Ghost博客,而不在地址末尾添加:2368 。 它还增加了一个间接层,并设置您扩展您的博客,如果它增长。 如果Ghost仍然在您的终端上运行,请按CTRL+C关闭Ghost实例,然后再继续。 现在我们来配置Nginx。 首先切换到/etc/nginx目录: cd /etc/nginx/ 如果从CentOS EPEL存储库中安装了Nginx,如前提条件所示,您将不具有用于管理网站配置的sites-available和sites-enabled站点的目录。 我们来创建它们: sudo mkdir sites-available sudo mkdir sites-enabled 接下来,在/etc/nginx/sites-available/ called ghost中创建一个新文件: sudo vi /etc/nginx/sites-available/ghost 将以下配置置于文件中,并将your_domain_or_ip_address更改为您的域名,或者如果您没有域, your_domain_or_ip_address其更改为服务器的IP地址:
/ etc / nginx / sites-available / ghost
server { listen 80; server_name your_domain_or_ip_address; location / { proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:2368; } } 此基本配置会将此服务器的所有请求发送到运行在端口2368上的Ghost博客,并设置适当的HTTP标头,以便在查看Ghost日志时,您将看到访问者的原始IP地址。 您可以在了解Nginx HTTP代理,负载平衡,缓冲和缓存中了解有关此配置的更多信息。 保存文件,退出编辑器,并通过在/etc/nginx/sites-enabled目录中为此文件创建符号链接来/etc/nginx/sites-enabled配置: sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost 在修改默认的Nginx配置文件并将其配置文件包含在sites-enabled了sites-enabled文件夹中之前,Nginx将不会使用此新配置。 另外,我们必须禁用默认站点。 在编辑器中打开nginx.conf文件: sudo vi nginx.conf 在http块中包含以下行以将配置文件包含在sites-enabled了sites-enabled文件夹中:
/etc/nginx/nginx.conf
http { ... # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; 然后完全注释掉在http块内找到的server块:
/etc/nginx/nginx.conf
... # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; # server { # listen 80 default_server; # listen [::]:80 default_server; # server_name _; # root /usr/share/nginx/html; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } ... ... 保存文件并退出编辑器。 测试配置以确保没有问题: sudo nginx -t 如果一切正确,您将看到以下输出: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 如果您看到任何错误,请修复它们并重新测试配置。 使用工作配置文件,重新启动Nginx以应用更改: sudo systemctl restart nginx 在我们再次启动Ghost之前,让我们创建一个新的用户帐户来运行Ghost。 第4步 – 以独立的用户身份运行Ghost为了提高安全性,我们将在一个单独的用户帐户下运行Ghost。 该用户只能访问/var/www/ghost目录及其主文件夹。 这样,如果Ghost被盗用,可以最大限度地减少系统的潜在损害。 使用以下命令创建一个新的ghost用户: sudo adduser --shell /bin/bash ghost 然后让这个新用户成为/var/www/ghost目录的所有者: sudo chown -R ghost:ghost /var/www/ghost/ 现在让我们确保这个用户可以运行Ghost。 以ghost用户身份登录: sudo su - ghost 现在在此用户下启动Ghost,确保运行: cd /var/www/ghost npm start --production 您应该能够访问您的博客http:// your_domain_or_ip_address 。 Nginx会将请求发送给您的Ghost实例。 事情工作很好,但是让我们来确保Ghost在未来顺利运行。 第5步 – 运行Ghost作为系统服务目前,Ghost正在我们的终端运行。 如果我们注销,我们的博客将关闭。 让我们让Ghost在后台运行,并确保系统重新启动时重新启动。 为此,我们将创建一个systemd单元文件,指定systemd应如何管理Ghost。 按CTRL+C停止Ghost,然后按CTRL+D退出ghost用户帐户。 创建一个新文件来保存systemd单元文件的定义: sudo vi /etc/systemd/system/ghost.service 将以下配置添加到文件中,该文件定义服务的名称,服务的组和用户以及应如何开始的信息:
/etc/systemd/system/ghost.service
[Unit] Description=Ghost After=network.target [Service] Type=simple WorkingDirectory=/var/www/ghost 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单元文件,请查看“了解系统单位和单位文件”这一教程, 这些文件应该可以快速加快。 保存文件并退出编辑器。 然后启用并启动服务: sudo systemctl enable ghost.service sudo sytemctl start ghost.service 再次访问http:// your_domain_or_ip_address ,你会看到你的博客。 结论在本教程中,您安装了Ghost,将Nginx配置为代理对Ghost的请求,并确保Ghost作为系统服务运行。不过,还有很多你可以用Ghost做的。 看看这些教程,了解有关如何使用新博客的更多信息:
(责任编辑:IT) |