2010-03-02

在 Ubuntu Apache 下架設 Mercurial Server 筆記

  1. 確定安裝好 apache2
    dpkg –l  | grep apache2, 若沒裝則用 sudo apt-get install apache2 安裝
  2. 變身成 root
    $ sudo su
  3. 建立 hg repositories 和 cgi-bin 的存放路徑
    # mkdir /var/hg
    # mkdir /var/hg/cgi-bin
    # mkdir /var/hg/repos
  4. 複製 hgwebdir.cgi 到指定位置, 並更改權限為可執行
    # cp /usr/share/doc/mercurial/examples/hgwebdir.cgi /var/hg/cgi-bin/
    # chmod a+x /var/hg/cgi-bin/hgwebdir.cgi
  5. 建立 /var/hg/cgi-bin/hgweb.config, 寫入以下內容
    [collections]
    /var/hg/repos/ = /var/hg/repos/
  6. 設定 apache
    1. 建立 /etc/apache2/sites-available/hg, 寫入以下資訊, 一行而已
      ScriptAlias /hg "/var/hg/cgi-bin/hgwebdir.cgi"
    2. 啟用該設定
      # a2ensite hg
      # /etc/init.d/apache2 reload
  7. 開啟瀏覽器, 輸入 http://localhost/hg 應該就可以看到 mercurial 的畫面

若要 allow push, 有兩個設定要調整

  1. 確定 apache 有 /var/hg/repos/ 的寫入權限
    # chown –R www-data.www-data /var/hg/repos/
  2. 在 allow push 的 repository 的 .hg 目錄下編輯 hgrc 檔
    [web]
    push_ssl = false
    allow_push = *

想要更進一步控制權限, 要自行設定 .htaccess!

keywords: mercurial, hg, apache, ubuntu, scm

參考資料: Serving Mercurial using Apache on Ubuntu

沒有留言: