在OpenBSD 6上建立Ghost专业版发布平台

・6 分钟阅读

Ghost是最新和最大的竞争对手WordPress ,由于Ghost开发者使用了ember.js和handlebars.js框架来消除一些学习曲线,所以,主题开发快速而容易学习的,安装和设置时间应大约为45-60分钟,使用了以下技术: Node.jsRelaydHttpd

注:请用你的域名替换example.org,并用你指定的IP地址替换192.0.2 .x ,我们也将使用自签名证书,这对测试非常有用,但如果你决定正式使用Ghost,那么使用真实的证书是非常重要的,可以免费获取真实证书

配置OpenBSD

启用HttpdRelayd


# rcctl enable httpd relayd

为Httpd创建/etc/httpd.conf配置文件,在本例中,Httpd的唯一用途是将请求重定向到https ,Relayd实际上是监听https端口和代理Ghost请求的那个。


prefork 3
types { include"/usr/share/misc/mime.types" }

server"www.example.org" {
 listen on 192.0.2.1 port 80 
 # Redirect to https
 block return 301"https://$SERVER_NAME:$REQUEST_URI"
}

为你的Ghost部署创建测试SSL证书,由于这只用于测试,所以,你可以将大部分字段留空,唯一需要完成的是Common Name字段,它应该与服务器的域名匹配,当你准备将自签名证书替换为真实有效的证书时,请记住保持文件名相同。Relayd期望使用命名约定<ip address>.crt<ip address>.key找到它密钥和证书。


# cd /etc/ssl
# openssl req -x509 -new -nodes -newkey rsa:4096 -keyout private/192.0.2.1.key -out 192.0.2.1.crt -days 364 -sha256
# chmod 0400 private/192.0.2.1.key

为Relayd创建/etc/relayd.conf配置文件,Relayd有代理和重定向请求到Ghost的魔力。


prefork 3

http protocol https {
 match request header append"X-Forwarded-For" value"$REMOTE_ADDR"
 match request header append"X-Forwarded-By" 
 value"$SERVER_ADDR:$SERVER_PORT"

 tcp { nodelay, sack, socket buffer 65536, backlog 128 }

 tls { no tlsv1, ciphers HIGH }
 tls no session tickets
}
relay ghost {
 listen on 192.0.2.1 port 443 tls
 protocol https
 forward to 127.0.0.1 port 2368
}

添加下列软件包。


pkg_add -r node unzip wget 

安装和配置Ghost

为Ghost安装创建用户和主目录,例如,创建名为ghost的用户名为/var/www/ghost的主目录,


# user add -m -c"Ghost User" -d /var/www/ghost -G wheel -g =uid -u 5000 -s /bin/ksh ghost
# passwd ghost 

更改为ghost用户,并且下载最新版本的Ghost 。


# doas su ghost
# cd /var/www/ghost
# mkdir blog
# cd blog/
# wget https://ghost.org/zip/ghost-latest.zip
# unzip ghost-latest.zip

安装Ghost 。


# npm install sqlite3 --sqlite=/usr/local
# npm install --production
# npm install forever
# doas npm install -g knex-migrator

如果你想使用sqlite代替mysql,请将config.production.jsondatabase部分替换为下面的database子句,SQLite每天可以轻松处理100,000个连接,如果已经安装了MySQL,则可以随时选择使用它,对于defaults.json文件,将urldomain部分更改为你的域。


# cd core/server/config/env/config/
# vi config.production.json

"database": {
"client":"sqlite3",
"connection": {
"filename":"content/data/ghost.db"
 }, 

# cd core/server/config/
# vi defaults.json

"url":"http://www,example.org",
"server": {
"host":"127.0.0.1",
"port": 2368
},

现在我们必须填充数据库,并且启动Ghost 。


# cd ~/blog
# NODE_ENV=production knex-migrator init
# NODE_ENV=production ~/blog/node_modules/forever/bin/forever start ~/blog/index.js

执行 netstat -na -f inet 并查找127.0.0.1:2368条目,你还可以执行 ps ax | grep node 验证Ghost是否正在运行。

打开你喜爱的网页浏览器,并且浏览到http://www.example.org ,你将自动被重定向到https://www.example.org ,你将会看到默认的Ghost页面。

浏览到http://www.example.org/ghost以完成安装。

Chinaxiong profile image