星期一, 9月 12, 2011

「arch linux」安裝 APACHE + Mercurial

沒記錄起來,下次就忘記了,記憶力越來越不可靠了。
「arch linux」安裝 APACHE + Mercurial

「Apache 」

「 Mercurial」
  • 安裝 Mercuial 
    • pacman -S mercurial
  • 查詢安裝位置,可以發現他的lib都放在 /usr/lib/python2.7/site-packages/mercurial/
    • pacman -Ql mercurial
  • 建立hgwebdir.cgi ,arch 沒有像ubuntu 有附 hgwebdir.cgi範例,最後找了老半天
    • python2.7 是對應 剛剛查的lib路徑裡面的python版本
#!/usr/bin/env python2.7
from mercurial import demandimport; demandimport.enable()
import cgitb
cgitb.enable()
import os
os.environ["HGENCODING"] = "UTF-8"
from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi
application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

  • 之後建立 hgweb.config 
    • colletions 是你WEB的HG專案的位置,小弟是直接同步到Dropbox作備份了。
[collections] 
/home/cake/Dropbox/jeff/Project/ = /home/cake/Dropbox/jeff/Project/
[web]
style = gitweb
allow_push = *
push_ssl = false
#allow_read = cake
[trusted]
users = *
#groups = *
[hooks]
#changegroup = hg update

  • 建立好的2個檔案  hgwebdir.cgi  和 hgweb.config  需要在同個目錄,
    • 檔案位置 看喜歡放在哪裡都行,不過不要弄丟了,權限也要設好。
    • 小弟放在 /srv/hg/cgi-bin/

  •  建立虛擬目錄 編輯/etc/httpd/conf/httpd.conf 或者 你的設定檔
    • 目錄要按照CGI自己的放的位置
    • ^/hg(.*)  則是網址
    • AuthUserFile 使用者檔案
ScriptAliasMatch        ^/hg(.*)       /srv/hg/cgi-bin/hgwebdir.cgi$1
<Directory /home/cake/public_html/hg/cgi-bin/>
Options ExecCGI FollowSymLinks
AllowOverride None
AddHandler cgi-script .cgi
</Directory>
<Location /hg/>
 AuthType Digest
  AuthName "mercurial"
  #AuthDigestProvider file
  AuthUserFile /srv/hg/hgusers
</Location>


詳細參考:http://kevinjalbert.blogspot.com/2010/05/mercurial-setup-guide.html



2013 - 03/10 - 更新

關於APACHE CONFIG 設定 ,多那黃色的三行 就行跑。


<VirtualHost *>
ErrorLog "/srv/apache_error_git.log"
#cx   hgwebdir.cgi   /srv/hg/cgi-bin
#ScriptAlias /hg "/srv/hg/cgi-bin/hg.cgi"

ScriptAliasMatch ^/hg(.*) /srv/hg/cgi-bin/hg.cgi$1
<Directory  /srv/hg/cgi-bin/>
Options ExecCGI FollowSymLinks
AllowOverride None
AddHandler cgi-script .cgi
    Order allow,deny
    Allow from all
    Satisfy all

</Directory>

<Location       /hg/>
 AuthType Digest
  AuthName "mercurial"
  #AuthDigestProvider file
  AuthUserFile /srv/hg/hgusers
</Location>

</VirtualHost>





沒有留言: