Creazione di un server SVN su Debian Lenny

From RVM Wiki
Revision as of 15:30, 8 October 2009 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Installazione pacchetti

sudo apt-get install subversion libapache2-svn libapache2-mod-python trac

Configurazione Apache

Si crea la configurazione base per trac ed SVN, che poi includerà gli specifici files di configurazione che verranno creati per pgni progetto

  • Dile di cfg per trac:
cat << EOFile | sudo tee /etc/apache2/sites-available/trac.mendrisio.cross.priv >  /dev/null
#<VirtualHost *:80>
#<VirtualHost *:80>
#        ServerName trac.mendrisio.cross.priv
#        Redirect permanent / https://trac.mendrisio.cross.priv/
#</VirtualHost>

<VirtualHost *:80>
        ServerName trac.mendrisio.cross.priv
        DocumentRoot /files/trac
        CustomLog /var/log/apache2/trac.mendrisio.cross.priv/access.log combined
        ErrorLog  /var/log/apache2/trac.mendrisio.cross.priv/error.log
        #SSLEngine On
        #SSLCertificateFile /etc/apache2/apache.pem
        <Location />
                SetHandler mod_python
                PythonHandler trac.web.modpython_frontend
                PythonInterpreter main_interpreter
                PythonOption TracEnvParentDir /files/trac
                PythonOption TracUriRoot /
        </Location>
        include /files/trac/apache2-config/
</VirtualHost>
EOFile
  • File di cfg per svn-dav
cat << EOFile | sudo tee /etc/apache2/sites-available/svn.mendrisio.cross.priv > /dev/null
#<VirtualHost *:80>
#       ServerName svn.mendrisio.cross.priv
#       Redirect permanent / https://svn.mendrisio.cross.priv/
#</VirtualHost>

<VirtualHost *:80>
        ServerName svn.mendrisio.cross.priv
        CustomLog /var/log/apache2/svn.mendrisio.cross.priv/custom.log combined
        ErrorLog  /var/log/apache2/svn.mendrisio.cross.priv/error.log
        include /files/svn/apache2-config/
</VirtualHost>
EOFile
  • Creazione directory per i logfile:
sudo mkdir /var/log/apache2/svn.mendrisio.cross.priv
sudo mkdir /var/log/apache2/trac.mendrisio.cross.priv
  • Abilitare i due siti:
sudo a2ensite svn.mendrisio.cross.priv
sudo a2ensite trac.mendrisio.cross.priv

Script per creare i repository e l'istanza trac

Creare lo script:

vi /files/new_svn_trac_project
#!/bin/bash

if [ -z "$2" ]
then
        echo Usage:
        echo new_svn_trac_project projectDir ProjectName
        exit 127
fi

(cd /files && \
mkdir -p svn/apache2-config && mkdir -p trac/apache2-config \
cd svn ) || ( echo Base path error. Aborting.; exit 127)

sudo svnadmin create --fs-type fsfs /files/svn/$1

sudo trac-admin \
               /files/trac/$1 initenv \
               $2 \
               sqlite:db/trac.db \
               svn \
               /files/svn/$1 \
               /usr/share/trac/templates

cat << EOFile | sudo tee /files/trac/apache2-config/$1.conf > /dev/null
<Location /test>
        AuthType Basic
        AuthName "Trac $2"
        AuthUserFile /files/svn/$1/conf/passwd
        Require valid-user
</Location>
EOFile

cat << EOFile | sudo tee /files/trac/apache2-config/$1.conf > /dev/null
<Location /$1>
        DAV svn 
        AuthType Basic
        AuthName "SVN-DAV for $2"
        AuthUserFile /files/svn/$1/conf/passwd
        SVNPath /files/svn/$1/
        Require valid-user
</Location>
EOFile

sudo htpasswd -bc /files/svn/$1/conf/passwd gabriele passwd1234
sudo htpasswd -b  /files/svn/$1/conf/passwd max fmax1975
#sudo htpasswd -b  /files/svn/fiuto/conf/passwd marco form433io

sudo chown -R www-data /files/svn/* /files/trac/*
sudo chmod -R 770 /files/svn/* /files/trac/*

sudo invoke-rc.d apache2 reload
  • Renderlo eseguibile
chmod +x /files/new_svn_trac_project
  • Creare un nuovo progetto con:
./new_svn_trac_project projectDir ProjectName

Riferimenti