July 5, 2011
pmwiki + git
身為一個記性不好的阿宅,最煩惱的一點莫過於工作上閱讀過的東西,過了一段時間就忘光光。當然我也有做筆記的習慣,但有時候某些指令就只記在本子裡,偏偏需要用到的時候本子就不在身邊。
於是乎,我在自己的電腦裡面弄一個簡單的 wiki 來作筆記。
非常感謝網路上許多朋友的幫忙,尋找 wiki 的時候給了很多建議。當時朋友給的建議我都有一個個去嘗試,最後根據我的需求決定了 pmwiki,一直用到現在有一年多的時間了。
我的需求大致如下,pmwiki 不見得全部涵蓋
作筆記這種事情,最昂貴的就是投注知識的時間,寫在紙本上如果弄丟就什麼都沒有了。雖然用數位的方式來紀錄,理論上來說要更容易保存。但我們都知道,硬碟很容易壞,事實上我們更常弄丟電腦裡的資訊。
解決這個問題的方法就是異地備援,但是身為一個人,尤其是現代人,最怕的就是麻煩。如果備份與回復的方式很麻煩,相信沒有人會持續備份。
選擇 pmwiki 的原因在於它不需要 mysql,所有的資料都用純文字儲存,而且支援中文搜尋。東西寫多了就是需要靠搜尋。
既然是純文字,搭配 git 來作管理就變得很方便。於是乎,備份或是重建 wiki 的動作,就僅僅只是 git 的 push 或是 clone 而已。這是我每天都在做的事情,太簡單了!
寫了一個很簡單的小 script,執行一次它就會以當下的時間為 log 做一次 commit,並且 push 到 remote server 去。
配合 crontab 每天執行一次,就此我只要專心寫我的筆記就好。換新電腦的時候,只要架好 apache,一個 git clone 的指令我就可以繼續筆記。
Installation
Apache
很不幸地,還是需要安裝 Apache。詳細的過程我忘記了,依稀記得需要兩個模組才能夠在自己的家目錄底下執行 pmwiki
How to backup
首先你要在別的機器上面有一個 git repository,假設那台機器的位置是 git.my.server,你在上面的帳號叫做 foo
其中 REMOTE_NAME 只是替 remote server 取一個名字而已,隨便取沒關係。如果你會使用 git,希望在自己家裡面弄好幾個筆記的 branch,才需要動到 LOCAL_BRANCH 跟 REMOTE_BRANCH。
Update:
Xdite 建議了 gollum,有興趣的鄉親也可以試試看
https://github.com/github/gollum
於是乎,我在自己的電腦裡面弄一個簡單的 wiki 來作筆記。
非常感謝網路上許多朋友的幫忙,尋找 wiki 的時候給了很多建議。當時朋友給的建議我都有一個個去嘗試,最後根據我的需求決定了 pmwiki,一直用到現在有一年多的時間了。
我的需求大致如下,pmwiki 不見得全部涵蓋
- 有搜尋功能,包括中文搜尋
- 不要有 mysql 之類的 database
- 容易備份
- 容易重建
- 最好不要有 Apache
作筆記這種事情,最昂貴的就是投注知識的時間,寫在紙本上如果弄丟就什麼都沒有了。雖然用數位的方式來紀錄,理論上來說要更容易保存。但我們都知道,硬碟很容易壞,事實上我們更常弄丟電腦裡的資訊。
解決這個問題的方法就是異地備援,但是身為一個人,尤其是現代人,最怕的就是麻煩。如果備份與回復的方式很麻煩,相信沒有人會持續備份。
選擇 pmwiki 的原因在於它不需要 mysql,所有的資料都用純文字儲存,而且支援中文搜尋。東西寫多了就是需要靠搜尋。
既然是純文字,搭配 git 來作管理就變得很方便。於是乎,備份或是重建 wiki 的動作,就僅僅只是 git 的 push 或是 clone 而已。這是我每天都在做的事情,太簡單了!
寫了一個很簡單的小 script,執行一次它就會以當下的時間為 log 做一次 commit,並且 push 到 remote server 去。
配合 crontab 每天執行一次,就此我只要專心寫我的筆記就好。換新電腦的時候,只要架好 apache,一個 git clone 的指令我就可以繼續筆記。
Installation
Apache
很不幸地,還是需要安裝 Apache。詳細的過程我忘記了,依稀記得需要兩個模組才能夠在自己的家目錄底下執行 pmwiki
$ sudo aptitude install libapache2-mod-suphp libapache2-mod-php5Git
$ sudo gedit /etc/suphp/suphp.conf # 把 check_vhost_docroot 的值由 true 改成 false
$ mkdir $HOME/public_html到這邊開始,就有 pmwiki 可以用了,在瀏覽器打開 127.0.0.1/~YOURID/pmwiki/pmwiki.php 應該就能看見。
$ cd $HOME/public_html
$ git clone git://github.com/walkingice/pmwiki.git
How to backup
首先你要在別的機器上面有一個 git repository,假設那台機器的位置是 git.my.server,你在上面的帳號叫做 foo
$ ssh foo@git.my.server接著進到自己電腦裡面的 pmwiki 目錄底下編輯 updater.pl,把幾個值改成
$ mkdir mywiki
$ cd mywiki
$ git init --bare
my $LOCAL_BRANCH = 'master';執行 ./updater.pl,它應該會開始把東西 push 上去,以後只要定期跑 updater.pl 就可以了。
my $REMOTE_NAME = 'brainless';
my $REMOTE_SERVER = 'foo@git.my.server';
my $REMOTE_BRANCH = 'master';
其中 REMOTE_NAME 只是替 remote server 取一個名字而已,隨便取沒關係。如果你會使用 git,希望在自己家裡面弄好幾個筆記的 branch,才需要動到 LOCAL_BRANCH 跟 REMOTE_BRANCH。
Update:
Xdite 建議了 gollum,有興趣的鄉親也可以試試看
https://github.com/github/gollum
Subscribe to:
Posts (Atom)
