Home > Artykuły, Webmastering > Własny serwer WWW, instalacja Apache i PHP

Własny serwer WWW, instalacja Apache i PHP

SerwerW ż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

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

Apache - Server Information

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

Apache - Installing

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.

Apache - Service Monitor

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

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

PHP Info

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.

Edytowanie zmiennej systemowej Path

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.

  1. 17 stycznia 2010 at 00:06 | #1

    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?

  2. 17 stycznia 2010 at 01:25 | #2

    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 :)

  3. 17 stycznia 2010 at 12:09 | #3

    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…

  4. Franek
    12 lutego 2010 at 21:59 | #4

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

  5. 12 lutego 2010 at 22:12 | #5

    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.

  6. Franek
    12 lutego 2010 at 22:19 | #6

    Tak, to Vista. Pomogło, wielkie dzięki za błyskawiczną pomoc!!

  7. kos@
    6 marca 2010 at 20:19 | #7

    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

  8. 6 marca 2010 at 20:32 | #8

    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.

  9. kos@
    6 marca 2010 at 21:28 | #9

    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

  10. 6 marca 2010 at 21:38 | #10

    A dodałeś na końcu w ogóle odwołanie do PHP:

    LoadModule php5_module "G:\Server\php\php5apache2_2.dll"
    AddType application/x-httpd-php .php
    PHPIniDir "G:\Server\php"
    

    ?

  11. kos@
    6 marca 2010 at 22:02 | #11

    Po wpisaniu wywala Apacha:(

  12. kos@
    6 marca 2010 at 22:02 | #12

    Ścieżki oczywiście poprawne.

  13. 6 marca 2010 at 22:23 | #13

    Tzn. co się dzieje? Jakiś komunikat? Treść?

  14. kos@
    6 marca 2010 at 22:36 | #14

    The requested operation has failed!

  15. 6 marca 2010 at 22:55 | #15

    Jak możesz, wyślij oba pliki konfiguracyjne (httpd.conf i php.ni) na maila mi, rzucę okiem – mail w dziale kontakt.

  16. Sałat
    6 maja 2010 at 07:01 | #16

    Skonfugurowałem Apacha wszystko na komputerze działa, jednak gdy wpisuję moje aktualne IP na innym komputerze nic nie wczytuje :( POMOCY

  17. 6 maja 2010 at 09:14 | #17

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

  18. 9 czerwca 2010 at 15:11 | #18

    kos@ :The requested operation has failed!

    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

  1. Brak jeszcze trackbacków