Instalacja Apache 2.2 pod Windows
Sunday, March 1st, 2009Instalacja Apache 1.3 pod Windows – instalacja starszej wersji.
Instalacja Apache 2.2 pod Windows.
Serwer Apache można pobrać ze strony: http://httpd.apache.org/download.cgi
Php można pobrać ze strony: http://windows.php.net/download/ – wystarczy pobrać spakowane źródła zipem i rozpakować do dowolnego katalogu(dla apache wersja vc6 thread safe).
Instalacja przebiega dosyć podobnie do Apache w wersji 1.3. Apache pobieramy ze strony w wersji instalacyjnej dla Windows. Pierwsze kroki są bardzo proste, ograniczają się do uruchomienia instalatora i klikania dalej, dalej… Ciekawie robi się dopiero gdy przechodzimy do konfiguracji. Na dobrą sprawę można było by nic nie konfigurować, bo serwer po zainstalowaniu zawiera już plik ze standardową konfiguracją, ale brakuje tam kilku linijek, które są niezbędne do pracy z php i również takich które ułatwiają pracę.
Zaczynamy od ustawienia DocumentRoot i <Directory> tam gdzie znajduje się nasz katalog ze stronami np. “D:/strony”. Zastępujemy standardowe wpisy wskazujące na katalog: htdocs wewnątrz instalacji Apache. Ja trzymam zawsze strony na dysku na którym nie mam systemu, co ułatwia sprawę jak trzeba przeinstalować windows. U mnie wygląda to tak:
- DocumentRoot “D:/strony”
- <Directory “D:/strony”>
Dalej instalujemy php w dowolnym katalogu, ja wrzucam to do katalogu apache: “C:/Program Files/Apache Group/php/”. Dodajemy kolejne wpisy w httpd.conf:
- w sekcji: <IfModule mime_module> np. na samym końcu: AddType application/x-httpd-php .php
- na samym końcu listy z wpisami LoadModule: LoadModule php5_module “C:/Program Files/Apache Group/php/php5apache2_2.dll”
- na samym końcu zmienna, która pozwala na wskazanie położenia pliku php.ini: PHPIniDir “C:/Program Files/Apache Group/php”
Plik: php5apache2_2.dll znajduje się w katalogu php i jest dołączany do źródeł php. Aktualnie korzytam z wersji php: 5.3.10
Konfiguracja php.ini:
Php.ini znajduje się w katalogu php jako php.ini-development lub php.ini-production. Warto go trochę pozmieniać.
- pewnie będziemy korzystać z MySql, z bibliotek graficznych i zip. Odchaszowujemy następujące linijki: extension=php_mysqli.dll, extension=php_gd2.dll, extension=php_zip.dll
- żeby apache znalazł te biblioteki(są dołączone do źródeł php) musimy mu podać scieżkę do nich: extension_dir = “C:\Program Files\Apache Group\php\ext”
- dodatkowo trzeba dodać do zmiennej systemowej PATH scieżkę do biblioteki: libmysql.dll, która znajduje się w kataogu php. Aby dotrzeć do zmiennych systemowych w Windows xp wybieramy: Mój Komputer/Właściwości/Zaawansowane/Zmienne środowiskowe/. Po dodaniu naszej ścieżki do php, restartujemy komputer.
- chcemy też widzieć błędy jakie popełniamy. Serwer jest przeznaczony tylko do testowania aplikacji. Zmieniamy z Off na On: display_errors = On
Teraz już wszystko działa. Warto jednak dodać parę rzeczy, które ułatwią nam pracę:
- mode_rewrite. W aplikacjach opartych np. na Frameworku Zend, bez włączonego mode_rewrite nie da się pracować. Ogólnie mode_rewrite pozwala na manipulowanie adresami stron. Włącza się go w httpd.conf w linijce: LoadModule rewrite_module modules/mod_rewrite.so oraz AllowOverride None – zmieniamy na AllowOverride All w przeciwnym razie zmiany, które wprowadzimy w pliku .htaccess będą ignorowane przez serwer.
- do parametru DirectoryIndex dodajemy index.php: DirectoryIndex index.html index.php
Virtual Hosts:
Bardzo wygodnie jest tesotwać aplikacje i odwoływać się do nich poprzez subdomeny. Odwołujemy się w tedy do aplikacji tak: http://aplikacja.localhost zamiast http://localhost/aplikacja. Nie ulegną wtedy zmianie scieżki i wszystko będzie wyglądało tak jak na serwerze docelowym. Żeby módz korzystać z subdomen w pliku httpd.conf dodajemy na końcu pliku dla każdej subdomeny następujące wpisy:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot “D:\strony\aplikacja”
ServerName aplikacja.localhost
</VirtualHost>
Żeby zmiany były widoczne, trzeba dodać jeszcze wpis w pliku: C:\WINDOWS\system32\drivers\etc\hosts o następującej treści: 127.0.0.1 aplikacja.localhost.
Jak instalowałem za pierwszym razem nie obeszło się bez problemów, jak zawsze wynikających z nieuwagi. W instrukcji zrobiłem wszystko jak dla Apache 2.0 i w pliku httpd.conf ustawiłem LoadModule php5_module “C:/Program Files/Apache Group/php/php5apache2_2.dll. W efekcie Apache nie wystartował i dostałem komunikat błędu :
Syntax error on line 127 of C:/Program Files/Apache Group/Apache/conf/httpd.conf: Cannot load C:/Program Files/Apache Group/php/php5apache2.dll into server:
Wszystko pięknie ale ścieżka jest przecież dobra, nie mogłem się pomylić. Okazuje się że nie zauważyłem że czytam instrukcję dla serwera 2.0. Dla wersji 2.2 trzeba załadować bibliotekę: php5apache2_2.dll a nie php5apache2.dll.