ubuntu安装ghost blog教程

2019-10-16 10:21:14

安装过程中不能使用root账户进行安装。如果安装完成后重启出现502错误,需要手工重启ghost blog的服务,未解决FTP的权限问题。

由于Ghost不允许root安装,所以需要新建一个普通的账户:

adduser <user> # ghost不允许root用户安装,所以需要新建个<user>用户
usermod -aG sudo <user> # 给予<user>用户为超级权限
su - <user> # 登录用户
 
sudo apt update
sudo apt upgrade # 更新软件

这里的<user>用户名可以自己任意修改,例如jaxsonubuntu等。

但请不要使用ghost作为用户名,因为和ghost-cli用户名产生冲突。

执行下面的命令安装node.js

# 添加 Nodejs 10 源
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
 
# 安装 Node.js
sudo apt-get install -y nodejs

国内的机器安装可能比较慢,因为不可描述的原因导致的,如果着急的话可以试试上面的老方法。

设置Nodejs镜像源(非中国大陆机器不用设置):

npm config set registry https://registry.npm.taobao.org #npm镜像替换为淘宝npm节点
npm config get registry #配置后可通过下面方式来验证是否成功

安装Nginx环境

如果你需要SSL配置需要NGINX 1.9.5或更高版本,当然你可以选择下载Nginx源码进行编译安装,省事可以直接执行:

sudo apt-get install nginx
nginx -v # 输出版本号

如果ufw已激活,则防火墙允许HTTP和HTTPS连接,所以打开防火墙:

sudo ufw allow 'Nginx Full'

安装数据库

Ghost安装数据库推荐的是MySQL:

sudo apt install mysql-server

如果运行的是Ubuntu 18.04,则需要输入密码以确保MySQL与Ghost-CLI兼容:

# 进入数据库管理
sudo mysql
 
# 执行下列语句进行修改数据库密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '这是你要替换的密码';
 
# 退出数据库管理
quit;
 
# 退出mysql用户并且登录用户账户
su - <user>

安装Ghost-Cli & Ghost

sudo npm install ghost-cli@latest -g # 安装Ghost脚手架

创建网站目录:

# 创建ghost文件夹的网站目录,这个名字可以自己随便定义
sudo mkdir -p /var/www/ghost
 
# 使文件夹拥有权限,<user>是当前用户名
# 例如当前用户名是ubuntu,那么应该是:sudo chown ubuntu:ubuntu /var/www/ghost
sudo chown <user>:<user> /var/www/ghost
 
# 设置读写权限
sudo chmod 775 /var/www/ghost
 
# 定位
cd /var/www/ghost
 
# 进行Ghost博客平台安装
ghost install

安装过程根据主机性能来决定,下面是选项配置讲解:

  • Enter your blog URL: 博客展示地址,格式:http(s):(www.)example.com,不支持ip地址。
  • Enter your MySQL hostname: 数据库主机地址,回车默认是localhost
  • Enter your MySQL username: / Enter your MySQL password: 数据库用户名/密码,上面安装的数据库用户名是root,密码是自己设置的。
  • Enter your Ghost database name: Ghost博客数据库名
  • Do you wish to set up "ghost" mysql user? 设置数据库用户名为ghost,这个为了避免权限太大导致数据瞎搞,Ghost官方推荐是y
  • Do you wish to set up Nginx? 自动化Nginx,推荐y
  • Do you wish to set up SSL? 配置SSL证书,推荐y,如果你有证书问题,请查看文章最下面的问题。
  • Enter your email (For SSL Certificate):个人邮箱,配置ssl证书需要的邮箱地址。
  • Do you wish to set up Systemd? 使用ghost进程管理工具,推荐y,个人觉得海星。
  • Do you want to start Ghost? 启动Ghost博客就可以进入网址访问。

图片优化

图床使用的是Ghost qiniu图床:https://github.com/minwe/qn-store

例如在/var/www/ghost/content/adapters文件下新建个storage文件夹

cd /var/www/ghost/content/adapters/storage # 定位
git clone https://github.com/Minwe/qn-store.git # 拉取源码
cd qn-store # 定位
npm install # 安装模块依赖

然后打开/var/www/ghost/config.production.json文件,添加代码:

{
  // ...
  "storage": {
    "active": "qn-store",
    "qn-store": {
      "accessKey": "your access key", // https://portal.qiniu.com/user/key获取AK密匙
      "secretKey": "your secret key", // https://portal.qiniu.com/user/key获取SK密匙
      "bucket": "your bucket name", // 存储对象空间名字
      "origin": "http://xx.xx.xx.glb.clouddn.com", // 七牛CDN地址
      "fileKey": {
        "safeString": true,
        "prefix": "YYYYMM/"
      }
    }
  }
  // ...
}

然后重启Ghost:

cd /var/www/ghost
ghost restart

SSL错误

如果你域名设置@域名例如:https://iiong.com,访问是没有问题,但如果是访问www.iiong.com就会报错,如何解决这个问题呢:

  • 重新配置:ghost config url https://www.mydomain.com
  • 执行ghost setup nginx ssl
  • 再修改回来:ghost config url https://mydomain.com

打开/var/www/ghost/system/files/下的俩个www.*.conf文件,添加301跳转到顶级域名代码:

if ($ssl_protocol = "") {
        return 301 https://$host$request_uri;
    }
    if ($host != iiong.com) {
        return 301 $scheme://iiong.com$request_uri; #请注意这里的iiong.com替换你的域名。
    }

重启sudo nginx -s reload服务

安装 ftp 服务上传修改主题

如果使用 sftp 服务来修改上传主题文件会出现权限不足的错误,如果有着频繁修改主题的需求需要额外安装 ftp 服务并且指定账号来达到读写操作效果。

sudo apt-get install vsftpd -y # 安装ftp服务
 
sudo useradd -d /var/www/ghost/ -s /usr/sbin/nologin <user> # <user> 是上面指定的账号
 
//设置该帐户密码:
sudo passwd <user>

先检查一下 nologin 的位置, 通常在 /usr/sbin/nologin 或者 /sbin/nologin

配置 vsftp

修改配置文件:

sudo vim /etc/vsftpd.conf

将配置文件中 anonymous_enable=YES 改为 anonymous_enable=NO

取消如下配置前的注释符号:

local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
local_umask=002 # 务必修改 002 对应目录775 文件664 权限

保存退出后继续编辑 vsftpd.chroot_list 文件,将将 ftp 的帐户名 <user> 添加进去::

sudo vim /etc/vsftpd.chroot_list

修改 shell 配置:

sudo vim /etc/shells

如果该文件里没有 /usr/sbin/nologin 或者 /sbin/nologin (具体看当前系统配置) 则 追加进去,然后重启服务:

sudo service vsftpd restart

然后重启服务后登陆 ftp 软件上传文件即可。

如果上传、删除和修改文件出现失败的时候,绝大部分原因是权限问题,执行下面问题即可修复:

sudo chown -R <user>:<user> /var/www/ghost/
Windows Serve 2019 UI界面安裝語言包

微軟官方網站: https://support.microsoft.com/en-hk/help/4466511/cannot-configure-language-pack-for-windows-server-2019 嘗鮮而已 Windows Server 2019 DataCenter 1809 之前的系統,是可以通過 控制面板進行語言的安裝,但是 Server2019,並不支持這個方法安裝語言包,也沒有Language的選項 我們先下載Win2019的語言包 官方鏈接:https://software-download.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso 打開 CMD(管理員),輸入lpksetup,選擇 Install 選擇瀏覽(Browser),選擇你要的語言包(***Zh-cn) 選擇

Aws Ec2在ubuntu上进行磁盘扩容

centos扩容请参照文章:https://gov.com.sb/centos-growpart/ 安装扩容工具 sudo apt-get install cloud-init 等待ebs卷大小调整完成后,在扩容的实例中执行lsblk列出连接到实例的EBS设备 查询硬盘空间 设备已经扩容到30g,但是操作系统只能看到原来的8g 使用growpart展开修改后的分区(注意将设备名称与分区名称分隔开) sudo growpart /dev/xvda 1 ** 通过lsblk可以确认分区/dev/xvda1已经填充上可用空间 lsblk 使用以下命令并替换要扩展的设备名称 sudo resize2fs /dev/xvda1 完成扩容 查看是否扩容成功 df -h