{"id":1652,"date":"2013-10-14T21:24:05","date_gmt":"2013-10-14T13:24:05","guid":{"rendered":"http:\/\/www.hyzgame.com.cn\/?p=1652"},"modified":"2013-10-14T21:30:01","modified_gmt":"2013-10-14T13:30:01","slug":"%e5%9c%a8opensuse%e4%b8%8a%e6%9e%b6%e8%ae%bemercurialhg-server","status":"publish","type":"post","link":"http:\/\/www.hyzgame.com\/?p=1652","title":{"rendered":"\u5728openSUSE\u4e0a\u67b6\u8bbeMercurial(HG) Server"},"content":{"rendered":"<p>\u54ce\uff01\u5b9e\u5728\u662f\u592a\u9ebb\u70e6\u4e86\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u603b\u4e4b\u5148Clone HG\u6e90\u4ee3\u7801<br \/>\nhg clone http:\/\/selenic.com\/repo\/hg-stable\/<br \/>\ncd hg-stable<br \/>\npython setup.py build<br \/>\nsudo python setup.py install<\/p>\n<p>1.\/etc\/apache2\/conf.d\u4e0b\u5efa\u7acbhg.conf\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<p>ScriptAliasMatch\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ^\/hg(.*)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/srv\/www\/htdocs\/hg\/hgweb.cgi$1<\/p>\n<p>&lt;Directory \/srv\/www\/htdocs\/hg&gt;<br \/>\nOptions ExecCGI FollowSymLinks<br \/>\nAllowOverride None<br \/>\n&lt;\/Directory&gt;<\/p>\n<p>\u5982\u9700\u8ba4\u8bc1\uff0cDirectory\u5185\u4e3e\u4f8b\u5982\u4e0b\uff1a<br \/>\n&lt;Directory \/srv\/www\/htdocs\/hg&gt;<br \/>\nOptions ExecCGI FollowSymLinks<br \/>\nAuthType Basic<br \/>\nAuthName &#8220;Mercurial repositories&#8221;<br \/>\nAuthUserFile \/srv\/www\/user_access\/password.txt<br \/>\nRequire valid-user<br \/>\n&lt;\/Directory&gt;<\/p>\n<p>\u8fd9\u91cc\u7684password.txt\u662fapache\u5bc6\u7801\u6587\u4ef6\uff0c\u7528\u4e8e\u4fdd\u5b58\u7528\u6237\u540d\u548c\u5bc6\u7801<br \/>\n\u793a\u4f8b\uff1ahtpasswd2 password.txt \u7528\u6237\u540d<\/p>\n<p>2.\/srv\/www\/htdocs\u4e0b\u5efa\u7acbhg\u76ee\u5f55,\u7528\u6237\u6539\u4e3awwwrun:www<br \/>\nchown -R wwwrun:www \/srv\/www\/htdocs\/hg<\/p>\n<p>3.\u590d\u5236hgweb.cgi\u5230\/srv\/www\/htdocs\/hg\u76ee\u5f55\u4e0b<br \/>\n\u4fee\u6539config\u4e2d\u5185\u5bb9\u4e3a\/srv\/www\/htdocs\/hg\/hgweb.conf&#8221;<\/p>\n<p>4.\u5efa\u7acbhgweb.conf\u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a<br \/>\n[collections]<br \/>\nrepos\/ = repos\/<\/p>\n<p>\u91cd\u542fapache2\u5373\u53ef<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u54ce\uff01\u5b9e\u5728\u662f\u592a\u9ebb\u70e6\u4e86\u3002 &nbsp; \u603b\u4e4b\u5148Clone HG\u6e90\u4ee3\u7801 hg clone http:\/\/seleni [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1652","post","type-post","status-publish","format-standard","hentry","category-1"],"_links":{"self":[{"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=\/wp\/v2\/posts\/1652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1652"}],"version-history":[{"count":3,"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=\/wp\/v2\/posts\/1652\/revisions"}],"predecessor-version":[{"id":1655,"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=\/wp\/v2\/posts\/1652\/revisions\/1655"}],"wp:attachment":[{"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1652"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.hyzgame.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}