行业资讯
Ghost 博客平台部署指南:从零到上线
写技术博客的人基本都有过选平台的纠结。简书、知乎、公众号都试过一圈限制总归不少排版不自由、外链管得严、数据不在自己手里。后来干脆在服务器上搭了个 Ghost主题随便换数据全本地配上自己的域名体验比托管平台舒服太多。这篇文章把完整流程走一遍从环境准备到域名配置大概四十分钟能搞定。Ghost 是用 Node.js 写的对系统版本有要求数据库默认用 MySQL 8.0。下面所有步骤基于 Ubuntu 22.04 LTS这是目前 Ghost 官方最推荐的环境。一、服务器配置建议Ghost 本身不算重但 Node.js 服务加上 MySQL内存至少给 2G1G 的话跑起来会很勉强。用途推荐配置备注个人博客1 核 2G日访客几百以内够用中小团队内容站2 核 4G同时在线几十人无压力高流量站点4 核 8G CDN配合缓存和静态资源分离我自己用的是雨云rainyun-com的 2 核 2G 机器跑 Ghost 加一个 MySQL日常 CPU 占用在 10% 左右内存用掉 1.2G 上下挺宽裕的。注册填码2026off可领5折一个月十来块钱。下面开始装环境。二、系统环境准备先更新系统然后装 Ghost 需要的依赖。sudoaptupdatesudoaptupgrade-ysudoaptinstall-ynginx mysql-server nodejsnpmGhost 要求 Node.js 版本在 18.xUbuntu 22.04 自带的 nodejs 包通常版本偏低建议用 NodeSource 装curl-fsSLNodeSource的18.x安装脚本|sudo-Ebash-sudoaptinstall-ynodejs验证版本node-v# 应该显示 v18.x.xnpm-v然后装 Ghost 官方推荐的 CLI 工具这个工具能帮你自动处理很多配置sudonpminstall-gghost-cli三、配置 MySQL 数据库Ghost 需要 MySQL 8.0。先登录进去创建数据库和用户。sudomysql-uroot在 MySQL 命令行里执行CREATEDATABASEghost_prodCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;CREATEUSERghost_userlocalhostIDENTIFIEDWITHmysql_native_passwordBYyour_strong_password;GRANTALLPRIVILEGESONghost_prod.*TOghost_userlocalhost;FLUSHPRIVILEGES;EXIT;把your_strong_password换成你自己的密码记好后面装 Ghost 的时候会用到。四、创建 Ghost 安装目录Ghost 不能装在 root 用户的家目录下官方建议放在 /var/www/ghost。sudomkdir-p/var/www/ghostsudochown$USER:$USER/var/www/ghostchmod775/var/www/ghostcd/var/www/ghost五、安装 Ghost在 /var/www/ghost 目录下执行 ghost-cli 的安装命令ghostinstall这个命令会交互式地问几个问题按实际情况填就行Blog URL如果你已经有域名且配好了 DNS填你自己的域名。如果暂时没域名可以填服务器的 IP比如http://你的服务器IP后期再改。MySQL hostname回车默认 localhost。MySQL username填ghost_user。MySQL password填刚才设的密码。Ghost database name填ghost_prod。Set up a Ghost MySQL user?选 Yesghost-cli 会自动创建专用用户更安全。Set up Nginx?选 Yes自动帮你配好反向代理。Set up SSL?如果你有域名并且已经指向了服务器选 Yes自动申请证书。没有域名就先选 No后面再配。Set up systemd?选 Yes自动配成系统服务开机自启。Start Ghost?选 Yes。如果一切顺利最后会显示 Ghost is running并给你一个管理后台地址一般是你的域名/ghost/。六、Nginx 配置检查ghost-cli 通常会自动写好 Nginx 配置但可以检查一下是否正确。sudocat/etc/nginx/sites-available/ghost.conf内容大概长这样server { listen 80; listen [::]:80; server_name yourdomain.com; root /var/www/ghost; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } }如果你启用了 SSLghost-cli 会自动改成 443 端口并加上证书路径。确认没问题后重载 Nginxsudonginx-tsudosystemctl reload nginx七、防火墙放行Ghost 默认跑在 2368 端口但通过 Nginx 反向代理后外部访问走的是 80 和 443。所以防火墙里只需要放行这两个端口sudoufw allowNginx Fullsudoufw reload如果你用的是云服务商的安全组记得在控制台也放行 80 和 443。如果暂时没配 SSL只放 80 也行。八、完成初始化打开浏览器访问你填的 Blog URL应该能看到 Ghost 的默认主题 Casper。点击页面上的 Subscribe 按钮旁边的菜单或者直接在地址栏加 /ghost进入管理后台。第一次进入会要求你创建管理员账号按提示填邮箱、密码、博客标题就行。创建完之后Ghost 的后台功能就全解锁了。后台主要功能分区Posts写文章、管理文章。Pages创建独立页面比如关于我、友情链接。Tags给文章打标签做分类。Design换主题、调整导航菜单。Settings博客的各种配置包括域名、邮件、社交媒体等。九、换主题和基本设置Ghost 的主题生态很成熟官方市场有大量免费和付费主题。想换主题的话在后台 Settings - Design 里上传 zip 包就行不用敲命令。几个建议初期就改的设置Settings - General确认 Site Title 和 Description这是 SEO 的基础。Settings - Publication Language如果是中文博客改成zh_CN。Settings - Membership默认 Ghost 会开启会员订阅功能如果只想做个纯博客可以关掉邮件订阅避免配置邮件服务的麻烦。常见问题问安装过程中 ghost-cli 报错提示权限不对怎么办答最常见的原因是当前用户对 /var/www/ghost 没有足够权限或者之前用 sudo 运行过 ghost 命令导致文件所有者混乱。解决方法是先把目录权限修正确保当前用户拥有它然后不要用 sudo 运行 ghost installghost-cli 会在需要提权的时候自己调用 sudo。问没有域名能用 IP 直接访问吗答可以。安装时 Blog URL 填http://你的服务器IP后续有了域名再在后台 Settings - General 里改 URL然后重跑ghost setup nginx ssl重新配置 Nginx 和证书。问Ghost 的升级麻烦吗答不麻烦。Ghost 有自带的升级命令在 /var/www/ghost 目录下执行ghost update就行会自动下载最新版本并迁移数据库。升级前建议先备份一下 content 目录和数据库万一出问题可以回退。问数据备份有什么简单方案答Ghost 的所有内容都在 /var/www/ghost/content 目录下包括文章、图片、主题等。最简单的备份就是把这个目录打包加上数据库 dump。可以写个简单的 shell 脚本每天凌晨打包传到另一台机器或对象存储上成本很低心里踏实。问Ghost 的邮件服务一定要配吗答如果你不用会员订阅功能不配置邮件也能正常用。但如果想开启用户注册、订阅通知这些功能就需要配一个 SMTP 发信服务。可以用 Mailgun 的免费额度或者自己搭个简单的 SMTP 中继。总结Ghost 的部署流程在今天已经相当标准化了ghost-cli 自动处理了 Nginx 配置、数据库连接、systemd 服务等一大堆琐事你要做的其实就三步准备环境、运行安装命令、初始化后台。数据完全在自己手里主题和插件的自由度也比托管平台高得多。搭好之后专心写内容就行剩下的 Ghost 会帮你处理好。
郑州网站建设
网页设计
企业官网