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:

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.

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:

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

  2. 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ń:

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

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

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

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

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

Tabela 2-1. Rozszerzenia PHP

RozszerzeniaOpisUwagi
php_bz2.dllbzip2 - funkcje kompresjiBrak
php_calendar.dllCalendar - funkcje konwersji kalendarzaWbudowane od PHP 4.0.3
php_cpdf.dllfunkcje ClibPDFBrak
php3_crypt.dllfunkcje CryptBrak
php_ctype.dllrodzina funcjictypeBrak
php_curl.dllCURL, Client URLWymaga: libeay32.dll, ssleay32.dll (dołączone do dystrybucji)
php_cybercash.dllfunkcje opłat CybercashBrak
php_db.dllfunkcje DBMNiezalecane. Zamiast tego użyj DBA (php_dba.dll)
php_dba.dllfunkcje DBA: DataBase (dbm-style) Abstraction LayerBrak
php_dbase.dllfunkcje dBaseBrak
php3_dbm.dllbiblioteka Berkeley DB2Brak
php_domxml.dllfunkcje DOM XMLWymaga: libxml2.dll (dołączony do dystrybucji)
php_dotnet.dllfunkcje .NETBrak
php_exif.dllnagłówki Read EXIF z JPEGBrak
php_fbsql.dllfunkcje FrontBaseBrak
php_fdf.dllfunkcje FDF: Forms Data FormatWymaga: fdftk.dll (dołączony do dystrybucji)
php_filepro.dllfunkcje fileProDostęp tylko do odczytu
php_ftp.dllfunkcje FTPWbudowane od PHP 4.0.3
php_gd.dllBiblioteka obróbki obrazów GDBrak
php_gettext.dllfunkcje GettextWymaga: gnu_gettext.dll (dołączony do dystrybucji)
php_hyperwave.dllfunkcje HyperWaveBrak
php_iconv.dllkonwersja tablicy znaków ICONVWymaga: iconv-1.3.dll (dołączony do dystrybucji)
php_ifx.dllfunkcje InformixWymaga: bibliotek Informix
php_iisfunc.dllfunkcje zarządzania IISBrak
php_imap.dllfunkcje IMAP, POP3 i NNTPPHP 3: php3_imap4r1.dll
php_ingres.dllfunkcje Ingres IIWymaga: bibliotek Ingres II
php_interbase.dllfunkcje InterBaseWymaga: gds32.dll (dołączony do dystrybucji)
php_java.dllrozszerzenie JavaWymaga: jvm.dll (dołączony do dystrybucji)
php_ldap.dllfunkcje LDAPWymaga: libsasl.dll (dołączony do dystrybucji)
php_mhash.dllfunkcje MhashBrak
php_ming.dllfunkcje Ming dla FlashaBrak
php_msql.dllfunkcje mSQLWymaga: msql.dll (dołączony do dystrybucji)
php3_msql1.dllklient mSQL 1Brak
php3_msql2.dllklient mSQL 2Brak
php_mssql.dllfunkcje MSSQLWymaga: ntwdblib.dll (dołączony do dystrybucji)
php3_mysql.dllfunkcje MySQLWbudowany w PHP 4
php3_nsmail.dllfunkcje poczty NetscapeBrak
php3_oci73.dllfunkcje OracleBrak
php_oci8.dllfunkcje Oracle 8Wymaga: biblioteki klienta Oracle 8
php_openssl.dllfunkcje OpenSSLWymaga: libeay32.dll (dołączony do dystrybucji)
php_oracle.dllfunkcje OracleWymaga: biblioteki klienta Oracle 7
php_pdf.dllfunkcje PDFBrak
php_pgsql.dllfunkcje PostgreSQLBrak
php_printer.dllfunkcje Drukarkibrak
php_sablot.dllfunkcje XSLTWymaga: sablot.dll (dołączony do dystrybucji)
php_snmp.dllfunkcje SNMPtylko NT!
php_sybase_ct.dllfunkcje SybaseWymaga: biblioteki klienta Sybase
php_yaz.dllfunkcje YAZBrak
php_zlib.dllfunkcje kompresji ZLibBrak