73 votes

Comment installer Mercurial et hgwebdir sur IIS ?

J'ai été à la recherche partout pour décent instructions sur la façon d'obtenir hgwebdir de travail sur IIS mais je n'ai pas trouvé beaucoup de peine.

Il y a cette "étape par étape" sur l'Mercurial wiki, mais il n'est pas très bon. Il y a aussi ceci et cela, mais encore une fois, je ne peux pas trouver les bonnes étapes pour conduire jusqu'à l'endroit où elles ont commencé.

49voto

jwanagel Points 3531

J'ai juste eu à installer un nouveau Mercurial exemple hier, voici des instructions mises à jour pour la 1.7:

  1. Installez Mercurial (ces instructions ont été testées avec 1,7)
  2. Installer Python (pour Mercurial 1.7, vous devez utiliser la version x86 de Python 2.6.6)
  3. Vous aurez besoin de télécharger le hgweb.cgi fichier à partir de l'Mercurial source. Vous pouvez télécharger la source en cours d'exécution: hg clone http://selenic.com/repo/hg
  4. Créer un dossier de votre dossier de l'application web. Vous aurez besoin de trois choses dans ce dossier:

    • Le hgweb.cgi fichier
    • Le contenu de la Library.zip à partir de votre "C:\Program Files\Mercurial" dossier
    • Le dossier de Modèles à partir de votre "C:\Program Files\Mercurial"
  5. Vous devrez vous assurer que vous avez Python mis en place dans IIS.

    • Activer CGI via la suivante: Panneau de configuration -> Fonctionnalités Windows Activer ou Désactiver -> Rôles> Web Server (IIS): > Ajouter des Services de Rôle -> Vérifier CGI
    • Créer un nouveau Site Web dans IIS et assurez-vous que le chemin d'accès physique est le dossier que vous avez créé ci-dessus
    • Dans les Mappages de gestionnaires pour le nouveau site web, sélectionnez "Ajouter un Mappage de Script". Entrez *.cgi pour le chemin de la requête, c:\Python26\python.exe -u "%s" pour le fichier Exécutable, et Python pour le Nom.
  6. Vous aurez également besoin de créer un fichier nommé "hgweb.config" avec un contenu similaire à ci-dessous. Le chemin dans le fichier doit être l'emplacement sur votre disque dur où vous souhaitez stocker le dépôt Mercurial:

    [collections]
    c:\Mercurial\repos = c:\Mercurial\repos

  7. Modifier la hgweb.cgi fichier et modifier la ligne où il définit le chemin d'accès à votre hgweb.config pour quelque chose comme ce qui suit (où le hgweb.fichier de config est):

    config = "C:\Mercurial\hgweb.config"

  8. Maintenant, ouvrez un navigateur et accédez à l' http://localhost/mercurial/hgweb.cgi (ou quelle est l'URL appropriée chemin que vous avez mis en place dans IIS) et vous devriez voir le dépôt Mercurial page.

Aussi, découvrez Jeremy Skinners blog . C'est un peu désuet, mais très gentille, des mesures comme la mise en place de l'URL ré-écriture propre URL.

34voto

Ken Pespisa Points 14935

Il semble que depuis Mercurial 1.5.2 a été publié, ces tutoriels ne fonctionnent pas exactement de la droite. Pour une chose, hgwebdir.cgi a été supprimé, et est désormais remplacé par hgweb.cgi.

Les instructions qui fonctionne le mieux pour moi est à eworldui.net:

http://www.eworldui.net/blog/post/2010/04/08/Setting-up-Mercurial-server-in-IIS7-using-a-ISAPI-module.aspx

Ces instructions sont destinées pour IIS 7 ou plus. Si vous l'avez installé IIS 6, j'ai préparé des instructions orientée vers Win2k3 et IIS 6.0:

http://partialclass.blogspot.com/2010/05/setting-up-mercurial-server-on-win2k3.html

Mise à JOUR: Peu de temps après l'obtention de ce travail, j'ai appris que BitBucket changé leur dispositif de tarification à offrir gratuit, illimité, d'hébergement privé: https://bitbucket.org/. J'aurais opté pour que, dans un battement de coeur quand j'ai été à l'origine de travailler sur ce projet.

12voto

BenAlabaster Points 20189

J'ai trouvé que le blog au Vampire de Base était un bon début, mais il ne passe pas dans près de suffisamment de détails pour ce que je recherchais.

J'ai fait 4 partie blog sur ce que vous obtient en place et en cours d'exécution à partir de zéro avec IIS, y compris l'intégration d'Active Directory, configuration des privilèges de sécurité pour le push/pull, la personnalisation du template, j'aimerais le reproduire ici, mais elle est assez longue haleine étant qu'Mercurial a été vraiment conçu pour être hébergé sur Linux/Apache:

http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html

11voto

Ben Schwehn Points 3162

Il y a un tutoriel assez bon et complète ici : http://vampirebasic.blogspot.com/2009/06/running-mercurial-on-windows.html

11voto

Clay Lenhart Points 459

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X