Symbióza IIS 6 a Apache na jednom serveru
Dnešní dotaz v konferenci WIN mi připomněl, jak jsem se lopotil se zprovozněním Subversion pod Apachem na serveru, kde již bylo rozjeté IIS. Ono to není tak složité, pokud člověk ví, že IIS se chová krapet nevyzpytatelně - prostě by-design feature.
IIS se při spuštění natvrdo "zavěsí" na porty 80 a 443 všech IP adres přidělených danému stroji a to i přesto, že třeba žádnou z nich nemá ve Web či FTP bindings a dokonce i v případě kdy žádný web nemá zvoleno (All Unassigned). Pomocí nástroje ve Windows 2003 Support Tools, který se jmenuje httpcfg.exe, však lze naštěstí IIS umravnit:
-
nainstalovat Support Tools nebo si vytáhnout z instalace httpcfg.exe
-
net stop http /y
-
net stop apache2 (případně jiný název služby, pod kterou běží Apache)
-
httpcfg set iplisten -i xxx.xxx.xxx.xxx (kde xxx.xxx.xxx.xxx je IP adresa, na které chci aby IIS poslouchalo)
-
httpcfg query iplisten (pro kontrolu)
-
v httpd.conf u Apache se přesvědčit, že je tam fakt jiná IP adresa
-
net start w3svc
-
net start apache2
Výsledkem je bezproblémové fungování obou web serverů na jedné fyzické mašině.
Článek na webu v angličtině jsem našel tady - http://www.prismix.com/blog/2006/06/running_apache_and_iis_6_toget.cfm.