This post comes from the first version of this blog.
Please send me an email if anything needs an update. Thanks!
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:
|
|
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. ;]