记一次在AWS上部署Ghost的经历
发布于 6 年前 作者 liuzhiguo11 2583 次浏览 来自 分享

##AWS的地址: http://liu-awesome.name/ ##运行环境 EC2镜像:Amazon Linux 2 AMI RDS引擎:MySQL 5.6.39 Node.js version:v8.11.2 Nginx version:nginx/1.14.0

##工具

  • Xshell 5
  • Navicat

##准备工作

  1. 创建EC2及RDS实例。(官方推荐ubuntu镜像,不过我用ubuntu16.04按官网文档操作,中间会报错,最后还是用了Amazon Linux 2 AMI)
  2. 添加EC2及RDS的安全组的入站IP及端口(小插曲是在公司建的RDS实例回家后Navicat就连不上数据库了,AWS好像会自动添加创建实例的IP,然后换IP当然就访问不了,我只编辑了EC2的安全组)

##安装部署

  1. Node.js安装 现在在linux下安装Node.js已经非常简单了,官方文档

1)选择镜像版本8.x

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

2)安装node.js

sudo yum -y install nodejs

2.Nginx安装 原始AMI镜像并没有Nginx的源,需要自己添加,参考了这篇文章CentOS 7 yum 安装 Nginx 1)添加Nginx镜像源

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2)安装Nginx

sudo yum install -y nginx

3)启动Nginx

sudo systemctl start nginx.service

3.安装ghost-cli

sudo npm i -g ghost-cli

4.ghost安装(参考 官方文档) 1)安装准备

//创建安装目录
sudo mkdir -p /var/www/ghost
//修改用户组,和官方文档不同的是这里直接使用了镜像的默认用户ec2-user,之前用ubuntu自己添加用户时出现了权限问题
sudo chown ec2-user:ec2-user /var/www/ghost
//设置读写权限
sudo chmod 775 /var/www/ghost

2)安装

//进入目录
cd /var/www/ghost
//安装  填写相关信息,会自动安装启动,host填EC2实例的域名或DNS
ghost install
//我这里在启动时报了个unknow的错误,之前同步数据库时也报了错
//我的启动方式 
sudo systemctl start ghost_ghost-local.service

3)Nginx 反向代理

编辑/etc/nginx/conf.d/default.conf

sudo vim /etc/nginx/conf.d/default.conf

找到location /修改为

location / {
    proxy_pass  http://localhost:2368;
}

重启Nginx

sudo systemctl restart nginx.service

5.访问镜像的DNS或域名 http://liu-awesome.name/

##遇到的一些问题 1.ghost-cli很奇怪,我用ghost install local安装正常,但将config.development.json的数据库改成mysql后ghost start就报错了 2.我不确定在linux能否正常初始化数据库,因为之前部署production的同样的命令在Linux敲了好几次数据库都没有写入,数据库后来是在win10中初始化的 3.linux下ghost run命令可以启动服务(非后台运行),但ghost start命令会报一个unknown的错误,我的启动命令是直接ghost目录下运行sudo systemctl start ghost_ghost-local.service 4.相比wordpress感觉ghost真的很折腾,php果然是世界上最好的语言。

#总结: 520就在折腾ghost中过去了ಥ_ಥ 明天继续上班<( ̄︶ ̄)↗[GO!]

回到顶部