从WordPress到GitHub Pages——博客全球的心路与历程
本帖最后由 viploser 于 2020-11-5 13:35 编辑从WordPress到GitHub Pages——博客全球的心路与历程
一 我为什么要折腾GitHub Pages
我的个人博客一直放在Google Cloud上,但是还有不到两个月就谷歌云就到期了;而且因为被薅羊毛薅得太狠,谷歌把$300的使用期限从366天缩短到了90天,如果继续在Google Cloud办博客,就意味着每3个月就要折腾一次,不仅要折腾重新撸账号,还意味着博客也要经常搬家。同时还有一个问题就是信用卡的问题,薅羊毛薅得太多的话会被封卡,这样需要经常搬家的就不只是账号和博客了、还有信用卡号;再加上“断卡”行动,博客搬家事小,玩砸了把自己征信玩砸了就得不偿失就了。
这样一来,我就开始研究有没有其他的(最好是不花钱的)博客搭建方案。
最开始想的是找一家便宜的vps搭建一个新的WordPress站点。我把之前WordPress的文档导出了xml,如果下一家也是WordPress的话就可以导入;而且我对WordPress站点的发布和维护是很了解的,没有新的学习成本。我用过老薛host,香港主机太贵、美国主机(最便宜曾经可以到¥80/年)太慢。后来找了站长,先借用了论坛服务器一小块地方搞了一个WordPress小站,新的问题又发生了,用论坛的二级域名没问题,但是用我自己的域名做URL转址跳转时因为没有备案被停止解析。我的域名在GoDaddy,有效期还有四五年,操作过于繁杂。
/*此处特别感谢站长nkc3g4不计成本和报酬提供的服务器及域名支持。让我的博客有了一个家。*/
再后来我就开始研究GitHub方案,我知道GitHub Pages是源于一个叫Listen1的软件(它可以综合搜索多个音乐平台的音乐并形成统一的跨平台收藏夹、但因为得罪了太多的版权利益方被迫停止更新了),它的下载页面是一个GitHub页面。这次做博客正好研究了一下,发现了GitHub Pages这个神奇的平台,一个支持静态网页和markdown的平台。
经过这两天的尝试,我基本实现了用GitHub Pages搭建个人博客,并完成了从WordPress到GitHub Pages的搬家,还有个人域名的解析。(目前没有完成的是博客美化,但现在可以看了,而且完全不影响功能)。
二 搭建GitHub Pages的详细步骤
0 我的搭建思路是联合HEXO和GitHub Pages完成个人博客搭建。
1 GitHub平台的在线准备。
1.1 注册GitHub账号,不要开二次验证,就是邮箱+密码登陆的安全模式。此处会设置一个用户名,下面行文中全部表述为GITHUBUSERNAME;绑定一个邮箱,下面行文中全部表述为GITHUBEMAIL。
1.2 在GitHub账号中创建Repositories(绿色按钮,New Repositories或者Create Repositories),Repositories必须命名为GITHUSERNAME.github.io,不可命名为其他!
1.3 然后点击Repositories的设置(一个齿轮图标),下拉菜单,找到GitHub Pages,Source下Branch选择master,挂载点为/(root),点击Save保存。Theme Chooser下点击Choose a theme,选择默认的第一个(这里的theme主题最终会被替换,此处只是搭建一个空平台而已)。
1.4 新开一个浏览器选项卡访问https://GITHUSERNAME.github.io和https://github.com/GITHUSERNAME/GITHUSERNAME.github.io。如果访问出错请检查GitHub平台的在线准备的操作。
2 本地开发环境搭建
2.1 我的操作平台是Windows平台,系统版本为20H2,硬件为Surface Go 1。在完成下面操作之前需要先安装Node.js和Git。
2.2 Node.js下载地址为https://nodejs.org/en/download/,根据实际系统情况安装(我选择的是node-v14.15.0-x64.msi),个人推荐下载提供LTS的最新版,安装过程不需要改动任何东西,全部下一步到完成即可。
2.3 Git的下载地址为https://git-scm.com/downloads/,根据实际系统情况安装(我选择的是Git-2.29.2.2-64-bit.exe),安装过程不需要改动任何东西,全部下一步到完成即可。(如果有不喜欢Git自带命令行工具的可以在Configuring the terminal emulator to use with Git Bash(确定配合Git命令行模式所用的终端模拟器)一步改选Use Windows’ default console window(使用Windows自带的命令提示符)。
3 本地博客工具安装
3.1 在一个没有中文字符的路径下新建英文名称文件夹作为博客本地镜像,在这个文件夹中鼠标右键单击选择Git Bash Here打开命令提示符。
3.2 添加大陆源 命令 npm config set registry https://registry.npm.taobao.org
3.3 安装HEXO 命令 npm i hexo-cli -g
3.4 查看HEXO版本(同时确定HEXO是否安装正确) 命令 hexo -v
3.5 重置HEXO初始化 命令 hexo init
3.6 完成HEXO附加文件的完整安装(其实就是生成一套hello world页面) 命令 hexo instsll
3.7 转换md为html静态页面(上一步的操作中会生成一个helloworld.md文件,以测试hexo平台) 命令 hexo g
3.8 开启本地服务器并在本地查看 命令 hexo s,代码跑完之后之后打开浏览器,访问localhost:4000,会打开一个默认的hexo页面,之后将命令提示符调整回当前活动窗口,按Ctrl+C结束本地服务器进程。但不要关闭命令提示符。
4 打通本地HEXO和GitHub平台连接
4.1 在上面的命令提示符中继续操作。
4.2 设置用户名 命令 git config --global user.name "GITHUBUSERNAME"
4.3 设置邮件地址 命令 git config--global user.email "GITHUBEMAIL"
4.4 修改本地yml文件,将本地博客文件夹中的_config.yml用记事本打开,在文件的最后一行输入并修改,使文件的最后三行为
type: tit
respository:https://github.com/GITHUSERNAME/GITHUSERNAME.github.io
branch: master
需要注意的是每一行开头有两个空格,冒号后面有一个空格,行末没有其他字符
4.5 生成ssh密钥对 命令 ssh-keygen -t rsa -C "GITHUBEMAIL",输入命令后提示设置保存密钥对名称,设置并确认私钥密码,均不输入,直接回车过去(修改密钥对名称会影响下一步命令;修改密码会影响本地HEXO和GitHub平台连接)。
4.6 导出并复制公钥 命令 cat ~/.ssh/id_rsa.pub,之后选中以ssh-rsa开头,以GITHUBEMAIL结尾的字符串。
4.7 在GitHub导入公钥,在GitHub右上角头像下拉菜单选Settings,左侧找到SSH and GPG keys,右侧SSH keys选择New SSH Key,名称随意(更推荐填写GITHUBUSERNAME.github.io),密钥框里将上一步的字符串粘贴进来。保存。
4.8 从命令提示符连接GitHub 命令 ssh -T git@github.com,这里的git@github.com不要改,出现Are you sure you want to continue connecting (yes/no/)?提示后敲键盘yes,回车,如果显示你的Hi GITHUBUSERNAME! You've successfully authenticated, but GitHub does not provide shell access.则表示连接成功。
4.9 将本地博客发布到GitHub 命令 hexo d,第一次上传发布会弹出登陆窗口,用GITHUBEMAIL和密码登陆即可。如果输入hexo d后提示ERROR Deployer not found: git,输入命令 npm install --save hexo-deployer-git,之后再hexo d。
4.10 等2-5分钟后打开GITHUBUSERNAME.github.io,可以发现GitHub上的网站已经和本地同步。
5 从WordPress导入
5.1 安装迁移插件 命令 npm install hexo-migrator-wordpress --save
5.2 从WordPress导出博客,在仪表板-工具-导出,得到的文件表述为WP.XML。
5.3 从WP.XML导入博客 命令 hexo migrate wordpress WP.XML,此处需要饱含WP.XML的路径,可以输入命令主题后将文件拖入命里吞提示符。
6 绑定独立域名
6.1 在本地博客文件夹下找到source,在此文件夹内新建文本文档,内容为绑定的域名,不包括http://或者https://,包括二级域名。然后修改文本文档名称为CNAME,没有扩展名。
6.2 使用hexo d命令更新在线博客
6.3 在1.3所涉及的页面(https://github.com/GITHUSERNAME/GITHUSERNAME.github.io/settings),在GitHub Pages部分的Custom domain输入绑定的域名,此处的域名需要和6.1步骤CNAME中的域名完全一致。
6.4 在域名商的解析页面修改DNS,使用CNAME指向GITHUSERNAME.github.io。
Q.E.D.
三 我的心路历程
大概从2008年前后,我开始写自己的博客,那时候你网络是很珍贵的资源,我都是在txt文档里写好之后,去网吧贴到网易博客里,当时论坛盛极而衰,博客方兴未艾,微博尚未发端。国内最大的三家博客运营商是网易博客、新浪博客和QQ空间(好像有什么奇怪的东西混进来了,可QQ空间难道不能成为博客么)。我因为记不住新浪的域名里i和a到底哪个在前哪个在后,又不喜欢把空间放到公网里,我要的就是我可以发但你不能随便找到我也不能随便评论的展示(就像博物馆一样的展示和分享),最后确定了blog.163.com的网易博客。
博客的好处是可以无限长度的写东西,可以排版,可以插图片;你要是会玩,甚至可以搞静态网页(当然网易不行)。
那个时候我正好在学Dreamweaver,虽然技术上只能作出纯静态网页放在本地看着玩,但也是一种很奇妙的享受。直到现在,我还是喜欢博客,如果我自己有完整的服务器,我甚至还是会自己做自己的html放上去。只是,时代已然不同,网易关闭了博客,lofter(轻博客)的限制已经到了令人发指的层面,比如我把贝多芬第九交响曲第四乐章的唱词放上去就无法发布。新浪博客基本没有人更新了。CSDN技术博客基本全都是转载。时代过去了,就算满心都是情怀,又能走的多远呢?
2020年发生了很多,就算不说全民经历的魔幻现实主义,我自己的生活也发生了巨大的变化。
写这篇帖子是在word里写的,然后准备粘贴到论坛编辑器里。最开始写的时候打算把技术操作和心路历程完全写成时间线,所以心路历程部分的第一段是最先写成的;但是想了想,在一个技术论坛,这样的帖子会严重影响阅读体验。而且真的写成大时间线,还有WordPress的搭建,但是我已经记不清了。不如趁着现在对HEXO还有很深的印象,一鼓作气,直接写完。所以整个文风和用词前后明显有较大的分割。
最后再次感谢nkc3g4站长提供的、目前仍然可以使用的WP站点。感谢Hashimoto版主从中的联络和这些年来的支持。愿友谊长存。
目前的个人站点如下
位于Google Cloud的WordPress站点 https://arcice.org 即将过期关闭
位于GitHub Pages的HEXO站点 https://blog.arcice.org
位于论坛服务器的WordPress站点 http://viploser.luobotou.org
viploser
https://arcice.org
UTC+8.00 2020-11-05 13:28
@viploser 如果访问出错怎么办?
补充内容 (2020-11-7 11:22):
github的
页:
[1]