Skip to content

使用ghost搭建博客,记录一下安装和使用ghost遇到的坑。。。

ghost推荐使用Ubuntu,本站服务器使用了Centos,在安装mysql时会不同:

Ubuntu

apt-get install mysql-server mysql-client -y service mysql start

Centos

yum install mariadb-server -y

mariadb-server 安装完成后会有mysql命令,但没有mysqld服务

运行数据库服务就要使用mariadb服务

systemctl start mariadb.service systemctl enable mariadb.service

安装完 mysql-server 会提示可以运行 mysql_secure_installation。运行mysql_secure_installation 会执行几个设置: a)为root用户设置密码 b)删除匿名账号 c)取消root用户远程登录 d)删除test库和对test库的访问权限 e)刷新授权表使修改生效 通过这几项的设置能够提高 mysql 库的安全。建议生产环境中 mysql 安装这完成后一定要运行一次 mysql_secure_installation

使用ghost-cli安装和配置ghost网站会方便很多,这也是官方文档推荐的做法。

npm install -g ghost

ghost的启动配置很怪异,设置的url目前来看只是用来在后端页面跳转到首页的,url中未设置post将会随机分配端口,就算url中显示设置了80端口仍会随机分配端口,因此需要Nginx做一层代理来转发80端口的请求。

Ubuntu

apt-get install nginx -y

Centos

yum install nginx

配置nginx代理

vi /etc/nginx/nginx.conf
server {
  listen 0.0.0.0:80;
               # 监听的端口号
  server_name domain.com;
                   # 把mydomain.com换成自己的域名
                   # 如果没有域名或者网站还没备案下来这里可以写ip
                   # 例如 39.108.91.25,如果配置多个网站的话
                   # 这里可以通过不同的端口对应不同的网站
                   # 例如 39.108.91.25:81 等,前提是这些端口外网还能访问
  access_log /var/log/nginx/mousycoder.log;
  
  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header X-Real-IP $remote_addr;

    proxy_pass http://127.0.0.1:2368;
                            # 这里的端口取ghost分配或设置的端口
                            # 地址就是127.0.0.1和ghost配置的url不同
                            # 这里就是直接指向本机的服务
    # proxy_buffering off;
    proxy_redirect off;
  }
}

ghost安装时不能使用root来安装,按官方文档的说法启动时会出权限问题,创建一个有sudo权限的用户来启动服务,在安装时所有选项都最好选择yes,不然还会出现一些其他权限问题。

本站创建的初衷是记录和分享一些node的学习心得,有空就写写✨