Ci-dessous sont ce que j'ai fait après avoir fait une bonne quantité de la recherche pour geting hgwebdir.cgi installation sur IIS6 . Il est basé sur les sites suivants:
Vous aurez besoin pour installer la suite sur le serveur:
- Mercurial (j'ai utilisé la version 1.5)
- La version 2.6 de Python. La version de Python dépend de la version de Mercurial installé.
Mercurial 1.5 utilise Python 2.6. Installer x86, même si vous exécutez la version x64.
Les étapes pour moi ont été:
- Créer un répertoire pour le site web. J'ai utilisé c:\inetpub\wwwroot\hg.
- Dans IIS, cliquez-droit sur le dossier pour hg, sélectionnez propriétés, sélectionnez l'onglet Répertoire de base.
- Cliquez sur Créer un bouton de l'application. Définir les autorisations d'exécution de la section "scripts".
- Toujours dans l'onglet Répertoire de base, cliquez sur le bouton Configuration. Dans la "Configuration de l'Application" popup, cliquez sur le bouton ajouter pour Ajouter une extension d'application. L'Exécutable est c:\Python26\python.exe -u "%s" "%s". L'extension est .cgi. Définir les "verbes" à la "limite à: GET,HEAD,POST". Vérifier à la fois le moteur de Script et de Vérifier que le fichier existe.
- Dans l'onglet Sécurité de Répertoire, cliquez sur le bouton Modifier dans la procédure d'Authentification et de contrôle d'accès de la section. Décochez toutes les méthodes d'authentification, et de cocher la case "Base authenication" la méthode. Définir le domaine par Défaut si vous le souhaitez à votre domaine Active Directory.
- Dans IIS, cliquez sur le dossier Extensions du Service Web dans le panneau de gauche. Cliquez sur "Ajouter une nouvelle extension de service Web". Le nom de l'Extension devrait être le Python, le fichier requis est c:\Python26\python.exe -u "%s" "%s". Assurez-vous que la nouvelle extension est "Autorisé".
Maintenant est un bon moment pour tester que Python est de travail. Créer un fichier dans votre nouvelle Hg dossier nommé test.cgi. Collez le code python suivant:
print 'Status: 200 OK'
print 'Content-type: text/html'
print
print '<html><head>'
print ''
print '<h1>It works!</h1>'
print ''
print ''
Ouvrez le navigateur de votre site, par exemple, http://localhost/hg/test.cgi
Vous devriez voir "It works!" dans le navigateur.
Ensuite, nous allons obtenir le hgwebdir de travail.
- Supprimer test.cgi
- clone le hg repo à un nouveau répertoire: hg clone http://selenic.com/repo/hg
- copie hgwebdir.cgi à votre répertoire web: c:\inetpub\wwwroot\hg\ de la cloné hg repo
- Modifier le fichier et le modifier
application = hgwebdir('hgweb.config')
wsgicgi.launch(application)
pour
application = hgwebdir('c:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)
- Décompressez l'Library.zip fichier dans l'Mercurial répertoire, c:\Program Files\Mercurial\, à votre répertoire web, c:\inetpub\wwwroot\hg\
- Copier le répertoire des modèles de c:\Program Files\Mercurial\templates\ à c:\inetpub\wwwroot\hg\templates\
- Créez un fichier appelé hgweb.config dans votre répertoire web.
Maintenant est un bon moment pour le tester. Accédez à l'URL suivante dans le navigateur, http://localhost/hg/hgwebdir.cgi
- Edit hgweb.config, et collez les éléments suivants:
[collections]
\\server\share$\Hg\ = \\server\share$\Hg\
[web]
allow_push = *
push_ssl = false
Ce sont tous mes préférences, par exemple, nous avons notre repos dans des sous-répertoires à \\serveur\partage$\Hg. L'application web va fonctionner sous les autorisations de l'utilisateur connecté via le navigateur, donc ils ont besoin de permissions de lecture/écriture pour le partage.
La dernière étape est de permettre à de longues connexions qui peut se produire lorsque vous premier clone d'un repo. Exécutez la commande suivante pour augmenter le délai d'attente de 50 minutes:
cd \inetpub\AdminScripts\
cscript adsutil.vbs GET /W3SVC/CGITimeout
cscript adsutil.vbs SET /W3SVC/CGITimeout 3000