7
sty

Apache, Windows, Skype: make_sock: could not bind to address 0.0.0.0:80.

Kilka miesięcy temu miałem problem z moim WampServerem, a właściwie z jednym elementem zawartego w nim stosu WAMP – serwerem Apache. Jeśli nie uruchomiłem go jako pierwszego zaraz po starcie komputera, to ikonka pakietu w trayu świeciła się na „żółto”, co nie oznaczało jakichś krytycznych błędów, ale z drugiej strony nadal nie pozwalała na pracę na localhoście. Jako, że w pewnym momencie moje zdenerwowanie tym utrudnieniem tradycyjnie przekroczyło wartość graniczną, zdecydowałem, że przeprowadzę dochodzenie i znajdę rozwiązanie problemu. Zapraszam do lektury.

Problem: Po co komu port 80?

Aby serwer Apache [zresztą każdy inny też] mógł poprawnie obsługiwać ruch na serwerze [w tym wypadku localhost], musi mieć udostępniony port o numerze 80, który jest standardowym i domyślnym kanałem ruchu poprzez protokół HTTP. Czasem jednak ten port jest z niewiadomych przyczyn zablokowany przez inne narzędzie, które teoretycznie nie powinno w ogóle go wykorzystywać.

Znalezienie problematycznej aplikacji nie jest wcale proste. Aby w ogóle zobaczyć, co się dzieje z naszym systemem, musimy wykorzystać narzędzie podglądu zdarzeń [event viewer] w Panelu Sterowania. Należy zatem uruchomić narzędzie eventvwr.msc:

I po chwili widzimy jedno lub więcej zgłoszeń od usługi Apache [Apache Service]:

Które po kliknięciu dają nasz „upragniony” komunikat o właściwym błędzie:

Rozwiązanie: Uwolnić port 80!

W tym momencie „do boju” wkraczają narzędzia konsolowe, krótko mówiąc, użytkownik się zdenerwował i chce wiedzieć, co blokuje mu jego ulubiony port. Odpaliłem więc PuTTYcyg i szybko zalogowałem się do sesji Cygwina. Wszystkim, którzy kiedykolwiek próbowali „działać” w tematyce sieciowej pod Windowsem na pewno znane jest narzędzie netstat. Posiada ono bardzo interesujący przełącznik -b, który pokazuje, jakie aplikacje, biblioteki i inne „cuda” są zarejestrowane jako użytkownicy określonych kanałów komunikacji.

Żeby przy okazji nie przeszukiwać setek niepotrzebnych linii wykorzystałem narzędzie grep, co oszczędziło masę czasu. Ale do rzeczy – polecenie:

netstat -anb | grep :80 -C 3

Zwróciło następujący wynik [oczywiście zwróciło setki linii, ale wybrałem te interesujące ;]]:

Protokół  Adres lokalny          Obcy adres        Stan           PID
TCP    0.0.0.0:80             0.0.0.0:0              NASŁUCHIWANIE    2424
[Skype.exe]

W tym momencie „żaróweczka się zapaliła” i użytkownik pomyślał sobie „aha! takie buty!” i szybko spojrzał w tray, gdzie wdzięcznie uśmiechała się do niego ikonka Skype’a. Jakby to zrobił jeden z moich kolegów z uczelni – najpierw powiedziałby: „A masz, ty brzydki!”, a potem szybko wyłączył problematyczny program:

Restartujemy WampServer:

i po wszystkim – działa! Ot i koniec dzisiejszej bajeczki. ;]

Skype: Wyłączamy nasłuchiwanie na portach 80 i 443.

W komentarzach @prachwal wspomniał, że Skype posiada opcje pozwalające wyłączyć jego niewątpliwie mało szczęśliwą opcję nasłuchiwania na portach 80 i 443. Sprawdziłem, faktycznie istnieje i ma się dobrze. Aby się do niej dostać wystarczy w opcjach wybrać pozycje Advanced > Connection:

Odznaczamy haczyk przy opisie i w tym momencie możemy być już pewni, że Skype więcej nam nie przeszkodzi. ;]

Podsumowanie.

Z dzisiejszego wpisu można wynieść o wiele więcej informacji, niż sugeruje sam tytuł. Myślę, że na podstawie zawartych tu informacji powstanie jeszcze jeden wpis, w którym skupię się na jednym z fragmentów dzisiejszego, ale to na razie tajemnica. Zapraszam na niedzielny Linkdump, a tymczasem życzę miłej pracy z serwerem Apache. ;]

Warto przeczytać.

Trwa ładowanie…

Subscribe without commenting

Wyszukaj:
Twitter
http://t.co/piYQJA2z /cc @merowing_ you'll like it :)
3 days ago
"It is about being polite, respectful and kind. That's the open source currency. Can't pay in these values? You shouldn't be using it."
4 days ago
Facebook
© Copyright 2010-2012 Tomasz Kowalczyk. All rights reserved. Created by Dream-Theme — premium wordpress themes. Proudly powered by WordPress.