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…





skype ma taki ptaszek do wyłączenia portu 80 i 443, nie ma później problemu z jednoczesnym startem Skype i Apache
Nowość w CreateWorkspace wprowadzona od wersji Access 2007
Skype jest zawsze pierwszym podejrzanym w przypadku problemów z portem 80 na lokalnym serwerze :) Nie wiem co za geniusz wpadł na pomysł, aby Skype nasłuchiwał na portach 80 i 443.
http://vbamania.blogspot.com/2010/10/wamp-i-skype.html
Nowość w CreateWorkspace wprowadzona od wersji Access 2007
Prawda? ;] Gdyby to jeszcze działało w sposób pozwalający na równoległe rejestrowanie nasłuchiwania na porcie, to zgoda, ale czy żaden z developerów Skype nie zwrócił na to uwagi? Nikt z nich nie pracuje na localhoście? ;]
SQL- Operator REGEXP uwzględniający wielkość liter w wyrażeniu regularnym
Dzięki, nie wiedziałem o tym, zaraz zaktualizuję wpis z odpowiednim screenem. ;]
SQL- Operator REGEXP uwzględniający wielkość liter w wyrażeniu regularnym
Starałem się to opisać w sposób bardziej ogólny, na wypadek wystąpienia takiego błędu przez inny program. Myślę, że Twój link przyda się tym, którzy chcą rozwiązanie szybko i przyjemnie. ;]
SQL- Operator REGEXP uwzględniający wielkość liter w wyrażeniu regularnym
wiele sieci ma blokowanych wszystko oprócz ruchu na porcie 80 lub 443 ze względów bezpieczeństwa
Nowość w CreateWorkspace wprowadzona od wersji Access 2007
To dosyć istotna informacja, ale dalej nie wydaje mi się, żeby pozostawienie tej opcji domyślnie włączonej było usankcjonowane przez tego typu powody. Mogliby chociaż pytać o takie rzeczy podczas instalacji, chyba jest tam jakaś zakładka „Advanced”? ;]
SQL- Operator REGEXP uwzględniający wielkość liter w wyrażeniu regularnym
Przyznam się, że niedawno miałam ten sam problem, tyle, że w aplikacji Xampp. I byłam dumna z siebie, gdy samodzielnie doszłam do rozwiązania: najpierw włączam Apache, potem Skype. A że problem rozwiązany, to jakoś już niespecjalnie zagłębiałam się w temat, ważne, że działa. Teraz muszę odstawić swoje poczucie dumy z siebie na rzecz fachowego rozwiązania :)
Spokojnie, ja też jestem z Ciebie dumny. Po prostu ze mnie taki typ, któremu nigdy nie wystarcza, że „działa”, muszę jeszcze wiedzieć jak i dlaczego – stąd idea podsumowania tej wiedzy i dzielenia się z Wami na blogu. ;]
SQL- Operator REGEXP uwzględniający wielkość liter w wyrażeniu regularnym
Nooo, Panie Tomaszu, małe zdziwko mnie szarpnęło, jak zobaczyłem, że używasz WAMPa!? To tak na serio, czy tylko testowo?
Ja się przyznam szczerze, że Linux jest systemem wręcz stworzonym dla Apache, czy PHP. Stawianie Apache’a na Windowsie to jakaś kosmiczna pomyłka! IMHO oczywiście, bo może są jacyś zwolennicy tego typu rozwiązań. To jak do Mercedesa pakować instalację LPG. ;-)
A czy ja się gdzieś specjalnie anonsowałem z wykorzystywaniem Linuksa na desktopie? Strasznie ostry ten Twój komentarz, zupełnie niewspółmierny do poziomu całej sytuacji.
Siedzę na Windowsie bo przyznam szczerze, że jestem zwyczajnie zbyt leniwy, żeby stawiać wszystko od nowa na Linuksie. Mam go na serwerze i całkiem przyjemnie się pracuje w „czarnym ekranie”, ale na desku niestety trzymają mnie przyzwyczajenia i trochę softu, którego potrzebuję na uczelni.
Czy Apache na Windowsie to kosmiczna pomyłka? Dyskutowałbym. O ile sam jestem zwolennikiem FLOSS i przyznam, że zapytany o zdanie chętnie przedstawiłbym się jako użytkownik Linuksa, to jednak „życie” szybko weryfikuje takie stwierdzenia. Jak na razie jestem zbyt mało „pr0″, żeby bawić się w konfigurowanie wszystkiego. Oprócz tego mam zbyt dużo pracy, żeby w ogóle myśleć o jakiejkolwiek radykalnej zmianie w wykorzystywanym oprogramowaniu.
Jeśli masz jakieś konkretne rzeczy, które uważasz za istotnie lepsze pod Linuksem, a które są niemożliwe pod Windowsem – napisz. Chętnie podyskutuję na bardziej merytoryczne tematy i odeprę konkretne zarzuty zamiast zwykłego „Windows, łee” [z którym notabene trudno się nie zgodzić ;]].
Zmiany po raz pierwszy- po raz drugi- zrobione!
~Scottie
To teraz Ciebie zaskoczę. Pracuję na Windows 7 na serwerze IIS i programuję na tym w PHP, a podczas przenoszenia kodu na serwer produkcyjny stojący na jakimś BSD i Apache jeszcze nigdy nie miałem problemów.
~Tomasz Kowalczyk
Jest coś, czego nie mogę przeboleć. Na windzie nie działają semafory ani kontrola procesów (czyli coś w stylu wielowątkowości)
SPL – interfejsy
@batman – Najprawdopodobniej wynika to z tego, że próbujesz pod Windowsem wykorzystać coś, co zostało jednak zaprojektowane dla bardziej liberalnych strukturalnie systemów operacyjnych, czyli właśnie Linuksa, BSD i tak dalej. Nie miałem okazji jeszcze korzystać z takich mechanizmów, więc nie traktuj mojego komentarza jako autorytatywnego – po prostu przewiduję, że właśnie taki jest problem. ;]
Zmiany po raz pierwszy- po raz drugi- zrobione!
Są to mechanizmy zależne od platformy, więc niestety dopóki MS nie zrobi dll-ki emulującej takie zachowanie, pozostaje jedynie narzekanie na ich brak :)
SPL – interfejsy
Czyli dobrze przewidziałem, że to problem Windowsa. ;]
Zmiany po raz pierwszy- po raz drugi- zrobione!
Nie nazwałbym tego problemem. Raczej brakiem funkcjonalności :) W końcu mało kto korzysta z semaforów i zarządzania procesami w PHP.
@Tomek: Bez urazy, proszę! Nie było moim zamiarem krytykować Ciebie, tylko po prostu się zdziwiłem, bo osobiście wybrałbym inne rozwiązanie. Wolałbym zainstalować jakąś wirtualną maszynę, albo złożyć/kupić byle jakiego blaszaka i tam na Linksie stawiać Apache, PHP i inne. Windows jest dobry do uruchomienia IDE i PuTTY, a potem podłączasz się do jakiegoś serwera z *nixem.
Generalnie – tak samo jak Ty – również nie jestem zwolennikiem Linuksa na desktopie/kompie domowym. Cenię sobie Windowsa za łatwość instalacji i konfiguracji, zwłaszcza jeśli chodzi o szeroko rozumiane multimedia. Albo inny przykład: taka prozaiczna rzecz jak instalacja modemu USB, która – jak mniemam – w Linuksie zajęłaby mi z miliard godzin, a w Windows uruchamiam jeden plik msi i gotowe.
A, i nie mam zamiaru rozpoczynać wojny nt. wyższości jednego systemu operacyjnego nad innym. Chociaż w prawdzie, RDBMS Oracle na jakimkolwiek serwerze (?) Windows to jest dopiero porażka! W tym przypadku rzeczywiście można mówić o kosmicznym nieporozumieniu. Mam tę wątpliwą przyjemność stykać się z Oracle@WindowsServer w fabryce (czytaj: w robocie) i parafrazując pewne znane powiedzenie: Windows Server jest jak świnka morska – ani to świnia, ani tym bardziej morska! :-P
@batman: Tych „braków funkcjonalności w PHP jest trochę sporo, nie sądzisz? ;]
Zmiany po raz pierwszy- po raz drugi- zrobione!
@Scottie: Czyli sam widzisz, że punkt widzenia zależy od punktu siedzenia. ;] Deliberowanie na tematy Windowsowe jest dla mnie mało ciekawe – wolę rozwiązywać problemy. ;] Kiedyś i tak się w końcu zmuszę i przesiądę na Linuksa, ale to jeszcze pewnie trochę potrwa…
Przy okazji: dodałem Was [Ciebie i @batmana] do „białej listy” koemntujących, mam nadzieję, że wykorzystacie to w odpowiedni sposób. ;] Jak widać dziubię trochę w formularzy odpowiadania na komentarze – jeszcze trochę, a zmuszę WordPressa do pokazywania tego formularza pod komentarzem, na który odpowiadamy. ;]
Zmiany po raz pierwszy- po raz drugi- zrobione!
Właśnie nie. W sumie będzie to kilka bibliotek/rozszerzeń, których nie da się uruchomić pod windą. Ale nie ma tragedii, bo i tak albo nikt o nich nie wie, albo nikt z nich nie korzysta :)
Dzięki za zaufanie w sprawie komentarzy. Możesz się nie martwić. Nie będę wypisywał bzdur, wulgaryzmów ani innych dziwnych rzeczy. Coraz bardzie zaczynam żałować, że nie wybrałem WordPressa zamiast Bloggera. Możliwe, że czeka mnie przesiadka. Bloga hostujesz na samodzielnie, czy korzystać z wordpress.com?
Jeśli tak się przedstawia sprawa tych bibliotek, to faktycznie, nie ma o co kopii kruszyć. ;]
Polecam WordPressa rękami i nogami i wszystkim, co tam jeszcze mam. ;] Możliwość samodzielnego dłubania w kodzie jest nie do przecenienia. Oczywiście posiadając własną domenę i serwer mam własną instalację tego skryptu. Polecam takie rozwiązanie, bo daje najwięcej możliwości. Z tego, co wiem, to WP obsługuje import z Bloggera, więc przesiadka nie powinna być problemem. W razie czego służę pomocą, chociaż ktoś tak doświadczony jak Ty na pewno sam jeszcze by nauczył mnie wielu rzeczy. ;]
Zmiany po raz pierwszy- po raz drugi- zrobione!
Na pewno będę potrzebował pomocy podczas doboru odpowiednich wtyczek. Jak już nadejdzie dzień sądu (możliwe, że całkiem niedługo), wyślę maila ze szczegółami.
A z tym doświadczeniem to nie przesadzajmy. Aż taki stary nie jestem :)
SPL – interfejsy
W takim razie chętnie użyczę wszelkich posiadanych informacji – czekam na maila. W razie czego polecam lekturę wpisów ze słowem „Zmiany” w tytule – zwykle umieszczam tam właśnie informacje o tym, co nowego doinstalowałem.
Co do doświadczenia – jakby tu tylko o wiek chodziło… ;]
Zmiany po raz pierwszy- po raz drugi- zrobione!
A ja przez pół roku leciałem na localhoście działającym na innym porcie (da się to naturalnie zmienić), bo na :80 mi nie śmigało i nie wiedziałem w ogóle o co kaman :D Dopiero gdy na poczet nowej pracy tworzyłem wirtualne hosty to uświadomiono mnie „wyłącz tego ptaszka w Skype”.
Można wyobrazić sobie moje zbulwersowanie ;)
PHP i define
Da się zmienić i owszem, już nie będę sięgał do httpd.conf, ale z tego, co pamiętam odpowiada za to dyrektywa Listen:
Warto się interesować „dlaczego nie działa”, bo dzięki temu zdobywamy cenne doświadczenie. Cały mój blog mógłbym podsumować tym jednym stwierdzeniem: „ja już wiem, dlaczego nie działa, a Ty?”. ;]
Linkdump 24- Podkręć swojego WordPressa!
Scootie, pracuję w hurtowni motoryzacyjnej, zdziwiłbyś się ilu właścicieli mercedesa jeździ na LPG. Tak przy okazji mam windowsa i całkiem miło mi się na nim siedzi. Linuxa nie umiem obsługiwać i nie mam czasu na naukę. Nie twierdzę, że jest gorszy czy lepszy ten czy tamten system, kwestia gustu i przyzwyczajenia, a nawet nieraz konieczności.
+1. W moim przypadku problem polega na tym, że mam za mało silnej woli, żeby się przesiąść na Linuksa na desktopie. Gdyby nie to, nie miałbym żadnego problemu – bo w sumie jedyną kwestią sporną są gry, w które od czasu do czasu lubię pyknąć. Z drugiej strony np. taki Unreal Tournament 2004 ma w Wine status platynowy, a więc nie powinno być aż takich problemów.
Konferencja Falsy Values 2011