Yerel Mercurial sunucu php vekil

3 Cevap php

Ben merak ediyordum php geçidi kamu ve o sunucu localhost dinleme için her şeyi yönlendirir, böylece yerel onlu dinleyen bir sunucuya bir php proxy oluşturmak mümkündür.

Bu sunucu hg sadece 127.0.0.1 ve php kimlik doğrulaması yapacak dinler hizmet Mercurial en olacaktır.

Bunu yapmak mümkün mü? Herkes sadece http get çalışır böylece php genel vekil yapmak için nasıl bir fikri vardır, ama aynı zamanda itmek hg?

Ben auth ile civalı repo barındırmak için yolları vardır biliyorum, ama bu bir eklenti bilgisayarda ve ben gibi daha uygulamalar için alan bir sürü yok

3 Cevap

Sen çalıştırmak gerekmez hg serve.

Bunun yerine, hgweb.cgi veya hgwebdir.cgi kullanın. Bu Apache altında çalıştırılabilir standart CGI komut vardır. hgweb.cgi tek bir depo sunmaktadır ve hgwebdir.cgi çoklu depoları vermektedir. Onlar Apache yüklü olması için herhangi bir özel modülleri gerekmez, ve Apache yerleşik erişim kontrol ve doğrulama mekanizmalarının tümünü kullanabilirsiniz.

Iyi referans PublishingRepositories bunu nasıl açıklar ve aynı zamanda daha az kurulum gerektiren ssh dahil diğer seçenekleri, karşılaştırır Mercurial wiki, üzerinde.

Eğer gerçekten PHP kullanmak istiyorsanız, istediğiniz ne olursa olsun ağ yapmak için soket işlevleri kullanabilirsiniz. (Http://ch.php.net/manual/en/ref.sockets.php) Ve sen istersen bağlanmak için fsockopen kullanabilirsiniz. Eğer konsol tarafından işletilen bir PHP komut dosyası bu birleştirmek ve onu kullanabilirsiniz. Çalışan proxy tutmak için art arda set_time_limit kullanın. Eğer bilgi ve şans bir sürü bu halletmek gerekir.

Ama aslında (diğer cevaplar ve yorumları görmek) ne yaptığınızı gerçekten garip. Bu yapılandırma için ne olursa olsun sebebi, bu yanlış.

Eğer apache içinde php çalıştırıyorsanız, o zaman muhtemelen php ile istediğinizi yapabilirsiniz. Sadece ve hazırsınız (Eğer WSGI veya daha iyi bir çözümdür cgi, koşamam varsayarak) hgserve vekalet için apache yapılandırın. Ben apache ve hgserve şimdiden masaya getirmek gerekmez PHP arazi eklemek için bir şey olduğunu sanmıyorum.

Ayrıca RangeRequests, desteği eklemek için emin olmak gerekir olsa Ama, evet, PHP Apache vekil işlevselliğini reimplemnt hangi bazı durumlarda cıvalı kullanır. Verimlilik için RFC2616 önbelleğe alma mantığı (varsa-başlıklarıyla, Cache-Control, Expires, Son-Modifiye, vb) ihmal etmeyin ...