Ten rozdział dotyczy systemół Windows 95/98/Me i Windows NT/2000/XP. (Proces instalacji nie został sprawdzony na XP). Nie spodziewaj się, że PHP będzie działać na 16-bitowych platformach takich jak Windows 3.1. Czasem odnosimy się do obsługiwanych platform jako Win32
Są dwa główne sposoby instalacji PHP na Windowsach: albo ręcznie lub używając instalatora InstallShield.
Jeśli masz Microsoft Visual Studio, możesz budować PHP z orginalnego kodu źródłowego.
Jak już zainstalujesz PHP na systemie Windows możesz chceć dołączyć różne rozszerzenia aby zwiększyć funkcjonalność.
Instalator PHP pod Windows jest dostępny pod adresem http://www.php.net/. Pakiet ten instaluje PHP i, w przypadku IIS, PWS i Xitami, także konfiguruje serwer WWW. Zauważ także, że pomimo że instalator InstallShield jest łatwym sposobem na zmuszenie PHP do pracy, ma on wiele ograniczeń, np. nie obsługuje automatycznego ustawienia rozszerzeń.
Zainstaluj wybrany serwer HTTP i upewnij się że on działa.
Uruchom instalator i wykonuj polecenia pojawiające się na ekranie. Dostępne są w rodzaje instalacji: standardowa, która ustawia domyślne opcje, i zaawansowana, która zadaje pytania podczas instalacji.
Instalator zbiera informacje niezbędne do ustawienia pliku php.ini i konfiguracji serwera WWW do użycia PHP. Dla serwera IIS a także PWS na NT Workstation, wyświetlana jest lista węzłów na serwerze z ustawieniami mapowania skryptów, z których możesz wybrać węzły do których chcesz dodać mapowania skryptów PHP.
Po procesie instalacji instalator poinformuje cię czy potrzebujesz zrestartować system, zrestartować serwer lub poprostu zacznij używać PHP.
Ostrze¿enie |
Wiedz, że taki sposób instalacji PHP nie jest bezpieczny. Jeśli potrzebujesz bezpiecznego sposobu na instalację PHP, zrób to lepiej ręcznie, rozważnie dobierając każdą opcję. Instalator automatyczny daje ci od razu działające PHP, ale nie jest ono przeznaczone do pracy na serwerach produkcyjnych. |
Ten przewodnik poprowadzi cię przez ręczną instalację i konfigurację PHP na serwerach WWW pracujących pod systemami Windows. Musisz pobrać pakiet binariów PHP ze strony http://www.php.net/. Orginalna wersja tego przewodnika została napisana przez Bob Silva i znaleźć ją można pod adresem http://www.umesd.k12.or.us/php/win32install.html.
Ten przewodnik opisuje proces ręcznej instalacji dla:
Personal Web Server 3 i 4 lub nowszy
Internet Information Server 3 i 4 lub nowszy
Apache 1.3.x
OmniHTTPd 2.0b1 i nowsze
Oreilly Website Pro
Xitami
Netscape Enterprise Server, iPlanet
PHP 4 dla Windows dostępny jest w dwóch postaciach: jako plik wykonywalny CGI (php.exe) lub jako kilka rodzajów modułów SAPI (na przykład php4isapi.dll). Ta druga postać jest nowością wprowadzoną w PHP 4 i wprowadza znacznie poprawioną wydajność i ulepszoną funkcjonalnoś.
Ostrze¿enie |
Jednakże moduły SAPI NIE powinny być używane na produkcyjnych serwerach. Ogólnie mówiąc, moduły ISAPI mają poważne problemy z niezawodnością, zwłaszcza na platformach starszych niż W2K - możesz doświadczyc wielu błędów 500 serwera a także niestabilności innych modułów serwera, jak np. ASP. Zostałeś ostrzeżony! Powodem jest to, że moduły PHP SAPI używają PHP w wersji z bezpiecznymi wątkami, co jest nowością w PHP 4 i nie zostało to na tyle przetestowane aby zostało uznane za stabilne, a do tego znaleziono już kilka błędów. Z drugiej strony, użytkownicy zgłaszali uzyskiwanie bardzo dobrych wyników z modułami SAPI, jednakże nie znamy nikogo używającego ich na produkcyjnym serwerze. Podsumowując: jeśli potrzebujesz absolutnej stabilności, zamień wydajność modułów SAPI na stabilność plików wykonywalnych CGI. |
Jeśli wybierzesz jeden z modułów SAPI i używasz Windows 95, musisz uaktualnić DCOM ze stron Microsoft DCOM. Dla modułu ISAPI wymagany jest serwer WWW kompatybilny z ISAPI 4.0 (sprawdzone z IIS 4.0, PWS 4.0 i IIS 5.0). IIS 3.0 NIE jest obsługiwane; jeśli potrzebujesz natywnej obsługi PHP powinieneś zainstalować Windows NT 4.0 Option Pack z IIS 4.0.
Poniższe kroki powinny być wykonane przed intrukcjami dla konkretnego serwera.
Zdekompresuj plik dystrybucyjny do dowolnego katalogu, np. c:\php\.
Musisz się upewnić, że wszystkie DLLe których używa PHP mogą być przez niego znalezione. To, które DLLe są potrzebe zależy od tego, których rozszerzeń PHP używasz a także czy PHP jest skompilowane jako CGI czy jako moduł serwera. php4ts.dll jest używany zawsze. Jeśli używasz PHP w postaci modułu serwera (np. ISAPI lub Apache), to niezbędne są DLLe z katalogu sapi. Jeśli używasz DLLi rozszerzających PHP, one także będą potrzebne. Aby upewnić się że DLLe zostaną znalezione, przekopiuj je do katalogu systemowego (np. winnt/system32 lub windows/system) lub upewnij się że są w tym samym katalogu co główny plik wykonywalny PHP lub DLL twojego serwera WWW (np. php.exe, php4apache.dll).
Binaria PHP, moduły SAPI i niektóre rozszerzenia opierają się na zewnętrznych bibliotekach DLL. Upewnij się, że dystrybucyjne DLLe znajdują się w jednym z katalogów przeszukiwanych przez Windows. Najlepiej jest przekopiować poniższe pliki do katalogu systemowego, którym jest zazwyczaj:
c:\windows\system dla Windows 9x/Me |
c:\winnt\system32 dla Windows NT/2000 |
'php4ts.dll', jeśli taki plik już istnieje, nadpisz go |
Pliki z katalogu 'dlls'. Jeśli te pliki są już zainstalowane w twoim systemie, nadpisz je tylko jeśli coś działa nie tak (przed napisaniem ich dobrze jest zrobić kopię zapasową, lub przenieść je do innego folderu - na wszelki wypadek). |
Pobierz najnowszą wersje Microsoft Data Access Components (MDAC) dla twojej platformy, zwłaszcza jeśli używasz Microsoft Windows 9x/NT4. MDAC jest dostępny pod adresem http://www.microsoft.com/data/ .
Skopiuj wybrany plik ini (zobacz niżej) do swojego katalogu '%WINDOWS%' na Windows 95/98 lub do katalogu '%SYSTEMROOT%' na Windows NT/2000/XP mień jego nazwę na php.ini. Twój katalog '%WINDOWS%' lub '%SYSTEMROOT%' to zazwyczaj:
c:\windows na Windows 9x/Me |
c:\winnt lub c:\winnt40 na NT/2000/XP |
Plik dystrybucyjny zawiera dwa pliki ini, php.init-dist i php.ini-optimized. Zalecamy użycie pliku php.ini-optimized, ponieważ opcje zawarte w tym pliku są zoptymalizowane pod względem wydajności i bezpieczeństwa. Najlepiej jest przeczywać rozdział o opcjach inicjalizacyjnych i ustawić każdą opcję własnoręcznie. Jest to dobry sposób jeśli chcesz osiągnąć maksimum bezpieczeństwa, jednakże PHP działa dobrze z domyślnymi plikami ini.
Wyedytuj swój nowy plik 'php.ini':
Musisz zmienić parametr 'extension_dir' aby wskazywał na twój katalog instalacji PHP, lub tam gdzie umieściłeś pliki 'php_*.dll', np. c:\php\extensions
Jeśli używasz OmniHTTPd, nie wykonuj tego kroku. Ustaw 'doc_root' aby wskazywało na katalog dokumentów serwera, np. c:\apache\htdocs lub c:\webroot
Wybierz które rozszerzenia chciałbyś ładować kiedy PHP się uruchamia. Zobacz rozdział o Rozszerzeniach Windows , gdzie możesz znaleźć informacje jak włączyć te rozszerzenia i co jest już wbudowane w PHP. Dobrze jest zmusić do działania i przetestować nowo zainstalowane PHP jeszcze przed włączeniem rozszerzeń.
Na PWS i IIS możesz ustawić browscap.ini aby wskazywało na 'c:\windows\system\inetsrv\browscap.ini' na Windows 9x/Me lub 'c:\winnt\system32\inetsrv\browscap.ini' na NT/2000/XP.
Katalog mibs dostarczany z pakietem dystrybucyjnym dla systemu Windows zawiera pliki z obsługą SMTP. Katalog powinien być przeniesiony do NAPĘD:\usr\mibs (NAPĘD to napęd na którym zainstalowane jest PHP).
Przed rozpoczęciem warto jest odpowiedzieć sobie na pytanie: "Dlaczego budowanie pod Windowsem jest takie trudne?" Do głowy przechodzą dwie odpowiedzi:
Nie ma dużej społeczności programistów lubiących Windows którzy chętnie dzielą się swoimi kodami źródłowymi. Bezpośrednim efektem jest to, że nie poniesione zostały niezbędne inwestycje w infrastrukturę wymaganą do rozwoju oprogramowania. Zasadniczo to co teraz jest dostępne, to niezbędne narzędzia przeniesione z systemu UNIX. Nie zdziw się, jeśli od czasu do czasu pokażą się takie dziedzictwo.
Większosc poniższych instrukcji są w stylu "ustaw i zapomnij". A więc usiądź wygodnie i wykonuj polecenia tak dokładnie jak tylko możesz.
Zanim zaczniesz, masz dużo rzeczy do pobrania...
Dla początkujących, pobierz zestaw Cygwin z najbliższego mirrora cygwin . Zestaw ten zawiera większość popularnych narzędzi GNU używanych w procesie budowania.
Pobierz resztę narzędzi niezbędnych do budowania z http://www.php.net/extra/win32build.zip.
Pobierz kod źródłowy reseolvera nazw DNS używanego przrz PHP z http://www.php.net/extra/bindlib_w32.zip. Jest to zamiennik biblioteki resolv.lib zawartej w win32build.zip.
Jeśli nie masz narzędzia unzip, musisz je pobrać. If you don't already have an unzip utility, you will need one. Darmowa wersja dostępna jest na InfoZip.
Na koniec, potrzebujesz źródeł samego PHP 4. Możesz pobrać najnowsze źródła korzystając z anonimowego serwera CVS. Jeśli pobierzesz plik typu tarball ze snapshotem lub źródłami, nie tylko będziesz musiał odpakować go tar'em i gzip'em, ale tekże skonwertować znaki końca linii w plikach *.dsp i *.dsw zanim Microsoft Visual C++ będzie w stanie cokolwiek z nimi zrobić.
Notatka: Umieść katalogi Zend i TSRM directories wewnątrz katalogu php4 aby w procesie budowania były znalezione przez projekty.
Wykonaj poniższe instrukcje aby zainstalować narzędzie Cygwin.
Uruchom setup.exe i wykonuj polecenia instalatora. Jeśli wybierzesz ścieżkę instalacji inną niź c:\cygnus, poinformuj o tym proces budowania przez ustawienie zmiennej środowiskowej Cygwin. Pod systemem Windows 95/98 zmienne środowiskowe ustawia się przez dodawanie odpowiedniej linii do pliku autoexec.bat. Pod systemem Windows NT wejdź w Mój Komputer => Panel Sterowania => System i wybierz zakładkę Środowisko.
Ostrze¿enie |
Stwórz tymczasowy katalog do użytku Cygwin. Bez niego wiele poleceń (zwłaszcza bison) nie będzie działać. Na Windows 95/98, mkdir C:\TMP. Na Windows NT, mkdir %SystemDrive%\tmp. |
Stwórz katalog i odzipuj win32build.zip do niego.
Uruchom Microsoft Visual C++ i z menu wybierz Tools => Options. W oknie dialogowym wybierz zakładkę 'Directories'. Kolejno zmień listę rozwijaną na Executables, Includes, i Library files, aby się upewnić się, że cygwin\bin, win32build\include, i win32build\lib są na każdej liście. (Aby dodać wpis, wybierz pustą linię z końca listy i zacznij pisać). Zazwyczaj wpisy wyglądają tak:
c:\cygnus\bin
c:\php-win32build\include
c:\php-win32build\lib
Wciśnij OK i wyjdź z Visual C++.
Stwórz kolejny katalog i odzipuj do niego bindlib_w32.zip . Zdecyduj się czy potrzebujesz symbole do debugowania (bindlib - Win32 Debug) czy nie (bindlib - Win32 Release). Zbuduj odpowiednią konfigurację:
Dla użytkowników GUI, uruchom VC++ a potem wybierz File => Open Workspace i wybierz bindlib. Potem wybierz Build=>Set Active Configuration i wybierz pożądaną konfigurację. Na koniec wybierz Build=>Rebuild All.
Dla użytkowników linii poleceń, upewnij się że zarejestrowałeś zmienne środowiskowe C++ lub uruchomiłeś vcvars.bat, a później wykonaj jedno z poniższych poleceń:
msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
W tym momencie powinieneś mieć gotowy do użytku resolv.lib w katalogu Debug lub Release. Skopiuj ten plik do katalogu win32build\lib nadpisując plik o tej samej nazwie który już tam istnieje.
Najlepszy sposób na początek to zbudowanie wersji samodzielnej/CGI.
Dla użytkowników GUI, uruchom VC++, wybierz File => Open Workspace i wybierz php4ts. Później wybierz Build=>Set Active Configuration i wybierz pożądaną konfigurację. Na koniec wybierz Build=>Rebuild All.
Dla użytkowników linii poleceń, upewnij się że zarejestrowałeś zmienne środowiskowe C++ lub uruchomiłeś vcvars.bat, a później wykonaj jedno z poniższych poleceń:
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
W tym momencie powinieneś mieć gotowy do użytku php.exe w katalogu Debug_TS lub Release_TS.
Powtórz powyższe kroki z plikiem php4isapi.dsp (który może być znaleziony w katalogu sapi\isapi) aby zbudować kod niezbędny dla Microsoft IIS.
Po zainstalowaniu PHP i serwera WWW na systemie Windows prawdobopodobnie będziesz chciał zainstalować różne rozszerzenia aby zwiększyć funkcjonalność PHP. Poniższa tabela opisuje niektóre dostępne rozszerzenia. Możesz wybrać które rozszerzenia chcesz załadować kiedy PHP jest uruchamiane poprzez odkomentowanie linii 'extension=php_*.dll' w pliku php.ini. Moduły możesz także dołączać dynamicznie w swoim skrypcie kożystając z funkcji dl().
Nazwy DLLi z rozszerzeniami PHP 4 zaczynają się od 'php_' ('php3_' w przypadku PHP 3). Zapobiega to pomieszaniu rozszerzeń PHP i wspierających je bibliotek.
Notatka: W PHP 4.0.6 obsługa BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Sesji, WDDX i XML jest wbudowana. Nie potrzbujesz ładować żadnych dodatkowych rozszerzeń aby korzystać z tych funkcji. Przeczytaj zawartość pliku README.txt lub install.txt aby uzyskać listę wbudowanych modułów.
Notatka: Niektóre z tych rozszerzeń potrzebują do pracy dodatkowych DLLi. Kilka z nich można znaleźć w pakiecie dystrybucyjnym, w katalogu 'dlls', ale dla niektórych, takich jak Oracle (php_oci8.dll), wymagane DLLe nie są dołączone do pakietu dystrybucyjnego.
Skopuj dołączone DLLe z katalogi 'dlls' do katalogu który przeszukije Windows. Dobrymi miejscami są:
Jeśłi któreś z nich są już zainstalowane na twoim systemie, nadpisz je tylko jeśli coś nie działa w porządku (przed nadpisaniem ich dobrze jest zrobić kopię zapasową, lub przenieść je do innego folderu - na wszelki wypadek).
c:\windows\system dla Windows 9x/Me c:\winnt\system32 dla Windows NT/2000/XP
Tabela 2-1. Rozszerzenia PHP
Rozszerzenia | Opis | Uwagi |
---|---|---|
php_bz2.dll | bzip2 - funkcje kompresji | Brak |
php_calendar.dll | Calendar - funkcje konwersji kalendarza | Wbudowane od PHP 4.0.3 |
php_cpdf.dll | funkcje ClibPDF | Brak |
php3_crypt.dll | funkcje Crypt | Brak |
php_ctype.dll | rodzina funcjictype | Brak |
php_curl.dll | CURL, Client URL | Wymaga: libeay32.dll, ssleay32.dll (dołączone do dystrybucji) |
php_cybercash.dll | funkcje opłat Cybercash | Brak |
php_db.dll | funkcje DBM | Niezalecane. Zamiast tego użyj DBA (php_dba.dll) |
php_dba.dll | funkcje DBA: DataBase (dbm-style) Abstraction Layer | Brak |
php_dbase.dll | funkcje dBase | Brak |
php3_dbm.dll | biblioteka Berkeley DB2 | Brak |
php_domxml.dll | funkcje DOM XML | Wymaga: libxml2.dll (dołączony do dystrybucji) |
php_dotnet.dll | funkcje .NET | Brak |
php_exif.dll | nagłówki Read EXIF z JPEG | Brak |
php_fbsql.dll | funkcje FrontBase | Brak |
php_fdf.dll | funkcje FDF: Forms Data Format | Wymaga: fdftk.dll (dołączony do dystrybucji) |
php_filepro.dll | funkcje filePro | Dostęp tylko do odczytu |
php_ftp.dll | funkcje FTP | Wbudowane od PHP 4.0.3 |
php_gd.dll | Biblioteka obróbki obrazów GD | Brak |
php_gettext.dll | funkcje Gettext | Wymaga: gnu_gettext.dll (dołączony do dystrybucji) |
php_hyperwave.dll | funkcje HyperWave | Brak |
php_iconv.dll | konwersja tablicy znaków ICONV | Wymaga: iconv-1.3.dll (dołączony do dystrybucji) |
php_ifx.dll | funkcje Informix | Wymaga: bibliotek Informix |
php_iisfunc.dll | funkcje zarządzania IIS | Brak |
php_imap.dll | funkcje IMAP, POP3 i NNTP | PHP 3: php3_imap4r1.dll |
php_ingres.dll | funkcje Ingres II | Wymaga: bibliotek Ingres II |
php_interbase.dll | funkcje InterBase | Wymaga: gds32.dll (dołączony do dystrybucji) |
php_java.dll | rozszerzenie Java | Wymaga: jvm.dll (dołączony do dystrybucji) |
php_ldap.dll | funkcje LDAP | Wymaga: libsasl.dll (dołączony do dystrybucji) |
php_mhash.dll | funkcje Mhash | Brak |
php_ming.dll | funkcje Ming dla Flasha | Brak |
php_msql.dll | funkcje mSQL | Wymaga: msql.dll (dołączony do dystrybucji) |
php3_msql1.dll | klient mSQL 1 | Brak |
php3_msql2.dll | klient mSQL 2 | Brak |
php_mssql.dll | funkcje MSSQL | Wymaga: ntwdblib.dll (dołączony do dystrybucji) |
php3_mysql.dll | funkcje MySQL | Wbudowany w PHP 4 |
php3_nsmail.dll | funkcje poczty Netscape | Brak |
php3_oci73.dll | funkcje Oracle | Brak |
php_oci8.dll | funkcje Oracle 8 | Wymaga: biblioteki klienta Oracle 8 |
php_openssl.dll | funkcje OpenSSL | Wymaga: libeay32.dll (dołączony do dystrybucji) |
php_oracle.dll | funkcje Oracle | Wymaga: biblioteki klienta Oracle 7 |
php_pdf.dll | funkcje PDF | Brak |
php_pgsql.dll | funkcje PostgreSQL | Brak |
php_printer.dll | funkcje Drukarki | brak |
php_sablot.dll | funkcje XSLT | Wymaga: sablot.dll (dołączony do dystrybucji) |
php_snmp.dll | funkcje SNMP | tylko NT! |
php_sybase_ct.dll | funkcje Sybase | Wymaga: biblioteki klienta Sybase |
php_yaz.dll | funkcje YAZ | Brak |
php_zlib.dll | funkcje kompresji ZLib | Brak |
Poprzedni | Spis treści | Następny |
Kompletna lista opcji konfiguracji | Początek rozdziału | Serwery-Apache |