sabato 12 settembre 2009

mettere Apache e IIS sulla stessa macchina e sulla stessa porta (80)

Si, è possibile far girare Apache sulla stessa macchina, assieme a IIS6 (windows 2003 server).

In pratica, dobbiamo dire a IIS6 di "ascoltare" solo su alcuni indirizzi IP della scheda di rete, in modo tale da lasciarne alcuni liberi per Apache.

Così facendo, potremo usare IIS6 ed Apache sulla stessa porta 80.

Ipotizziamo abbiamo una macchina con Windows 2003 Server, su cui girano Apache e IIS6.
Ipotizziamo che su questa macchina abbiamo disponibili tre indirizzi IP:

123.123.123.002
123.123.123.003
123.123.123.004

Ora noi vogliamo assegnare i primi due indirizzi a IIS6, e l'ultimo ad Apache.

Iniziamo...

Aprire il prompt dei comandi (dal menu esegui, digitare cmd) e scrivere:

httpcfg set iplisten -i 123.123.123.002

Il sistema risponde con
HttpSetServiceConfiguration completed with 0

poi eseguire:
httpcfg set iplisten -i 123.123.123.003

Il sistema risponde con
HttpSetServiceConfiguration completed with 0

infine, controlliamo che tutto sia andato bene:

httpcfg query iplisten

Se vogliamo eliminare un IP, digitiamo il seguente comando:
httpcfg delete iplisten -i numero_IP
(ovviamente al posto di numero_IP mettere i numeri ;)

Poi per finire... inviamo i seguenti comandi:

net stop http /y


e infine

net start w3svc

Adesso IIS6 ascolta solo sui due indirizzi IP da noi assegnati, e ci lascia libero il terzo IP per altri programmi...

Apriamo httpd.conf e impostiamo la riga:

Listen 123.123.123.004:80

Salviamo il file httpd.conf

Gli ultimi due comandi da lanciare, e abbiamo terminato:

net stop apache
net start apache

Adesso, avrete Apache e IIS6 che girano sulla stessa macchina, sulla stessa porta 80, ma su indirizzi IP diversi...

Dimenticavo... l'utility "httpcfg.exe" su windows 2003 server dovrebbe esserci gia' di serie.
Se non la trovate, scaricatevi dal sito Microsoft "Windows XP Service Pack 2 Support Tools", installatevelo su XP (oppure estraete il contenuto di WindowsXP-KB838079-SupportTools-ENU.exe) e poi mettete il file httpcfg.exe dentro windows/system32 della vostra macchina 2003 server.