手工搭建ghost博客(ubuntu 20.04)-九游平台
ghost是基于node.js的开源博客平台,可以为用户提供更加便捷的写作与发布平台,本文指导用户基于华为云弹性云服务器(以ubuntu 20.04操作系统云服务器为例)部署ghost博客。
创建新用户
由于ghost官方不推荐使用root用户直接操作,因此需要重新创新的用户,并为其配置权限。
- 执行以下命令,创建新用户。本文以user为例。
adduser user
回显信息如下:
adding user `user' ... adding new group `user' (1000) ... adding new user `user' (1000) with group `user' ... creating home directory `/home/user' ... copying files from `/etc/skel' ... new password: retype new password: passwd: password updated successfully changing the user information for user enter the new value, or press enter for the default full name []: room number []: work phone []: home phone []: other []: is the information correct? [y/n] y
- 在new password:和retype new password:提示信息中,请按照提示输入并确认用户密码,密码默认不显示,输入完成后按enter。
- 在enter the new value, or press enter for the default提示信息中,按enter保持默认即可,您也可以根据实际情况填写用户相关信息。
- 在is the information correct? [y/n]提示信息中,输入y确认信息,并按enter,完成设置。
- 执行以下命令,将新创建的用户添加到组。
usermod -ag sudo user
- 执行以下命令,切换到user用户。
su - user
安装nginx
部署ghost博客,需要安装nginx作为http服务器,本节以安装nginx 1.18.0 版本为例。
- 执行以下命令,更新linux操作系统和软件包。
sudo apt-get update
sudo apt-get upgrade -y
- 执行以下命令,安装nginx。
sudo apt-get install -y nginx
- 执行以下命令查看nginx版本。
nginx -v
回显信息如下:
nginx version: nginx/1.18.0 (ubuntu)
- 调整防火墙(可选)。
ufw(uncomplicated firewall)是一个iptables的接口,可以简化配置防火墙的过程。ubuntu默认安装了ufw,执行以下命令查看防火墙的状态。
sudo ufw status
如果你没有也不想开启防火墙,则可以直接跳过此步骤,如果你想要开启防火墙可以通过以下命令实现。
sudo ufw enable
之后再次检查防火墙状态验证是否成功开启防火墙。
在测试nginx之前,需要重新配置防火墙软件以允许访问nginx。执行以下命令,将nginx自动注册在ufw。
sudo ufw app list
回显信息:
available applications: nginx full nginx http nginx https ...
- nginx full:此配置文件打开端口 80(正常,未加密的web流量)和端口443(tls / ssl加密流量)
- nginx http:此配置文件仅打开端口 80(正常,未加密的web流量)
- nginx https:此配置文件仅打开端口 443(tls / ssl加密流量)
执行以下命令确保防火墙允许http和https连接。
sudo ufw allow 'nginx full'
- 验证nginx是否正常工作。
在浏览器中通过域名或者ip地址进行访问nginx,如果nginx正常启动则会打开welcome to nginx的欢迎页面。
使用浏览器访问 “http://云服务器ip地址”,显示如下页面,说明nginx安装成功。
安装mysql
mysql是一种开源数据库管理系统,通常作为流行的lamp(linux,apache,mysql,php / python / perl)堆栈的一部分安装。它使用关系数据库和sql结构化查询语言)来管理其数据。
- 执行以下命令,安装mysql。
sudo apt-get install -y mysql-server
- 执行以下命令查看mysql版本。
mysql -v
回显信息如下:
mysql ver 8.0.37-0ubuntu0.20.04.3 for linux on x86_64 ((ubuntu))
- 执行以下命令,连接mysql。
sudo mysql
- 执行以下命令,创建ghost使用的数据库。本文以ghost_data为例。
create database ghost_data;
- 执行以下命令,设置root账户密码。
alter user 'root'@'localhost' identified with mysql_native_password by 'xxxxx';
其中'xxxxx'为待设置的密码。
- 执行以下命令,重新加载mysql的授权表,确保数据库权限的更改生效。
flush privileges;
- 执行以下命令,退出mysql。
exit
安装node.js
- 执行以下命令,安装。
sudo curl -sl https://deb.nodesource.com/setup_18.x | sudo -e bash -
sudo apt-get install -y nodejs
- 安装完成后,执行以下命令查看node.js版本和npm版本。
node -v
npm -v
回显信息:
root@ecs-c47c:~# node -v v18.20.3 root@ecs-c47c:~# npm -v 10.7.0
ghost 安装与配置
ghost v1.0.0 及以上版本已加入了ghost-cli,因此可以直接安装配置ghost-cli。
- 执行以下命令,安装ghost-cli。
sudo npm install ghost-cli@latest -g
- 创建一个文件夹,之前介绍过nginx的重要文件结构 /var/www/ 就是将要创建文件夹的地方。
sudo mkdir -p /var/www/ghost
ghost在/root文件夹中安装ghost将无法正常工作。
- 配置权限。
sudo chown user:user /var/www/ghost
sudo chmod 775 /var/www/ghost
user是1创建的用户。
- 进入刚才创建的文件夹。
cd /var/www/ghost
- 执行以下命令,用ghost-cli安装ghost。
ghost install
如果ghost安装时提示node版本不匹配,可以在nodejs官方网站查询相应的版本重新安装。
- 配置ghost。
如果上面在 /var/www/ghost/ 目录下运行ghost install成功的话,会要求配置相关参数:
- enter your blog url:输入已解析的域名,例如:http://example.com。
- enter your mysql hostname:输入数据库连接地址。本示例中mysql数据库与ghost部署在同一台实例中,直接按enter保持默认即可。
- enter your mysql username:输入数据库用户名,输入root后按enter。
- enter your mysql password :输入数据库密码,输入5中设置的数据库密码后按enter。
- enter your ghost database name:输入ghost使用的数据库名称。输入ghost_data后按enter。
如果配置后需要修改可以通过以下命令去文件中进行配置:
vi config.production.json
打开之后就是生产环境配置内容了。参考配置见下图:
验证ghost搭建完成
如果成功的安装ghost之后,就可以通过域名访问到ghost博客。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨