【Linux】如何在ubuntu下安装Ghost博客系统

这篇教程带你手把手在 Ubuntu 24.04 服务器上搭起 Ghost 博客平台!Ghost 是个用 Node.js 写成的开源博客神器,专为写博客而生,能让你轻松搞出又现代又好看的博客站点。跟 WordPress 那种大而全的内容管理系统比,Ghost 轻量得多、速度也快得多,简直是专注党福音。

Ghost 有什么好玩的

写这篇时,最新版 Ghost 是 v5.80.2,2024 年 3 月 28 号刚出炉。亮点一箩筐:

  • Markdown 编辑器,码字飞起
  • 内容管理简单到爆
  • 团队协作编辑,喊小伙伴一起玩
  • 定时发布,懒人福利
  • 自带数据分析,看谁在偷偷看你文章
  • SEO 直接内置:语义标记、固定链接、XML 站点地图、规范标签、自动元数据还能手动改
  • 内置 AMP(加速移动页面)支持
  • 完整 RSS 订阅、邮件订阅表单、Slack webhook 随便连
  • 官方主题市场几百款免费/付费主题,随便挑
  • 默认主题 Casper 超好看,还带暗黑模式
  • 跨平台桌面客户端,Linux、Mac、Windows 全覆盖
  • 官方 Ghost Migrator WordPress 插件,一键从 WordPress 逃离

Ghost 基金会也提供托管服务,但咱们今天要玩自托管,在 Ubuntu 上自己搭一个!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

准备工作

跑 Ghost 至少要 1GB 内存。我强烈安利 Kamatera VPS,亮点如下:

  • 30 天免费试用
  • 起步 $4/月(1GB 内存)
  • 高性能 KVM 虚拟化
  • 全球 9 个数据中心:美国、加拿大、英国、德国、荷兰、香港、以色列

按下面教程在 Kamatera 搞个 Linux VPS,建议用 Ubuntu 24.04 LTS,兼容性最好。

VPS 搞定后,还得有个域名。我在 NameCheap 注册的,价格香,还终身免费送 whois 隐私保护。

注意:我用 sudo 用户 装的 Ghost,强烈建议你也别用 root!先建个 sudo 用户:

sudo adduser username
sudo adduser username sudo

然后切过去:

su - username

第一步:更新系统

服务器好久没更新?先来一波:

sudo apt update; sudo apt upgrade -y

第二步:装 Node.js

Ghost 要 LTS 版 Node.js,非 LTS 免谈。目前最新是 v22.x,但 Ghost 更稳在 v18.x。加 NodeSource 源:

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -

装上:

sudo apt install -y nodejs

检查版本:

node -v
# 示例输出:v18.20.2
npm -v
# 示例输出:10.5.0

第三步:装 MariaDB 数据库

Ghost 支持 MySQL 和 MariaDB,咱们选 MariaDB,它就是 MySQL 的开源替代品,由原 MySQL 团队操刀,防 Oracle 闭源。

sudo apt install mariadb-server mariadb-client

装好后 MariaDB 自动启动,检查状态:

systemctl status mariadb

没跑?启动它:

sudo systemctl start mariadb

开机自启:

sudo systemctl enable mariadb

跑安全脚本:

sudo mysql_secure_installation
  • 第一次问 root 密码,直接回车(还没设)
  • 别切 unix_socket 认证,默认就用这个
  • 别改 root 密码,用 unix_socket 不用设
  • 后面全回车:删匿名用户、禁远程 root、删测试库

再查版本:

mariadb --version
# 示例:mariadb Ver 15.1 Distrib 10.11.7-MariaDB...

第四步:为 Ghost 建库建用户

登录 MariaDB:

sudo mariadb -u root

建库(我叫 ghost,你随便):

create database ghost;

建用户并给权限:

grant all privileges on ghost.* to ghost@localhost identified by 'ghost_password';

刷新权限,退出:

flush privileges;
exit;

第五步:装 Nginx

Ghost 要用 Nginx 当反代:

sudo apt install nginx

用 UFW 防火墙?开 80/443:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

第六步:域名 A 记录

装 Ghost 前,记得给博客域名建 DNS A 记录,指向服务器 IP。

第七步:正式装 Ghost

先全局装 Ghost-CLI

sudo npm install ghost-cli@latest -g

建目录:

sudo mkdir -p /var/www/ghost/

给权限(把 username 换成你的):

sudo apt install acl
sudo setfacl -R -m u:username:rwx /var/www/ghost/
sudo chmod 775 /var/www/ghost

切目录,开始安装:

cd /var/www/ghost/
ghost install

会检查环境、装依赖。过程中:

? Enter your blog URL: https://yourdomain.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: ghost
? Enter your MySQL password: ghost_password
? Enter your Ghost database name: ghost
  • 强烈建议选 Y 让它自动配 Nginx + SSL
  • 也选 YSystemd 服务,方便重启

装完去 https://yourdomain.com/ghost 完成设置,先建个管理员账号。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

之后可以邀请团队成员,或先跳过。

第八步:改 Nginx 配置(支持 www)

默认只配一个域名,想 www 和非 www 都行?编辑配置文件:

sudo nano /etc/nginx/sites-enabled/yourdomain.com.conf

找到:

server_name yourdomain.com;

改成:

server_name yourdomain.com www.yourdomain.com;

保存退出,删掉多余的 SSL 文件:

sudo rm /etc/nginx/sites-enabled/yourdomain.com-ssl.conf

装 Certbot:

sudo apt install certbot python3-certbot-nginx

一次性拿 www 和非 www 的证书:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d yourdomain.com,www.yourdomain.com

重启 Nginx:

sudo systemctl restart nginx

第九步:搞定邮件通知

想让 Ghost 发密码重置、邀请成员、订阅确认邮件?得配 SMTP。两条路:

方案一:SMTP 中继(超简单)

用中继服务,我推荐 Sendinblue,按教程搭 Postfix 中继。

搭好后改 Ghost 配置:

sudo nano /var/www/ghost/config.production.json

默认:

"mail": {
   "transport": "Direct"
},

改成:

"mail": {
  "transport": "Sendmail",
  "from": "notifications@yourdomain.com"
},

重启 Ghost:

sudo systemctl restart ghost_yourdomain-com.service

方案二:自建邮件服务器

想玩硬核?用 iRedMail 一键搭。

搭好后改配置:

"mail": {
    "transport": "SMTP",
    "from": "notifications@yourdomain.com",
    "options": {
        "service": "yourdomain.com",
        "host": "mail.yourdomain.com",
        "port": 465,
        "secureConnection": true,
        "auth": {
            "user": "notifications@yourdomain.com",
            "pass": "the_email_account_password"
        }
    }
},

注意:Ghost 不支持 587 端口!保存后重启服务。

故障排除:手动配 Nginx

装的时候蹦出 “Nginx is not installed. Skipping Nginx setup”?手动来!

建配置文件:

sudo nano /etc/nginx/conf.d/ghost.conf

填入:

server {
    listen [::]:80;
    listen 80;
    server_name example.com www.example.com;
    
    root /var/www/ghost/;
    
    access_log /var/log/nginx/ghost.access.log;
    error_log /var/log/nginx/ghost.error.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }

    # 让 Let's Encrypt 验证通过
    location ~ /.well-known {
        allow all;
    }
}

测试配置:

sudo nginx -t

没问题就重载:

sudo systemctl reload nginx

再装 Certbot、拿证书、重启 Nginx,完事儿!


搞定!现在你的 Ghost 博客已经飞起来了,赶紧去写第一篇吧~有啥问题评论区见,我随时来救场!

总结:一口气把 Ghost 博客玩转!

兄弟,折腾完这篇教程,你已经在 Ubuntu 24.04 上把 Ghost 搭得飞起!从零到一,干了这些大事:

  1. 系统更新 + Node.js 18 LTS:打好底层,稳如老狗
  2. MariaDB 建库建用户:数据安全又简单
  3. Nginx + HTTPS:自动配 SSL,www 和裸域全吃
  4. Ghost-CLI 一键安装:环境检测、依赖拉满,省心到爆
  5. 邮件通知搞定:中继 or 自建,随你骚操作
  6. 手动 Nginx 救场:万一自动翻车,手动配置秒救

现在打开 https://你的域名.com,登录后台,码第一篇 Markdown 文章,主题随便换,暗黑模式一开,妥妥的现代感!

一句话收尾:WordPress 太重?Ghost 轻快又纯粹,专注写字,专注逼格。赶紧行动,博客界下一个大V就是你!🚀

有坑?评论区吼我,我在线蹲守!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值