<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>MercurialTrac</title><revhistory><revision><revnumber>2</revnumber><date>2011-02-15 15:29:32</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-10-04 16:01:12</date><authorinitials>ZioPRoTo</authorinitials></revision></revhistory></articleinfo><section><title>Mercurial, Apache, Trac</title><para>QUESTA PAGINA E' ANCORA UNA BOZZA </para><para>In questa guida vedremo come configurare un repository mercurial, con Trac </para><section><title>Percorsi nel file system</title><para>Dobbiamo creare questa cartella: </para><para><code>/var/hg</code> </para><para>Dentro ci sono due files: </para><itemizedlist><listitem><para>hgweb.config   </para></listitem><listitem><para>hgwebdir.cgi </para></listitem></itemizedlist><para>Contenuto di hgweb.config </para><screen><![CDATA[[collections]
repos/ = ./repos/
]]><![CDATA[
[web]
style = gitweb
push_ssl = false]]></screen><para>Contenuto di hgwebdig.cgi <emphasis role="strong">file che deve essere eseguibile</emphasis> </para><screen><![CDATA[from mercurial import demandimport; demandimport.enable()
]]><![CDATA[
]]><![CDATA[
]]><![CDATA[
from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi
]]><![CDATA[
]]><![CDATA[
application = hgwebdir('hgweb.config')
wsgicgi.launch(application)]]></screen><para>e due cartelle </para><itemizedlist><listitem><para>repos: contiene i repository </para></listitem><listitem><para>tracsupport: contiene i files con i nomi e passwords </para></listitem></itemizedlist></section><section><title>Configurazione Apache</title><para>Il repository verrà servito su Internet con http, con il web server apache </para><para>creiamo un nuovo virtual host </para><screen><![CDATA[<VirtualHost *:80>
]]><![CDATA[
    Include /etc/apache2/vhosts.d/hg.include
]]><![CDATA[
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
]]><![CDATA[
]]><![CDATA[
</VirtualHost>]]></screen><para>Ed ora il succo nella configurazione lo mettiamo nella cartella <code>/etc/apache2/vhosts.d/</code> nel file <code>hg.include</code> </para><screen><![CDATA[    ServerName hg.tuonome.it
]]><![CDATA[
    <IfModule peruser.c>
        # this must match a Processor
        ServerEnvironment apache apache
]]><![CDATA[
        # these are optional - defaults to the values specified in httpd.conf
        MinSpareProcessors 4
        MaxProcessors 20
    </IfModule>
]]><![CDATA[
    <IfModule itk.c>
        # The userid and groupid this VirtualHost will run as
        AssignUserID apache apache
]]><![CDATA[
        # Optional: A separate MaxClients for the VirtualHost,
        # to limit the maximum number of processes
        MaxClientsVHost 50
]]><![CDATA[
        # Note that if you do not assign a user ID for your
        # VirtualHosts, none will be assigned by default,
        # ie. you'll run as root. Don't forget this!
    </IfModule>
]]><![CDATA[
]]><![CDATA[
ScriptAliasMatch        ^/hg(.*)        /var/hg/hgwebdir.cgi$1
]]><![CDATA[
        <Directory /var/hg>
          Options ExecCGI FollowSymLinks
          AllowOverride All
          Order allow,deny
          Allow from all
        </Directory>
]]><![CDATA[
        <Location /hg/fairvpn >
           AuthUserFile /var/hg/tracsupport/yourproject.users
           AuthName "FairVPN"
           AuthType Basic
           <Limit POST PUT>
           Require valid-user
           </Limit>
        </Location>]]></screen></section></section></article>