前言:
恰逢最近服务器到期,上阿里云官网寻了个价,服务器续费竟然需要1200大洋。。。想着之前的1核2G的服务器是两年前因为活动700多大洋买的,强烈的价格落差让市侩的心抠门的我内心升起了一丝小嫌弃(这性价比也太低了!!!)。不甘心的我继续淘宝一样淘着服务器,盼望着有一个物美价廉性价比又高的服务器送入我的怀中。映入眼帘的是各种配置高价格又高的服务器。我擦了擦口水继续找,偶然间发现,因为华北3大区搞活动,2核4G的服务器只要1400+,果断入手,价格虽然贵了几百,但是配置质的飞跃,心里美滋滋。服务器搞定之后,下一步就是做服务端迁移,我要做的是把原服务器的数据迁移到新的服务器上来。想起之前的博客是用ghost+mysql搭建的,而ghost对nodejs的版本有限制。索性在网上找了一圈成型的博客框架,最终选定用hexo框架搭建新的博客。在搭建的过程中也遇见了一些小坑,现做个总结。可能会有和网上各种方法大同小异的地方,看过的大佬可自行略过,挑对自己有用处的看,也许会有小惊喜哦。
本地环境部署
操作系统: Macos
配置之前要确认你的电脑里是否已安装nodejs和git,如果未安装则从第一步开始安装,如果已安装过请直接起飞略过第一第二步,从第三步看起~
如果你是windows用户,可以直接在nodejs官网和git官网下载安装,安装过后从第三步看起。
1.用nvm安装nodejs
nvm是一个nodejs版本管理器,使用它可以很方便的管理nodejs(已安装node直接略过这步)
你可以这样安
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
复制代码
也可以这样安
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
复制代码
以上两种方法都可以安装,我安装的是v0.34.0版本,如果你看到这篇文章是比较久远之后,可以在github.com/nvm-sh/nvm#…中查看最新的nvm版本进行安装。
nvm安装成功之后,查看当前可安装的版本
nvm ls-remote
复制代码
最后安装nodejs
nvm install (nodejs版本号)
复制代码
查看是否安装成功
node -v
复制代码
2.安装git
用homebrew安装
brew install git
复制代码
查看是否安装成功
git --version
复制代码
生成公钥并复制到远程服务器
ssh-******
ssh-copy-id -i .ssh/id_rsa.pub 服务器用户名@服务器ip
复制代码
配置完即可无密码连接自己的服务器
3.安装hexo
直接运行命令安装
npm install -g hexo-cli
复制代码
命令行进入到本地要创建的博客目录,然后运行
hexo init (新建项目名称)
cd (新建项目名称)
npm i
复制代码
接着执行
npm install hexo-deployer-git --save
复制代码
这个命令用于自动化部署,先安装,后面会进行说明。
至此,本地部署告一段落。
服务端部署
操作系统: Ubuntu
1.nginx
更新apt-get包
sudo apt-get update
复制代码
安装nginx
sudo apt-get install nginx
复制代码
判断是否安装成功并查找nginx配置目录
sudo nginx -t
复制代码
控制台看到以下输出,则安装成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
复制代码
拷贝初始化server文件并重命名为server.conf
cp -i /etc/nginx/sites-available/default /etc/nginx/conf.d/
cd /etc/nginx/conf.d/
mv default nginx.conf
复制代码
到这里需要注意:
- 需要拥有一个已备案的域名,国外服务器除外
- 需要做域名解析到服务器ip
如果以上条件未具备,请先去搞域名。如果已具备,请接着往下看。
配置server.conf
http协议配置(有https证书略过)
server {
listen 80;
root /var/www; /*网站根目录,处于权限问题考虑,建议把网站配置在www文件目录下*/
server_name 你的域名;
location / {
index index.htm index.html
}
}
复制代码
https协议配置(无https证书略过)
server {
listen 443;
root /var/www; /*网站根目录,处于权限问题考虑,建议把网站配置在www文件目录下*/
server_name 你的域名;
ssl on;
ssl_certificate cert/xxxx.pem; /*你的https证书pem*/
ssl_certificate_key cert/xxxx.key; /*你的https证书key*/
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.htm index.html
}
}
server {
listen 80;
server_name 你的域名;
rewrite ^(.*) https://$host$1 permanent;
}
复制代码
2.安装git
执行命令
sudo apt-get install git-core
复制代码
创建git用户
adduser git
复制代码
3.建立git仓库
建立仓库并赋权
cd /var/www
git init --bare blog.git
chown -R git:git blog.git
复制代码
4.服务端自动化
进入git文件
cd /var/www/blog.git/hooks
mv post-update.sample post-update
vim post-update
复制代码
填入以下代码
#!/bin/sh
git --work-tree=/var/www --git-dir=/var/www/blog.git checkout -f
复制代码
修改权限
chmod +x post-update
复制代码
最后一步
修改本地文件_config.yml,把deploy改为
deploy:
type: git
repo: 服务端用户名@服务端IP:/var/www/blog.git
branch: master
复制代码
进行这老太太裹脚布一样的操作之后,终于接近尾声
进入本地文件目录,然后请优雅的在命令行敲入
hexo g -d
复制代码
直接在浏览器狠狠的敲击出你的网址,世界都亮了有木有!!!
敲了这么多手都木了,我去休息先~有事留言撒