czwartek, 20 maja 2010

Apache na wojennej ścieżce. Część 1

Ostatnimi czasy potrzebowałem stworzyć środowisko do pracy z PHP i MySQL. Jako serwer WWW wybrałem Apache, ze względu na to że docelowo pracuję z tym oprogramowaniem tyle że w środowisku Linux.
Każdy kto kiedyś widział pliki konfiguracyjne Apache pod Windows wie że domyślna konfiguracja nieco odbiega od tej Linuxowej, nie znaczy że ma mniejsze możliwości ;) Nic bardziej błędnego. Jednym z takich ukrytych trików jest stosowanie dynamicznego includowania zawartości całych katalogów. Możemy tego dokonać za pomocą instrukcji:
Include conf/extra/*.conf
Widzimy tu dyrektywę Include odnoszącą się do katalogu względnego conf/extra który znajduje się w katalogu głównym w którym zainstalowaliśmy serwer Apache i wskazującego wszystkie pliki *.conf znajduje się w tym katalogu

Inną ciekawostką jest możliwość względnego (względem pozycji pliku który uruchamia proces serwera WWW) wskazywania katalogów w konfiguracji np.:
Directory "../wwwroot/cgi-bin"
Przeanalizujmy tą konstrukcję.
../ - zonacza ni mniej ni więcej katalog wstecz względem aktualnego katalogu roboczego uruchomionego pliku.

Domyślnym katalogiem względem którego się odnosimy np. dołączając pliki jest katalog zdefiniowany za pomocą dyrektywy ServerRoot, np:
ServerRoot "D:/WebApp/Apache"
Definicja taka wskazuje konkretny katalog na dysku D: zawierający pliki Apache. Ciekawostką może być fakt zdefiniowania tej dyrektywy w następujący sposób:
ServerRoot "."
Definicja taka będzie się odnosić do aktualnego umiejscowienia Apache na dysku. Jest to o tyle wygodne że umożliwia łatwe przeniesienie katalogów w inne miejsce na dysku i szybkie rozpoczęcie pracy bez potrzeby konfigurowania wszystkiego w sposób bezwzględny (podając pełną ścieżkę do katalogu). Ewentualnie możemy podać ten parametr w postaci:
ServerRoot "..\Apache"
Czyli Cofamy się jeden katalog i wskazujemy na katalog Apache jako katalog początkowy.

Dokładnie takie same zasady jeżeli chodzi o korzystanie ze ścieżek względnych możemy zastosować do dowolnej innej dyrektywy konfiguracyjnej Apache.

Brak komentarzy:

Prześlij komentarz