使用github + Octopress 搭建免费博客 + 碰到问题的解决方法
使用github + Octopress 搭建免费博客,先说碰到的问题,具体创建方法见下面。
问题1, 添加ruby淘宝链接问题,显示无法获取,
解决: source “http://ruby.taobao.org”
需要修改成: source “https://ruby.taobao.org”
问题2,rake setup_github_pages 操作之后没有反应,
解决: 此时需要直接写git://github.com/yourname/yourname.github.io.git
具体配置流程:
http://www.yanjiuyanjiu.com/blog/20130401/
前提条件
注册一个github账号。
任何资料,都不如 Octopress 和 Github Pages 的官方文档,建议首先阅读官方文档。
GitHub Pages快速体验
在GitHub网站上,点击右上角的+号图标,创建一个新的Repo,Repository 的名字必须为 username.github.com。然后点击Settings进入该Repo的设置页面。看到”Automatic Page Generator”,说明这个Repo已经启用了GitHub Page。点击按钮进入设置。
在”Create a GitHub User Page”填写一些基本信息,点击右下角的”Continue to Layout”。布局就用默认的,点击绿色的”Publish”按钮。
大功告成,输入”username.github.com”,看到一个页面没?这就是你刚刚创建的一个页面。
GitHub Pages分为两种类型,一种是”User and Org Pages”,一种是”Project Pages”。前者是用户的主页,一个用户仅有一个。后者是每个项目的主页。见github page官方的文档 Creating Pages with the automatic generator 。
本文创建的是第一种类型。
这篇博客 搭建一个免费的,无限流量的Blog—-github Pages和Jekyll入门 - 阮一峰的网络日志 很通俗易懂,不过它创建的是第二种类型,在一个Repo上新建了一个branch,并命名为gh-pages。
下面正式开始折腾。
安装 msysgit并配置
- 下载 msysgit , 然后双击exe文件开始安装。
- 双击桌面图标Git Bash,启动一个shell,输入如下命令进行配置:
产生公钥ssh key,默认全部回车
1 |
|
Note: username@email.com需要更换成你自己的在Github上注册的Email地址。 这样会在用户目录(C:\Documents and Settings\UserName)下产生一个.ssh文件夹,里面为对应的SSH Keys,其中id_rsa.pub是Github需要的SSH公钥文件。
在Github的Account Settings里选择SSH Keys,在其中将id_rsa.pub文件里内容拷贝至 其中的Key里。
这样以后就可以直接使用Git和GitHub了。
测试一下
1 |
|
如果出现 hi xxx! You’ve successfully authenticated, bug GitHub does not povide shell access。说明SSH链接成功。
接下来配置其他信息。
1 |
|
本节参考了 msysGit 安装后的配置 。
克隆Repo到本地
在D盘新建一个文件夹,例如github。
1 |
|
安装Octopress
参考官方文档 setup .
安装Ruby
Octopress 2.0 需要 Ruby 1.9.3,安装其他版本的Ruby可能会行不通。
如果是Linux,使用RVM来安装Ruby,如果是Windows,则使用 RubyInstaller 。在这个 下载页面 下载Ruby 1.9.3-p392和DevKit(DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe),双击exe文件进行安装。
安装DevKit
双击DevKit的exe文件,解压到C:\DevKit,在CMD下执行如下命令
1 |
|
安装Octopress
下载Octopress。
1 |
|
注意 : rubygems.org在中国的下载速度很慢,会导致bundle install这一步下载gems的速度很慢,可能需要等待几个小时。因此需要事先切换到国内的镜像源。
用记事本打开octopress目录下的Gemfile,将第一行修改为
source “http://ruby.taobao.org”
然后可以开始安装依赖的gems了。
1 |
|
正常的话应该可以看到一行行的Installing xxx,表示正在安装所需要的gem。
安装默认的Octopress主题。
1 |
|
如果这一步出现问题,则试一下 bundle update再执行 rake install。
部署到GitHub
将Octopress和自己的Repo关联起来
1 |
|
编译生成JeKyll所需要的静态文件
1 |
|
这个命令主要是根据source目录的内容,编译生成JeKyll所需要的静态文件,存放到public目录下。source 目录对应着git上的source分支。
UTF-8 编码
Windows预设是Big5编码,所以要想’rake generate’的时候不报编码错误,我们需要设置一下编码! 方法有两个,一个是直接在Git Bash中设置环境:
1 |
|
还有一个是在环境变量中加入这两个变量: 右击电脑->属性,新添加LANG和LC_ALL两个环境变量,值为为zh_CN.UTF-8.
然后在Git Bash中做如下设置:
1 |
|
预览
1 |
|
用浏览器打开 http://localhost:4000/ ,就可以看到效果了。
部署到github
1 |
|
该命令首先清空_deploy目录,然后将public目录整个拷贝过来,然后commit到github。_deploy 目录对应着master分支。
备份source到github
1 |
|
source 目录下保存了所有的markdown源文件,是博客的原始数据,以及一些模板文件。因此很有必要备份。用上述命令提交到github,这样就用git管理起来了,再也不用担心数据丢失了。
终止预览
启用 rake preview 后,直接按 ctrl+c 无法正常终止该进程,老提示 终止批处理操作吗(Y/N)? ,这时候可以另开一个Git Bash窗口,使用 ps aux | grep ruby命令找出 pid(第一个数值) ,然后执行 kill <pid> 来停止该进程(参考 octopress on heroku (二) )。
绑定域名
参考官方文档 Setting up a custom domain with Pages 。
非常简单,在master分支的根目录,添加一个文本文件,名字为CNAME,里面的内容就是要绑定的域名,例如本博客CNAME文件的内容是:
www.yanjiuyanjiu.com
然后去DNSPod,添加一条CNAME,指向 username.github.com。例如我的为:
1 |
|
很多人喜欢去掉www,用xxx.com的形式来访问,不过大家去试一下,在浏览器输入qq.com, douban.com, baidu.com,发现都会自动跳转到www,也就是说这些大网站,目前也是用www.example.com的域名为主,因此建议大家也这样做。
用www, blog之类的二级域名,还有个好处是方便升级,比如新版本用www1指向,等测试完成后,改成www指向,无缝切换。
如何让example.com 自动变成www.example.com呢?需要用 301重定向,在DNSPod上非常简单,添加一条显性URL即可,例如我的是:
1 |
|
在使用Octopress的时候,每次 rake generate , rake deploy 后,master分支下面的CNAME文件消失了。正确的做法是,把CNAME文件放到在 source 目录下,其余的都删掉, rake generate 会自动拷贝到public目录下, rake deploy 再拷贝public目录内容到_deploy目录,并提交到master分支。
使用github + Octopress 搭建免费博客 + 碰到问题的解决方法的更多相关文章
- Octopress + GitHub Page 搭建个人博客
Tips:博客已搬家,新地址:http://wanxudong.top 首先说明两个关键术语: Octopress Octopress是基于 Jekyll 的博客框架.他们的关系就像 jQuery 与 ...
- 使用 github + jekyll 搭建个人博客
github + jekyll 本地写markdown,然后push到github,就成了博客 其实我一早就知道这两者可以搭建个人博客,因为本人有个很好的习惯——每天都会去看看一些热门文章,了解行业最 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(二)
在 基于 Hexo + GitHub Pages 搭建个人博客(一) 这篇文章中,我们已经知道如何使用 Hexo + GitHub Pages 搭建一个个人博客,GitHub 为我们提供了免费的域名和 ...
- Linux下使用 github+hexo 搭建个人博客05-next主题接入评论系统
静态站点拥有一定的局限性,因此我们需要借助于第三方服务来扩展我们站点的功能. 而评论系统是最常用于和网站用户交流的,因此本章讲解在 next 主题,如何接入评论系统. 参考网站:Next 使用文档,第 ...
- 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- 基于 Hexo + GitHub Pages 搭建个人博客(一)
前言:我的博客写作之路 15 年刚上大学,第一次接触公众号,就萌生了创建一个公众号写点东西,但最终不了了之. 很快到了 16 年,开始接触网上各大博客网站,接触最多的当属 CSDN,萌生了注册一个博客 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(三)
一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...
- 使用github pages搭建个人博客
一.环境准备 使用Github Pages搭建个人博客,一劳永逸,可以让我们更加专注于博客的撰写.博客的更新是通过将新建或改动的博客放在指定文件夹并推送到远程Github仓库来完成的,所以我们本地需要 ...
- 使用Hexo + GitHub Pages 搭建个人博客
一.前言 之前是在CSDN上写博客的,但是无奈其广告满天飞,还有因为个人不太喜欢CSDN博客里的一些东西,加上看到很多技术大牛都有自己的个人博客,于是乎!便想着搭建一个自己的个人博客.其实之前写博客还 ...
随机推荐
- 指定socket文件连接mysql
1.利用ps aux |grep mysql 查看--socket 路径 2.创建软连接.创建文件 3.登录成功
- 查询使用NoLock
当我们在操作数据库的时候,无论是查询还是修改数据库的操作我们都习惯使用using(var db=new XXXDB()){},但是如果仅仅是做查询,最好是使用NoLock,因为NoLock使用的是共享 ...
- django.test.client 使用随记
import os,sys,django; sys.path.append("\\path\\to\\mysite")#ATTETION!,Err: "unable to ...
- Android Phonebook编写联系人UI加载及联系人保存流程(五)
2014-01-07 10:46:30 将百度空间里的东西移过来. 在前面的文章中我们分析了UI的加载,其中提到了一个重要的对象:RawContactDeltaList mState,我前面说过这个对 ...
- Noip2014 提高组 T2 联合权值 连通图+技巧
联合权值 描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 WiWi, 每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 v 点的 ...
- pl/sql乱码
环境变量增加NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- C# CsvFile 类
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- linux 用户、组,修改文件权限
文件权限 -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc - 10个字符确定不同用户能对文件干什么 - 第一个字符代表文件(-).目录(d),链接(l) - 其余 ...
- GCD的用法
单例的实现 + (BindingRedResourceWIndow *)sharedInstance { static id sharedInstance = nil; static dispatch ...
- list.clear()和list=null的区别
以前并没有注意到list.clear()和list=null的区别,其实,区别在于 clear()方法是将list清空,但是对象的引用还在,只不过是一个表现为空引用 list=null是将list对象 ...