背景

FreeBSD是一个类Unix系统,比同样是类Unix系统的Linux更加接近Unix。在我的一台腾讯云服务器上,就安装了FreeBSD,作为一个计算机爱好者的独特体验。那么怎么样把FreeBSD、把这台服务器用起来呢?最简单的办法就是在上面跑一些应用。因此,我选择跑一个博客。
然而,与Linux相比,FreeBSD系统的教程非常少。花费了一些时间才把这个Ghost博客搭建起来。为此,把相关搭建过程记录下来。

搭建过程

一、以root用户执行下列过程
1、安装所需的软件包。

# pkg update
# pkg install mysql80-server mysql80-client node18 npm-node18 nginx

如果安装过慢,可以更换成中科大源。
2、启用mysql

# service mysql-server enable
# service mysql-server start
# mysql_secure_installation

在此过程中,设置mysql的root密码。
3、创建ghost数据库用户。

# mysql -u root -p
CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'IsThisEnoughBitsOfEntropy?_^';
CREATE DATABASE yourblog_ext_prod;
GRANT ALL privileges ON `yourblog_ext_prod`.* TO 'ghost'@'localhost';

请注意,将上面的相关信息更换成你自己的信息。
4、启用nginx

# service nginx enable
# service nginx start

5、安装ghost-cli

# npm install ghost-cli -g

如果安装速度过慢,更新成腾讯源。
即使更新成腾讯源,也要大概30分钟。
6、在FreeBSD系统上创建一个新用户。这里假设创建的用户名为user。然后执行以下操作:

# mkdir /usr/local/www/yourblog.ext
# chown user:user /usr/local/www/yourblog.ext
# chmod 775 /usr/local/www/yourblog.ext
# su - ghost
$ cd /usr/local/www/yourblog.ext

二、现在是以user身份:
7、执行以下命令。

$ ghost install

依次输入以下信息:

? Enter your blog URL: https://yourblog.ext/
? Enter your MySQL hostname: 127.0.0.1
? Enter your MySQL username: ghost
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghostdemo_prod
✔ Configuring Ghost
✔ Setting up instance
ℹ Setting up "ghost" mysql user [skipped]
Nginx is not installed. Skipping Nginx setup.
ℹ Setting up Nginx [skipped]
Nginx setup task was skipped, skipping SSL setup
ℹ Setting up SSL [skipped]
? Do you wish to set up Systemd? No
Systemd setup skipped, reverting to local process manager
ℹ Setting up Systemd [skipped]
? Do you want to start Ghost? No
ℹ Starting Ghost [skipped]

8、修改权限,保护密码安全:

$ chmod 600 /usr/local/www/yourblog.ext/config.production.json
$ ghost start

三、切换到root用户,完成以下操作。
9、修改/usr/local/etc/nginx/nginx.conf ,改为以下内容:

http {
    include mime.types;
    include /usr/local/etc/nginx/sites-enabled/*.conf;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    gzip on;
}

10、创建以下两个文件夹,以符合nginx规范。

# mkdir /usr/local/etc/nginx/sites-available
# mkdir /usr/local/etc/nginx/sites-enabled

11、编辑/usr/local/etc/nginx/sites-available/yourblog_ext.conf,写入以下内容:

server {
    listen 80;
    listen [::]:80;
    server_name yourblog.ext;
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name yourblog.ext;
    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/;
    }
    ssl_certificate /usr/local/etc/letsencrypt/live/yourblog.ext/fullchain.crt;
    ssl_certificate_key /usr/local/etc/letsencrypt/live/yourblog.ext/privkey.key;
}

注意,ssl路径可以自定义。
12、执行以下命令,完成nginx配置。

# ln -s /usr/local/etc/nginx/sites-available/yourblog_ext.conf /usr/local/etc/nginx/sites-enabled/yourblog_ext.conf
# nginx -t
# service nginx restart

完成上述配置后,访问以下链接,访问ghost服务。

https://你的域名/ghost

参考链接

https://www.blakecarpenter.dev/install-ghost-on-freebsd/

标签: none

评论已关闭