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ć.

[PHP] Przekazywanie tablic w żądaniu GET.
Ten pomysł “wisiał” na mojej liście rezerwowej przez dosyć długi czas, czekając na dobrą okazję do podjęcia tematu. Ze względu na to, że zwykle dzielę się z Wami rozwiązaniami napotkanych przeze mnie błędów / problemów, stwierdziłem, że czas na “coś nowego” - coś, co przynajmniej raz na jakiś czas przełamie schemat. Dzisiejszy wpis będzie więc całkowicie poświęcony pewnej ciekawej funkcjonalności, która może dość istotnie ułatwić obsługę skryptów. Wstęp. Buszując po bezkresach Internetu staram się zaobserwować możliwie jak najwięcej sposobów wykonania stron, zarówno od strony wizualnej [frontend - szablony], jak i tej bardziej “serwerowej” [backend - oczywiście na tyle, na ile się da].
[Apache] Wylogowywanie przy autoryzacji wykorzystującej mechanizmy .htaccess i .htpasswd.

Witam Was ponownie po dłuższej przerwie i zapraszam do lektury kolejnego wpisu. Jak zapewne wiecie, zabezpieczyć dostęp do danych na serwerze można na bardzo wiele sposobów. Wszelkiego rodzaju skrypty logowania bazujące na różnych mechanizmach autoryzacji skutecznie “utrudniają” nam dostęp do żądanych informacji i zmuszają do posłusznego wklepywania loginów i haseł w odpowiednie pola formularzy. W swojej wielkoduszności programiści oprócz logowania zwykle implementują też komplementarną akcję wylogowywania się z konta użytkownika - zaznaczam - zwykle, ponieważ nie zawsze takie “coś” istnieje. W dzisiejszym wpisie chciałbym pokazać przykład takiego “negatywnego przypadku” oraz doradzić, jak wybrnąć z zaistniałej sytuacji.

Problem.

O czym mowa? Oczywiście o tytułowym logowaniu przy użyciu autoryzacji HTTP. Zapewne nie raz widzieliście takie, lub podobne okienko w przeglądarce:

formularz logowania do serwera

[Apache] Tworzenie wirtualnych hostów w systemie Windows.
W trakcie tworzenia strony internetowej oczywistą sprawą jest to, że chcielibyśmy przetestować, jak nasz produkt będzie sprawował się w środowisku produkcyjnym. Instalujemy więc lokalnie serwer testowy [np. WAMP, XAMPP] tak, aby wersje poszczególnych komponentów “pasowały” do tych, które będą obecne na serwerze docelowym. W ten sam sposób dostosowujemy też konfigurację tychże, tak, aby przeprowadzana symulacja była maksymalnie zgodna [np. ustawienia dotyczące register_globals czy magic_quotes_gpc - czasem można trafić na “ciekawy” serwer produkcyjny, stąd trzeba zadbać o wszystkie, nawet przestarzałe / zdeprecjonowane możliwości].
[PHP, (My)SQL] Systemy uprawnień na stronach internetowych, część 0×02: Poziomy użytkowników.

Przyznaję bez bicia, że od ostatniego wpisu w tej serii upłynęło [zbyt] wiele czasu, za co ponoszę winę jedynie ja, ponieważ dopisywałem po jedno - dwa zdania co jakiś czas, ale ogólnie post “wisiał” na liście szkiców i “grzał ławkę”, nie mogąc się doprosić o solidne dokończenie i wejście na “boisko” strony głównej niniejszego bloga. W związku z tym postaram się dzisiaj i za tydzień zamieścić ostatnie części, tak, aby można było zamknąć temat. Przy tworzeniu kolejnej tego typu serii będę musiał chyba od razu napisać wszystkie części i po prostu publikować je w pewnych odstępach czasu, bo w tym tempie to kolejny wpis ukazałby się pewnie w listopadzie. ;] Ale do rzeczy: w jednym z poprzednich wpisów omówiliśmy najprostszy system zarządzania uprawnieniami, czyli autoryzację na podstawie flagi dostępu do danej sekcji strony. Dzisiaj rozszerzymy to rozwiązanie pozwalając na większą kontrolę i możliwość konfiguracji miejsc, do których ma dostęp nasz użytkownik.

Na czym to polega?

Opisany wcześniej sposób autoryzacji nie jest optymalny, ponieważ w podstawowej wersji pozwala na podzielenie użytkowników na jedynie dwa typy - tych którzy mają dostęp do treści “ukrytych” i tych, którzy muszą się “obejść smakiem”. Wprowadzanie kolejnych kolumn opisanych jako obszary dostępu także nie zdaje egzaminu - przy rozrastającym się systemie musielibyśmy stworzyć tabelę posiadającą kilkadziesiąt, jeśli nie kilkaset kolumn w stylu “allow_[nazwa obszaru]“. Tutaj z pomocą przychodzi nowy pomysł - poziomy użytkowników.

[JavaScript, PHP] Powrót do poprzedniej strony.

Jakiś czas temu znalazłem u Piotra Sajnoga wpis o WordPressowej wtyczce Comment Redirect, pozwalającej na wyświetlenie po dodaniu przez użytkownika pierwszego komentarza na blogu strony z podziękowaniem [i zachętą do dalszej współpracy ;]]. Zostawiła tam komentarz także Banny, która zdecydowała się przetestować jej [tej wtyczki ;]] działanie także u siebie, gdzie miałem okazję pierwszy raz zetknąć się od strony użytkownika z tytułowym przekierowaniem. Zauważyłem jednak, że po dodaniu komentarza musiałem sam zatroszczyć się o “nawigację wstecz” do wpisu, ponieważ strona nie zawierała ani elementu meta refresh, ani żadnej innej JavaScriptowej metody przeniesienia na poprzednią stronę. Zasugerowałem więc w jednym z komentarzy, żeby umieściła w kodzie tej strony “coś”, co pozwoli na wygodniejsze korzystanie z tej strony. Ze względu na to, że nie zajmuje się ona programowaniem, z miejsca zostałem poproszony o pomoc.