Podręcznik PHP
Poprzedni
Rozdział 3.
Instalacja
Następny
Instalacja na systemach Windows
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ść.
Windows InstallShield
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.
Ręczny proces instalacji
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
OmniHTTPd 2.0b1 i nowsze
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 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).
Budowanie ze źródeł
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.
Przygotowania
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.
Składanie wszystkiego razem
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ń:
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.
Kompilacja
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ń:
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.
Instalacja rozszerzeń dla Windows
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ą:
c:\windows\system dla Windows 9x / Me
c:\winnt\system32 dla Windows NT / 2000 / XP
Tabela 3-1.
Rozszerzenia PHP
Rozszerzenia
Opis
Uwagi
bzip2 - funkcje kompresji
Brak
Calendar - funkcje konwersji kalendarza
Wbudowane od PHP 4.0.3
funkcje ClibPDF
Brak
funkcje Crypt
Brak
rodzina funcji ctype
Brak
CURL, Client URL
Wymaga: libeay32.dll, ssleay32.dll (dołączone do dystrybucji)
funkcje opłat Cybercash
Brak
funkcje DBM
Niezalecane.
Zamiast tego użyj DBA (php_dba.dll)
funkcje DBA:
DataBase (dbm-style) Abstraction Layer
Brak
funkcje dBase
Brak
biblioteka Berkeley DB2
Brak
funkcje DOM XML
Wymaga: libxml2.dll (dołączony do dystrybucji)
funkcje .NET
Brak
nagłówki Read EXIF z JPEG
Brak
funkcje FrontBase
Brak
funkcje FDF:
Forms Data Format
Wymaga: fdftk.dll (dołączony do dystrybucji)
funkcje filePro
Dostęp tylko do odczytu
funkcje FTP
Wbudowane od PHP 4.0.3
Biblioteka obróbki obrazów GD
Brak
funkcje Gettext
Wymaga: gnu_gettext.dll (dołączony do dystrybucji)
funkcje HyperWave
Brak
konwersja tablicy znaków ICONV
Wymaga: iconv-1.3.dll (dołączony do dystrybucji)
funkcje Informix
Wymaga: bibliotek Informix
funkcje zarządzania IIS
Brak
funkcje IMAP, POP3 i NNTP
funkcje Ingres II
Wymaga: bibliotek Ingres II
funkcje InterBase
Wymaga: gds32.dll (dołączony do dystrybucji)
rozszerzenie Java
Wymaga: jvm.dll (dołączony do dystrybucji)
funkcje LDAP
Wymaga: libsasl.dll (dołączony do dystrybucji)
funkcje Mhash
Brak
funkcje Ming dla Flasha
Brak
funkcje mSQL
Wymaga: msql.dll (dołączony do dystrybucji)
klient mSQL 1
Brak
klient mSQL 2
Brak
funkcje MSSQL
Wymaga: ntwdblib.dll (dołączony do dystrybucji)
funkcje MySQL
Wbudowany w PHP 4
funkcje poczty Netscape
Brak
funkcje Oracle
Brak
funkcje Oracle 8
Wymaga: biblioteki klienta Oracle 8
funkcje OpenSSL
Wymaga: libeay32.dll (dołączony do dystrybucji)
funkcje Oracle
Wymaga: biblioteki klienta Oracle 7
funkcje PDF
Brak
funkcje PostgreSQL
Brak
funkcje Drukarki
brak
php_sablot.dll
funkcje XSLT
Wymaga: sablot.dll (dołączony do dystrybucji)
funkcje SNMP
tylko NT!
funkcje Sybase
Wymaga: biblioteki klienta Sybase
funkcje YAZ
Brak
funkcje kompresji ZLib
Brak
Poprzedni
Spis treści
Następny
Kompletna lista opcji konfiguracji
Początek rozdziału
Serwery-Apache