2009-10-02 5 views
3

Par défaut, git instaweb attend le serveur web lighttpd, alors que sur le serveur OSX Leopard, apache2 est celui par défaut.Git instaweb Configuration httpd pour utiliser Apache2 sur le serveur OSX Leopard

Ajouter ce qui suit à .git/config:

[instaweb] 
local = true 
httpd = apache2 -f 
port = 4321 
modulepath = /usr/libexec/apache2 

et en cours d'exécution 'git instaweb' résultats dans:

apache2 not found. 
Install apache2 or use --httpd to specify another httpd daemon. 

Comment dois-je mettre en place .git/config pour avoir utiliser mon serveur web par défaut?

Merci

+0

Je ne pouvais trouver aucune solution à ce problème jusqu'à présent. Le meilleur retournement qui a fonctionné était d'utiliser un autre serveur supporteur: httpd = webrick – Peiniau

Répondre

1

Si vous regardez ce git-instaweb patch from February 2009, vous voyez:

# check if server can be executed 
httpd_only="$(echo $httpd | cut -f1 -d' ')" 
if ! type $httpd_only >/dev/null 2>&1; then 
    echo >&2 "$httpd_only not found. Install $httpd_only or use" \ 
      + "--httpd to specify another httpd daemon." 
fi 

Y at-il un problème avec votre attribut exécutable apache2?


Mise à jour 2014 (5 ans plus tard): un commit like f8ee1f0 montre que git-instaweb non seulement suports Apache, mais il ne supporte Apache 2.4:

Détecter disponible Apache MPMs et utiliser d'abord disponible selon suivant l'ordre de préséance:

  • mpm_event
  • mpm_prefork
  • mpm_worker

Thomas Okken « s answer (upvoted) détails comment référencer https pour le démarrage git-instaweb.

+0

Peut-être. Apache est déjà en cours d'exécution sur ce serveur. Si je change 'apache2' pour 'httpd', j'obtiens 'Unknown httpd specified: httpd'. – Peiniau

2

La raison en est que apache2 est nommé httpd sous OS X et que les modules sont ailleurs. J'ai essayé de changer la configuration pour qu'elle pointe vers les chemins corrects, mais le serveur n'a toujours pas fonctionné.

Vous pouvez également utiliser le démon webrick déjà installé. Ajoutez ces lignes à votre fichier ~/.gitconfig (réglage global) ou .git/fichier de configuration (réglage local):

[instaweb] 
       httpd = webrick 
+0

C'est ce que j'ai déjà mentionné dans mes commentaires. – Peiniau

1

Je suis instaweb git pour travailler avec Apache intégré sur mon Mac (en cours d'exécution Lion) comme suit:

  1. en tant que root:
    cd /usr/sbin; ln -s httpd apache2
  2. en tant que root: modifier /usr/libexec/git-core/git-instaweb: ajoutez les lignes
    LockFile "$fqgitdir/gitweb/$httpd_only/access.lock" 
    User UsernameForYourGitServer
    après la ligne
    PidFile "$fqgitdir/pid"
  3. Enfin, votre utilisateur git, cd à votre dépôt, et exécuter
    git instaweb --httpd apache2 -m /usr/libexec/apache2

Cela fonctionne même lorsque vous utilisez déjà le serveur standard, à savoir quand vous avez « Partage Web » activée. Le serveur gitweb sera un processus séparé, écoutant sur le port 1234, plutôt que le port 80 qui est utilisé par le serveur standard.

Pour lancer ce serveur en utilisant launchd, créez un fichier /Library/LaunchDaemons/git-web.plist, comme ceci:

 <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
    <plist version="1.0"> 
    <dict> 
     <key>Label</key> 
     <string>GitWeb</string> 
     <key>WorkingDirectory</key> 
     <string>/Wherever/Your/Repository/Is</string> 
     <key>ProgramArguments</key> 
     <array> 
      <string>git</string> 
      <string>instaweb</string> 
      <string>--httpd</string> 
      <string>apache2</string> 
      <string>-m</string> 
      <string>/usr/libexec/apache2</string> 
     </array> 
     <key>KeepAlive</key> 
     <true/> 
    </dict> 
    </plist>
Questions connexes