Jag utgår från att man redan har en färdiginstallerad maskin med Ubuntu Server. Maskinen som jag installerade detta på körde Ubuntu Server 11, men proceduren borde vara precis samma på nyare versioner.
1. Börjar med att se till att alla paket är uppdaterade.
sudo apt-get update
sudo apt-get upgrade
2. Installera mercurial-server och apache2
sudo apt-get install mercurial-server apache2
3. Skapa hgweb.config
sudo nano /var/lib/mercurial-server/repos/hgweb.config
Lägg till följande text i filen:
[collections]
/var/lib/mercurial-server/repos/ = /var/lib/mercurial-server/repos/
4. Skapa index.cgi och folderstruktur
sudo mkdir /var/www/cgi-hg
sudo cp /usr/share/doc/mercurial-common/examples/hgweb.cgi /var/www/cgi-hg/index.cgi
5. Redigera index.cgi
sudo nano /var/www/cgi-hg/index.cgi
Ändra följande rad från:
config = "/path/to/repo/or/config"
till:
config = "/var/lib/mercurial-server/repos/hgweb.config"
6. Lägg till en root-användare för mercurial-server
Kopiera din publika SSH-nyckel till /etc/mercurial-server/keys/root/
Om du behöver skapa en SSH-nyckel kan detta göras med putty-keygen från Windows.
I unixoperativ kan man använda ssh-keygen kommandot.
Efter att SSH-nyckeln blivit tillagd behöver mercurial-server uppdateras för att hitta nya användare.
sudo -u hg /usr/share/mercurial-server/refresh-auth
7. Lägg till fler användare
Börja med att klona ut hgadmin-mappen från servern
clone ssh://hg@your-server/hgadmin
I din utklonade mapp ska du nu skapa följande undermappar:
keys
keys/root
keys/users
För att skapa en användare gör du en ny mapp med användarens namn, du lägger sedan hans SSH-nyckel i denna mappen. Slutligen lägger du detta i antingen root eller users och pushar tillbaka ändringarna.
Exempelvis
keys/root/enAdmin/publikNyckel
keys/users/SvenH/publikNyckel
Om du behöver ta bort en användare så tar du bort hans mapp och pushar in ändringen.
8. Konfigurera Apache
Vi börjar med att skapa en virtuell host åt Apache för att peka ut mercurial-repon.
sudo nano /etc/apache2/sites-available/default
Lägg till följande i botten av filen men ovanför taggen.
Alias /hg /var/www/cgi-hg
DirectoryIndex index.cgi
AddHandler cgi-script .cgi
Options ExecCGI
Order allow,deny
Allow from all
Slutligen, ge Apache access till hg-mapparna
sudo chown www-data:www-data -R /var/lib/mercurial-server/repos
Källor
Mercurial-server http://dev.lshift.net/paul/mercurial-server/docbook.html
Apache Configuration http://redline6561.livejournal.com/362393.html
Inga kommentarer:
Skicka en kommentar