Creazione di un server SVN su Debian Lenny
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