一、安装Octopress运行的必要软件
1、Octopress官网及软件下载:
官方首页:http://octopress.org
这里是RubyInstaller下载地址-http://files.rubyforge.vm.bytemark.co.uk/rubyinstaller/rubyinstaller-1.9.2-p290.exe
这里是DevKit下载地址-http://cloud.github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
2、这是安装RubyInstaller时的界面。
3、这是安装DevKit的界面,直接解压放在一个目录中,比如j:\devkit
4、用CD命令进入你存放DevKit的目录j:\devkit中,执行以下命令继续安装。
ruby dk.rb init
ruby dk.rb install
5、到https://github.com/imathis/octopress,下载octopress的源码包:https://nodeload.github.com/imathis/octopress/zip/master,解压该zip文件,比如解压到j:\octopress-master
二、在本地windows下,安装Octopress博客系统
1、要安装Octopress,就得先改变一个软件更新的源,因为默认的官方下载源已经被封了。执行以下命令。
gem sources -a http://ruby.taobao.org/
gem sources -r http://rubygems.org/
gem sources -l
2、使用文本编辑器打开j:\octopress-master里的Gemfile,将第一行的http://rubygems.org改成国内淘宝的地址:
http://ruby.taobao.org
3、用CD命令进入你存放博客源码的目录j:\octopress-master中,安装bundler。
gem install bundler
bundle install
4、再安装Octopress默认的主题。
rake install
5、最后是生成和预览博客。
rake generate
rake preview
6、用浏览器打开:http://localhost:4000/,就可以看到Octopress博客效果了。
三、配置
通过上述的步骤安装 Octopress 后,还需要做一些基本的配置,官方参考文档 http://octopress.org/docs/configuring/。主要的配置文件有两个:博客主配置文件_config.yml 和发布配置文件Rakefile。这里主要讲主配置文件,发布配置在后面讲。
主配置文件 _config.yml (如果包含中文,要将文件保存为UTF-8格式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| url: http://urdomain.com # 博客地址 title: O博客 # 博客标题 subtitle: 博,是一种态度 # 副标题 author: Alex # 你的姓名、网名 simple_search: http://www.google.com.hk/search # 搜索引擎 description: # 博客默认的描述,出现在HTML页面中的 meta 中的 description subscribe_rss: # Url for your blog's feed, defauts to /atom.xml subscribe_email: # Url to subscribe by email (service required) email: # Email address for the RSS feed if you want it. root: / # 博客路径,默认是“/“,如果你打算在子目录中,记得修改这个路径 permalink:
/:title/ # 文章的持久链接形式,例如在 WordPress 中的/%post_name%/,则使用/:title。
参考文档 https://github.com/mojombo/jekyll/wiki/Permalinks source: source # Directory for site source files,默认即可 destination: public # Directory for generated site files,默认即可 plugins: plugins # Directory for Jekyll plugins,默认即可 code_dir: downloads/code # Directory for code snippets (for include_code plugin),默认即可 category_dir: blog/categories # Directory for generated blog category pages,默认即可 pygments: # Toggle python pygments syntax highlighting paginate: # Posts per page on the blog index pagination_dir: # Directory base for pagination URLs eg. /blog/page/2/ recent_posts: # Number of recent posts to appear in the sidebar default_asides: # Configure what shows up in the sidebar and in what order blog_index_asides: # Optional sidebar config for blog index page post_asides: # Optional sidebar config for post layout page_asides: # Optional sidebar config for page layout |
四、撰写文章
在初步配置完成博客之后,就可以撰写博客文章了。官方参考文档是 http://octopress.org/docs/blogging/。简单的说就是通过 rake new_post["title"] 创建一个文章,通过 rake new_page[super-awesome] 来创建页面。
之后就可以在 source/_posts 目录中找到创建的空白文章文件,这个文件以.markdown 为后缀,此时可以通过文本编辑工具打开该文件进行编辑。markdown 语法参考见 http://wowubuntu.com/markdown/。
前面提到的2个命令主要在这里用,使用“rake generate”生成静态页面,使用“rake preview”启动本地预览,在浏览器中打开 http://localhost:4000/ 进行预览。
特别提示:
a) 在撰写过程,可以一直运行“rake preview”,当编写的文章保存时,会自动重新生成静态页面,只需要在浏览器中刷新就可以看到最新的内容了。
b) 包含中文的文章一定要将文件保存为 UTF-8 格式。
c) 要完全支持中文,还需要设置以下 Windows 环境变量,否则执行 rake generate 时可能出错。
LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8
五、发布
1、手动发布
运行“rake generate”生成静态页面后,可以手动复制/上传文件到目标目录/主机即可。手动发布可以将 Octopress 发布到任意主机(目前还没有不支持静态页面的主机吧)。1) 发布到本机:
直接将 octopress\public 目录中的内容复制到web服务器根目录。
例如使用Apache 2.2作为Web服务器时,将文件复制到 Apache 2.2 的 DocumentRoot 目录(C:/Program Files/Apache Software Foundation/Apache2.2/htdocs),或者直接修改 Apache 配置文件 httpd.conf 中的 DocumentRoot 指向octopress\public目录即可。
DocumentRoot "E:/octopress/public" Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all2) 发布到远程主机:
使用 ftp、sftp、ssh 等文件传输协议将 octopress\public 目录中的内容复制到远程主机的网站目录即可。
例如要发布到 SourceForge.net 的 Project Web 免费空间中,可以通过 ssh 连接 web.sourceforge.net,然后将 E:\octopress\public 中的所有内容上传到 /home/project-web/PROJECT_NAME/htdocs 目录中即可。例如我的项目名称是 joqs,则我的project web的目录就是 /home/project-web/joqs/htdocs。
也可发布到子目录,参考第六点。
2. 自动发布
这部分可以参考官方文档 http://octopress.org/docs/deploying/。自动发布需要先配置 Rakefile,然后执行 rake deploy 即可发布整个网站。
下面简要介绍一下官方网站所述的几种方式。
1) 发布到 Github Pages
本文不详细介绍这部分。网上关于 Octopress 发布到 Githubs 的资料非常多,这里不细述。可参官方文档。
2) 发布到 Heroku
请参考官方文档 http://octopress.org/docs/deploying/heroku/。
3) 通过 Rsync 发布(重点介绍)
参考官方文档 http://octopress.org/docs/deploying/rsync/。
首先,你的 web 主机必须支持 rsync(基本上所有的linux主机都支持)。其次,本地也必须安装 rsync 客户端。
如果是本机是 Linux 系统并安装了rsync,则通过 rsync 发布 Octopress 相当简单,配置
Rakefile
中以下属性ssh_user = "user@domain.com" document_root = "~/website.com/" rsync_delete = true deploy_default = "rsync"然后运行一下命令即可发布
rake generate # If you haven't generated your blog yet rake deploy # Syncs your blog via ssh这里重点讲一下如何在 Windows 环境下,通过 rsync 发布 Octopress 博客。
安装 cwrsync
a) 下载 cwrsync https://sourceforge.net/projects/sereds/files/cwRsync/4.0.3/
b) 双击安装,安装路径如
C:\Program Files\cwRsync
c) 设置Windows环境变量
PATH=%PATH%;C:\Program Files\cwRsync\bin #PATH中增加cwRsync的bin目录 HOME=C:\ #这个变量在调用SSH命令时用到,在本文的最后进行了说明,必须设置一个已经存在的目录现在可以打开windows命令行窗口,输入
rsync
,如果输出不是找不到命令,则表示安装且配置成功。然后配置
Rakefile
文件,与linux下配置方法相同。以发布到 SourceForge.net 的 Project Web 空间为例,配置如下:
ssh_user = "USERNAME@web.sourceforge.net" document_root = "/home/project-web/PROJECT_NAME/htdocs" rsync_delete = true deploy_default = "rsync"
然后运行 rake deploy 命令进行发布。在通过 Windows 下的 rsync 客户端发布 Octopress 到远程 Linux 主机时,在远程主机上,被上传的目录的权限和所有者都可能是不对的,所以需要通过 SSH 或 telnet 等工具登录到远程主机,修正以下目录权限。否则访问时出现 403 错误。前文所述的cwRsync中已经包含了一个 ssh 客户端。修正的指令如下:
chown -R root.root /var/www/html/blog chmod -R +rx /var/www/html/blogSourceForge.net主机不必执行第一句。SSH 登录 SourceForge.net 主机的个命令如下:
ssh -t USERNAME,PROJECT_NAME@shell.sourceforge.net create chmod -R +rx /home/project-web/PROJECT_NAME/htdocs如果通过 Windows 下的 rsync 客户端发布 Octopress 到远程 Windows 主机,则需要在远程主机上安装 Windows 版的 rsync 服务端。可自行查阅相关资料。
六、其它
1. 要部署到子目录,可参考文档 http://octopress.org/docs/deploying/subdir/,例如可以部署到 SouceForge 主机的 /home/project-web/PROJECT_NAME/htdocs/blog 目录,然后通过 http://PROJECT_NAME.sourceforge.net/blog/ 的形式就可以访问了。2. 评论必须使用外挂式的,默认支持 Disqus,可在 _config.yml 中进行配置。评论的内容将保存在Disqus。如果用户浏览器禁止了第三方 Cookie(Google Chrome就有这功能),则Disqus的登录功能会失效。
3. SSH 的问题
如果执行 rake deploy 时出现“Could not create directory ‘/home/Administrator/.ssh”,则需要设置环境变量 HOME,如前文所述。SSH 需要一个目录来保存 known_hosts 文件,在 Windows 下默认是/home/Administrator/.ssh,但“/home/Administrator”不存在,所以会出错。指定环境变量 HOME 为一个存在的目录即可,系统将创建 .ssh 子目录,并在其中创建 known_hosts 文件。
七、体验
使用 EditPlus 之类的编辑工具编写 Octopress 的文章还是很方便的,另外本地预览也比 WordPress 预览要快得多。发布到远程后访问速度不错,静态网页的加载速度的确要好些。
在手机上浏览 Octopress 的文章时格式良好,比笔者的 WordPress 下要好些,这个可能跟 WordPress 选用的主题有关。
不便之处在于,预览、发布博客时需要安装这样一个环境(撰写文章时其实不依赖这个环境),换台机器还得安装这套东东,这点不如 WordPress。WordPress 甚至有手机客户端可方便使用。
能发布到子目录也是不错的功能。笔者搭建并发布 Octopress 博客到了SourceForge.net 主机。这是笔者在 SourceForge 的 User Web 下的一个子目录。
八、链接
文中链接较多,这里整理一下。软件下载
- Octopress(zip): https://nodeload.github.com/imathis/octopress/zipball/master
- RubyInstaller: http://rubyforge.org/frs/download.php/75127/rubyinstaller-1.9.2-p290.exe
- DevKit: https://github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
- cwRsync: https://sourceforge.net/projects/sereds/files/cwRsync/4.0.3/
- Octopress官网: http://octopress.org/
- Octopress永久链接: https://github.com/mojombo/jekyll/wiki/Permalinks
- Ruby for Windows : http://rubyinstaller.org/downloads/
- Markdown: http://daringfireball.net/projects/markdown/