Soru Windows'ta git-http-backend w / Apache kurulum adımları nelerdir?


Kullanarak bir Git sunucusu kurmak istiyorum "Akıllı HTTP" yaklaşımı. Ancak, Windows'da çalışmak için zorluklar yaşıyorum ve Apache için yeniyim. Httpd.conf, kısmen:

SetEnv GIT_PROJECT_ROOT "d:/repositories"
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ "C:/Program Files/Git/libexec/git-core/git-http-backend.exe"

<VirtualHost 172.16.0.5:80>
    <LocationMatch "^/git/.*/git-receive-pack$">
            AuthType Basic
            AuthName "Git Access"
            Require group committers
    </LocationMatch>
</VirtualHost>

Birisi Windows'ta git-http-backend kullanarak bir Git sunucusu kurmak için gerekli adımları verebilir mi?


6
2018-03-14 03:26


Menşei




Cevaplar:


Windows üzerinde çalışmak için birkaç küçük ayrıntı var, ancak aşağıdaki yapılandırmada bunu yapmayı başardım:

SetEnv GIT_PROJECT_ROOT d:/Export/GIT/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ "C:/Progra~1/Git/libexec/git-core/git-http-backend.exe/"

<Directory "C:/Program Files/Git/libexec/git-core/">
  Options +ExecCGI
  Allow From All
</Directory>

Apache günlüklerini ve olay görüntüleyicisini neyin yanlış gittiğini görmenizi tavsiye ederim.

Örneğin,

  • libiconv.dll bulunamadı Windows'da DLL dosyalarının bulunması gerekir. $PATHveya aynı klasörle .exe dosya. En kolay düzeltme, dosyayı kopyalamaktır.
  • Apache'de, izinlerin yürütülebilir dosyayı çalıştırması için ayarlanması gerekir (ExecCGI seçenek).

Şimdi, hata ayıklamaya devam etmek için, burada birkaç işaretçi var.

Apache günlüklerini izlemenin en kolay yolu, "Git bash" kabuğunu açmak ve aşağıdaki komutu çalıştırmaktır:

tail -f /c/Program\ Files/Apache\ Software\ Foundation/Apache2.2/logs/{access,error}.log &

TAB tamamlamayı kullanarak bu komutu ve yolu girebilir ve öneri listesini almak için 2x TAB tuşuna basabilirsiniz. & sonunda, bir arka plan sürecine dönüşür. Her istekte bulunduğunuzda veya apache'yi yeniden başlattığınızda, yeni günlük satırları ekranınızda kayar.

tail işlem, aşağıdakilerden birini kullanarak durdurulabilir:

jobs         # See the background jobs
kill %1      # Kill the specific process

veya:

fg           # Bring the first job in the foreground
Ctrl+C       # Kill the foreground process

Tarayıcınızda git URL'yi açmaya çalışma, bu işe yaramaz. Bunun yerine, aynı GIT Bash kabuğunda git clone Komut. Örneğin.:

git clone http://localhost/git/somefolder.git

... ve günlüklerin, hataların nereye gittiğini göstererek ilerlediğini göreceksiniz.


Beri git-http-backend herhangi bir HTML ön sağlamaz, kalbiyle tavsiye ederim gitphp Bunun için (hemen hemen aynı olarak adlandırılan birden fazla proje var unutmayın). Kurulumu kolaydır ve akılda msysGit desteği ile oluşturulmuştur. Bu, mevcut tüm depolara göz atmak için güzel bir web arayüzü sağlamalıdır.

Git klasöründeki boşluklarla ilgili sorunlarım var, bunlar kaçınmak için en iyisidir.

Şifreleri hatırlamak istiyorsanız, HTTP URL'sini klonlamak en az msysGit 1.7.1 gerektirir. Şifreler bir _netrc profil klasörünüzde dosya (%USERPROFILE%) aşağıdaki düzende:

machine git.mydomain.com login MyAccount password MyPassword

Alternatif olarak, kimlik bilgilerini klon URL'sinde belirtebilirsiniz, ancak bu alt modülleri bozar.


Dipnot: Sunucunuz IIS 7 ve .NET 4'ü de desteklediğinde, ayrıca bakmak isteyebilirsiniz. http://www.jeremyskinner.co.uk/2010/06/25/hosting-a-git-server-under-iis7-on-windows/ veya http://github.com/yysun/Git-Web-Access Bu projeler, .NET'e dayanan Git için bir HTTP arka planı sağlar. Bu araçları kullanamadım çünkü sunucu hala Windows 2003 çalıştırıyor.


7
2017-07-22 13:59





<comment_to_the_question>

Windows'da çalışmak için zorluklar yaşıyorum

  1. Hangi zorluklar?
  2. "Windows'da" GNU / Linux'tan işe yarar mı?

Ayrıca, günlükleri de eklemelisiniz apache ve git, sürümü git sorunu daha kolay takip etmek.

</comment_to_the_question>

Yapılandırma dosyası ilk bakışta benim için iyi görünüyor. Kimlik doğrulama gereksinimini kaldırmaya çalışın ve önce onsuz test edin.


-1
2018-03-20 00:55