Własny serwer WWW, instalacja Apache i PHP
W życiu każdego webmastera, czy też developera, nadchodzi taki moment, w którym postanawia on uruchomić własny serwer WWW w celu pracy na lokalnej maszynie. Nikt nie lubi, po każdorazowym zapisaniu skryptu PHP, wrzucać go na docelowy serwer z obsługą PHP tylko po to, aby zobaczyć efekt działania. Dużo wygodniejszym rozwiązaniem, jest skorzystanie z lokalnie postawionego serwera wraz z obsługą PHP oraz bazą danych MySQL.
Istnieją wprawdzie gotowe paczki, zawierające w sobie wszystkie te komponenty, instalowane automatycznie bez zbędnych zabaw z konfiguracją, niemniej jednak, z reguły pakiety te posiadają nieaktualne już wersji programów składowych, czy też instalują nadmiar rzeczy nam zbędnych. Być może ręczna instalacja serwera, parsera oraz bazy danych jest bardziej skomplikowana, jednakże, mamy kontrolę nad tym co, gdzie i jak instalujemy.
Wpis ten, jest pierwszą częścią instrukcji, krok po kroku, jak postawić lokalny serwer WWW. Opis skierowany jest w kierunku maszyny roboczej, która jest używana do pisania strony WWW, bądź skryptu PHP a niżeli jako docelowy system serwerowy.
Apache
Apache HTTP, jest to serwer WWW, czyli aplikacja sprawiająca, że po wpisaniu adresu IP naszego komputera, możliwe jest przeglądanie stron udostępnionych przez ów serwer.
Pierwszą czynnością, jakiej musimy dokonać, jest oczywiście pobranie samego programu. Przechodzimy zatem na stronę producenta i pobieramy najnowszą wersję na platformę Windows. W tym celu, z lewego menu wybieramy Download > from a mirror. Pobieramy paczkę oznaczoną jako Win32 Binary without crypto.
Instalacja
Po udanym pobraniu pliku, przechodzimy do instalacji, uruchamiany zapisany na dysku plik. Pierwszy ekran powitalny informuje nas o wersji pakietu, przechodzimy do następnego okna. Po zaakceptowaniu licencji dochodzimy do Server Information w którym musimy podać parametry naszego serwera. W zasadzie możemy pozostawić wartości domyślne, nie mają one większego znaczenie, zwłaszcza że docelowo sami będzie edytować plik konfiguracji serwera.

W oknie Setup Type wybieramy Typical. Ścieżka instalacji może pozostać domyślna. Kończmy instalację klikając Install.

Po zakończonej instalacji, wpisując w pasku adresu przeglądarki adres localhost, naszym oczom powinien pokazać się napis It works! Jeśli takowego nie widzimy, możliwe że inna aplikacja nasłuchuje już na porcie 80, stąd serwer Apache nie może zostać uruchomiony. Jedną z takich aplikacji, jest komunikator Skype, nie wiadomo dlaczego, zajmuje on port 80, mimo iż jest to port zarezerwowany właśnie dla usług serwera WWW. W tej sytuacji wymagany będzie restart komputera. Stan serwera możemy sprawdzić, klikając na nową ikonę w zasobniku systemowym.
Konfiguracja
Po zakończeniu instalacji, musimy jeszcze dokonać kilku drobnych zmian w konfiguracji serwera. Między innymi przenieść folder z dokumentami html do innej lokacji, najlepiej takiej która nie znajduje się na partycji systemowej. Robimy to w celu odseparowania plików jakie serwer ma udostępniać od samego oprogramowania.
Przechodzimy do folderu w którym zainstalowaliśmy Apache, do podkatalogu conf, domyślnie będzie to C:\Program Files\Apache Software Foundation\Apache2.2\conf. Otwieramy do edycji plik httpd.conf.
Odszukujemy linię zaczynającą się od ServerAdmin i zmieniamy jej wartość na nasz adres e-mail:
ServerAdmin twoj@adres.email
Nieco niżej odnajdujemy parametr #ServerName i zmieniamy go w następujący sposób:
ServerName :80
Znaczek # na początku linii, oznacza komentarz, usuwamy go załączając w ten sposób daną komendę. Najważniejsze dla nas ustawienie to DocumentRoot, wskazujące folder przechowywania plików udostępnianych przez serwer. Wybieramy dogodną dla siebie lokalizację na dysku i zmieniamy wartość parametru.
DocumentRoot "G:\Server\www"
Podobnie musimy postąpić z linią:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
…zmieniając ją na:
<Directory "G:\Server\www">
Zapisujemy plik konfiguracji a następnie restartujemy serwer w celu jej uaktywnienia.

Po odświeżeniu adresu localhost w przeglądarce, powinniśmy otrzymać zawartość folderu, z uwagi na fakt iż nie unieśliśmy żadnego pliku w zmienionej ścieżce dokumentów serwera. Naprawiamy szybko ten błąd tworząc przykładowy plik html i zapisując go pod nazwą index.html.
<html> <head> </head> <body> <h1>Hello world!</h1> </body> </html>
Podsumowanie
Cały proces może wyglądać dość skomplikowanie, jednakże sprowadza się on do instalacji oprogramowania serwera, kilku drobnych zmian w pliku konfiguracyjnym oraz zrestartowania usługi.
Jeśli posiadamy publiczny adres IP, wpisując go w przeglądarce innej maszyny niż nasza, powinniśmy ujrzeć dokładnie tą samą stronę co lokalnie.
PHP
PHP jest parserem języka PHP
, umożliwiając nam uruchamianie jego skryptów. Główne zastosowanie, znajduje on właśnie w dynamicznym generowaniu treści stron internetowych.
Podobnie jak w przypadku serwera WWW, musimy najpierw pobrać odpowiednie oprogramowanie. Przechodzimy zatem na stronę php.net i z prawej kolumny pobierany najnowszą wersję stabilną (stable). W moim wypadku było to PHP 5.3.1. W sekcji Windows Binaries zostaniemy przeniesieni na kolejną stronę, gdzie znajdują się pliki wykonywalne dla platformy Windows. Pobieramy wersję VC6 x86 Thread Safe w postaci archiwum ZIP. Jest to na tyle istotne, gdyż inna, z czterech dostępnych, nie będzie poprawnie współpracować z serwerem Apache.
Instalacja
Instalacja sprowadza się do wypakowania zawartości archiwum. Jako iż wersja ta nie wymaga instalacji, najlepiej będzie jeśli umieścimy ją w stworzonym wcześniej folderze Server w podkatalogu php.
Konfiguracja
Przejdźmy zatem do konfiguracji. W głównym folderze PHP robimy kopię pliku php.ini-development i zmieniamy nazwę na php.ini. Otwieramy nowy plik do edycji. Aby nie zaciemniać obrazu, znajdujemy poniższe parametry i zmieniamy je tak jak poniżej:
doc_root = "G:\Server\www"
extension_dir = "G:\Server\php\ext"
date.timezone = "Europe/Warsaw"
Jeśli któryś z parametrów jest poprzedzony znakiem komentarza ; (średnikiem), należy go usunąć. Odpowiednie ścieżki modyfikujemy w zależności od tego gdzie umieściliśmy nasz folder z dokumentami html, oraz sam parser PHP. Jeżeli będziemy używać w PHP funkcji do wysyłania poczty elektronicznej, dobrze jest też ustawić parametry serwera SMTP:
SMTP = twoj.serwer.smtp
sendmail_from = twoj@adres.email
Oczywiście należy tutaj podać swój serwer SMTP oraz domyślny adres e-mail, jaki ma widnieć w polu „od”, wysłanych za pośrednictwem PHP listów.
Nas sam koniec przechodzimy do sekcji Dynamic Extensions. Poniżej niej, znajdziemy listę wszystkich dostępnych rozszerzeń w PHP. Domyślnie wszystkie nie są ładowane (znak komentarza przed każdą z linijek). Aby w przyszłości uniknąć niepotrzebnego stresu, z marszu możemy załączyć kilka z nich:
- php_curl.dll
- php_gettext.dll
- php_mbstring.dll
- php_mysql.dll
- php_mysqli.dll
- php_sockets.dll
- php_sqlite3.dll
W razie potrzeby, nic nie stoi na przeszkodzie, aby później włączyć/wyłączyć któreś z rozszerzeń. Usuwamy znak komentarza z w/w dodatków aby uczynić je aktywnymi.
Zasadniczo jeśli chodzi o PHP to już cała konfiguracja. Ostatnie co musimy zrobić to nakazać serwerowi WWW parsowanie plików z rozszerzeniem php, a nie ich wyświetlanie jako zwykły tekst. W tym celu otwieramy ponownie plik httpd.conf w folderze Apache.
W pierwszej kolejności odnajdujemy fragment:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
…i zmieniamy na:
<IfModule dir_module> DirectoryIndex index.php index.html </IfModule>
Zmiana ta, nakazuje serwerowi wyszukiwanie domyślnego pliku folderu nie tylko wśród plików html, ale także i php.
Przechodzimy na sam koniec pliku i doklejamy taki oto fragment:
LoadModule php5_module "G:\Server\php\php5apache2_2.dll" AddType application/x-httpd-php .php PHPIniDir "G:\Server\php"
Jak zwykle pamiętamy o odpowiednich ścieżkach. Ostatecznie, te trzy linijki odpowiedzialne są za przekazanie plików PHP do parsera i zwrócenie wyniku z powrotem do serwera, aby w rezultacie móc obserwować wygenerowaną stronę.
Jazda próbna
Czas na przetestowanie czy parser PHP działa poprawnie. Po zapisaniu zmian w pliku konfiguracji PHP oraz Apache, przeprowadzamy restart serwera. Kolejno tworzymy następujący plik index.php i zapisujemy go w głównym folderze serwera (gdzie wcześniej umieściliśmy plik index.html).
<?php phpinfo(); ?>
Po odwołaniu się do naszej strony w przeglądarce internetowej, naszym oczom powinien ukazać się wynik działania powyższego skryptu – informacje o parserze PHP.
W razie problemów
Jeśli z jakiegoś powodu, nie uda się ponowny start serwera po dołączeniu do niego obsługi skryptów PHP, możliwe że musimy dodatkowo zmodyfikować ścieżkę przeszukiwania systemu Windows, dodając do niej folder z samym PHP jak i jego rozszerzeniami. W tym celu, przechodzimy do właściwości systemu, zakładka zaawansowane, zmienne środowiskowe. W grupie Zmienne systemowe odnajdujemy tą o nazwie Path i ją edytujemy. Na końcu, po znaku średnika, dopisujemy:
G:\Server\php;G:\Server\php\ext
…pamiętając przy tym, by nie naruszyć znajdujących się tam już danych.

Po zatwierdzeniu, ponawiamy próbę uruchomienia serwera WWW.
Posumowanie
I tym sposobem, postawiliśmy nasz serwer WWW wraz z PHP. Jeśli dopiero zaczynasz przygodę z tym językiem, pewne zmiany w pliku konfiguracyjnym mogą Ci się wydać niezrozumiałe, dlatego ograniczyłem je do niezbędnego minimum. Wraz z wzrostem wtajemniczenia, zaczniesz dokonywać własnych modyfikacji, tak aby pracować możliwe jak najwydajniej.
Na koniec załączam oba pliki konfiguracyjne, jeśli zaprezentowana treść okazała by się niewystarczająca.
Do pełni szczęścia, brakuje nam już tylko serwera bazodanowego MySQL oraz narzędzia, które znacznie ułatwia pracę na bazach danych – phpMyAdmin. Tymi zagadnieniami zajmiemy się w kolejnej części.

Witam,
Właśnie skończyłem instalację apache i php, ale po odświeżeniu strony i restarcie apache, wciąż pokazuje mi się: Hello world, zamiast podsumowania php. Co mogłem zrobić nie tak?
Jeśli masz oba pliki index.html i index.php to usuń ten z rozszerzeniem html, prawdopodobnie ustawiłeś html wyżej niż php przy szukaniu pliku index. W normalnej sytuacji nigdy zresztą nie robi się dwóch plików index
Tak zrobiłem i wciąż mam pustą stronę kiedy wpiszę localhost w przeglądarce. Spróbuję jeszcze raz sprawdzić wszystkie configi, może gdzieś zrobiłem błąd…
Zainstalowałem Apache, ale przy próbie zapisania zmodyfikowanego pliku konfiguracyjnego pojawia się komunikat o braku możliwości zapisania pliku w tej lokalizacji. Czy ten plik powinien zostać tylko zmodyfikowany i jego lokalizacja nie powinna być zmieniona? Jeśli tak, to jak to zrobić, żeby zechciał się zapisać?
Prawdopodobnie używasz Windows Vista bądź 7, gdzie zapis na dysku systemowym wymaga podniesionych uprawnień. Uruchom notatnik w trybie administratora, i dopiero wtedy w nim wybierz plik do edycji a na końcu zapisz.
Tak, to Vista. Pomogło, wielkie dzięki za błyskawiczną pomoc!!
Witam.
Zainstalowałem Apache i PHP. Po instalacji Apache index.html „It works!”. Po instalacji PHP index.html „It works!”. Natomiast po zmianie
DirectoryIndex index.php index.html
wywołanie index.php powoduje rozpoczęcie pobierania pliku: index.php
Tzn. że parser PHP nie jest poprawnie zainstalowany, lub źle skonfigurowany w pliku httpd.conf. Po prostu apache nie wie co zrobić z plikiem php i wysyła go przeglądarce do pobrania zamiast przekazać PHP do przetworzenia.
Dzięki za tak szybką odpowiedź. Sprawdziłem wszystko według poradnika po 100 razy i wygląda, że jest ok.
DocumentRoot – zmienione
Directory – zmienione
DirectoryIndex – zmienione
Co mam sprawdzić???? HELP
A dodałeś na końcu w ogóle odwołanie do PHP:
?
Po wpisaniu wywala Apacha:(
Ścieżki oczywiście poprawne.
Tzn. co się dzieje? Jakiś komunikat? Treść?
The requested operation has failed!
Jak możesz, wyślij oba pliki konfiguracyjne (httpd.conf i php.ni) na maila mi, rzucę okiem – mail w dziale kontakt.
Skonfugurowałem Apacha wszystko na komputerze działa, jednak gdy wpisuję moje aktualne IP na innym komputerze nic nie wczytuje
POMOCY
„Nic” tzn. co? pusta strona czy przeglądarka zwraca monit że strona nie istnieje?
Apache uruchomiony? Można sprawdzić w ikonce w zasobniku lub w uruchomionych usługach systemu Windows.
Mam taki sam problem
Czy został juz on rozwiązany może u mnie tkwi ten sam błąd
Jak dam
LoadModule php5_module „G:\Server\php\php5apache2_2.dll”
AddType application/x-httpd-php .php
#PHPIniDir „G:\Server\php”
to wszystko gra ale z tą ostatnią linią wywala
wracam do tego miejsca bo początkowo dałem jako komentarz ostatnią linie ale zemściło się to na mnie gdy próbowałem odpalić phpmyadmin