Учебник по основам PHP
Компиляция для Windows
Что для этого требуется?
Для компиляции должен быть установлен Microsoft Visual C++ версии 6 (возможно и 5, но не рекомендуется). Необходим комплект эмулятора утилит GNU для Windows Cyg-win, который можно загрузить со многих сайтов (например: http:// sources, redhat.com/cygwin/download.html). С сайта РНР следует загрузить набор файлов в архиве http://www. php.net/extra/win32build.zip. А также библиотеку работы с именами DNS http://www.php.net/ extra/bindlib_w32.zip. Это замена библиотеки resolv.lib из архива win32build.zip. Для распаковки архивов, естественно, нужен разархиватор unzip. И конечно, необходим сам пакет исходных кодов РНР. Его можно загрузить с сервера РНР CVS (см. инструкции на странице http:// www.php.net/anoncvs.php). Но не стоит забывать, что там размещается версия, находящаяся на стадии разработки и отладки, и она может работать нестабильно. Пакет стабильной версии можно в архиве скачать с адреса: http://www.php.net/downloads.php, а промежуточные версии — с адреса: http://snaps.php.net/.Подготовка к компиляции
Установите Cygwin, запустив setup.exe. Выберите установочный каталог, например C:\cygnus. Обычно установка успешно выполняется в автоматическом режиме.
Создайте каталог, в котором вы будете проводить компиляцию (например: C:\PHP-win32build). Разархивнрупте в нее пакет исходных кодов РНР. Скопируйте туда распакованный архив win32build.zip.
Запустите Microsoft Visual C++, выберите пункт Options меню Tools. В диалоговой панели выберите вкладку directories. Последовательно установите для каждого пункта раскрывающегося списка: Executables, Includes и Library files соответственно каталоги: cygwin\bin, win32build\ include и win32build\lib (для добавления пункта выделите пустую строку в конце списка и введите путь). Обычно каталоги имеют следующие имена: c:\cygnus\bin, c:\php-win32build\include, c:\php-win32build\lib. Нажмите ОК.
Создайте другой каталог и распакуйте туда bindlib_w32.zip. В VC++ выберите bindlib.dsw (Файл > Open Workspace). Выберите один из вариантов компиляции (Build > Set Active Configuration): отладочный (bindlib — Win32 Debug) или нет (bindlib — Win32 Release). Скомпилируйте библиотеку (Build > Rebuild All)1. Скопируйте полученный файл resolv.lib (из каталога Debug или Release), заменяя им имеющийся в дистрибутиве (в каталоге С:\ PHP-win32build\lib).
Компиляция
Чтобы скомпилировать CGI-всрсию РНР, откройте в VC++ проект win32\php4ts.dsw (Файл > Open Workspace). Выберите вариант компиляции (Build > Set Active Configuration), например php4ts — Win32 Release_TS. Скомпилируйте файлы php.exe и php4ts.dll (Build > Rebuild All или Build > Build php.exe).
Возможно, у вас возникнет следующая ошибка: при попытке открытия в VC++ файла Tsrm.dsw будет выдано сообщение о том, что файл имеет неправильный формат или поврежден. Это происходит из-за различия в форматах текстовых файлов Unix и Windows: в Unix завершение строк помечается символом «\п>>, а в Windows двумя символами — «\г\п». Исправить это легко — откройте файл Tsrm.dsw в MS Word и сохраните его под тем же именем (в результате чего будут автоматически преобразованы символы-завершители).
Подобным образом можно скомпилировать РНР в виде модуля для web-сервера Microsoft IIS или какого-либо другого (просто измените вариант компиляции).
Модули расширения компилируются по отдельности (они размещаются в каталоге ext).
Основные сведения о РНР
Изначально аббревиатура РПР означала Preprocessor of Home Pages — препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает. Проще говоря, синтаксис РНР — это разумная альтернатива и строгости С, и «беспредельности» Perl.
РНР наделен практически полным набором функциональности, о которой (до появления РНР) мог только мечтать web-программист. Его цель — позволить максимально быстро создавать динамически генерируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.
Основными конкурентами РНР являются технологии JSP (Java Server Pages и Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages. Рассмотрим те недостатки, которые присущи указанным технологиям. JSP — достаточно сложный для изучения и использования язык. ASP, основанный на синтаксисе VBScript (Visual Basic), имеет всего несколько десятков собственных функций и поэтому вынужден использовать СОМ-объекты; кроме того, он ориентирован исключительно на работу под Windows. Perl — язык головоломный, и его вольности затрудняют его понимание. SSI позволяет всего лишь компоновать HTML-страницу из нескольких файлов. CF — коммерческий продукт, что является его основным недостатком.
Основные достоинства РНР: бесплатен; постоянно совершенствуется; работает на UNIX и Windows платформах; допускает работу с большинством СУБД; имеет широкий набор функций (более 3 тыс.); допускает объектно-ориентированное программирование; способен использовать протоколы HTTP, FTP, ШАР, SNMP, NNTP, POPS, net sockets 11 другие; позволяет выполнять все операции, что и перечисленные его конкуренты, и даже работать с файлами графики. Можно также запускать PHP-скрипты как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с поддержкой графического интерфейса GTK).
Если вы обнаружите, что РНР не способен на что-то (или работает не так, как вам хотелось бы), никто не будет препятствовать вам вносить в исходный код РНР (написанный на С) желаемые изменения. РНР является программным продуктом с открытым исходным кодом, и внесение в него улучшений и дополнений путем создания собственных модулей расширения всегда приветствуется.
Краткая история РНР
РНР изобретен Расмусом Лердорфом в конце 1994 года. Первая версия выпущена в 1995 году под именем «Инструментарий Персональных Домашних Страниц», затем она была переработана и названа PHP/FI Version 2 (FI — модуль обработки данных для форм). Также была добавлена поддержка баз д'анных mSQL. С этого момента в разработке стали принимать участие добровольцы.
Статистика используемости РНР приблизительна, но, согласно исследованию, проведенному Netcraft, в начале 2001 года РНР использовался на более чем 5 300 000 сайтах по всему миру. Для сравнения: в это время число IIS серверов было примерно таким же (5 млн). Разработка интерпретатора РНР приняла форму организованного командного процесса, ядро интерпретатора разрабатывает компания Zcnd.com. При этом РНР распространяется свободно: его последнюю версию можно загрузить с сайта PHP.net. Модули РНР поставляются в комплекте с сервером Apache, в комплектах систем Linux.
Версии РНР
В конце 2000 года была выпущена версия РНР 4.0.4, в апреле 2001 -4.0.5, а в июне — 4.0.6. Промежуточные версии РНР можно загрузить с серверов CVS. В каждой новой версии появляются новые модули, расширяющие и улучшающие возможности РНР.
Полное руководство РНР доступно на нескольких языках в шести вариантах: документация на сайте PHP.net с аннотациями (>80 Мбайт); один HTML-файл (>3 Мбайт), набор маленьких связанных HTML-страниц (несколько тысяч), UNIX man-файл, скомпилированный Windows HLP-файл (в формате chm) и документация в виде книги PDF. Издательством «Питер» выпущено две книги (одну из которых вы держите в руках), к концу года планируется издать еще две книги.
Данная книга представляет собой краткий справочник, перед которым ставилась задача в наиболее сжатой и ясной форме изложить максимум самой необходимой информации. Подразумевается, что читатель знаком с программированием и web-технологиями. Все описания относятся к версиям РНР 4.0.4—4.0.6.
РНР 4 сильно отличается от своих начальных версий. Основная причина, по которой в данной книге не рассматриваются предыдущие версии РПР и их различия, — это стремление избавиться от ненужной информации: зачем тратить усилия на изучение устаревшего варианта, когда можно бесплатно воспользоваться новейшим.
Дополнительное ПО
Для того чтобы исполнять серверные сценарии, необходим, естественно, сам web-сервер — это может быть PWS или Apache для Windows 95/98, IIS для Windows NT/2000 Server, Apache для UNIX/Linux или какой-либо другой, — а также любой браузер для просмотра результатов исполнения сценария. Но возможен и вариант запуска сценария из командной строки, с помощью CGI интерпретатора php.exe в консольном окне MS-DOS, при этом ни браузер, ни сервер не требуются.
Используя библиотеку PHP-GTK, можно создавать на РНР приложения с графическим интерфейсом, применяя РНР как улучшенную альтернативу Visual Basic, но стоит отметить, что графический интерфейс имеет ярко выраженный Unix-стиль. С сайта www.deskcode. com можно загрузить компилятор РНР, генерирующий исполняемые (.ехе) файлы для Windows (приложению требуется наличие библиотеки php4ts.dll и других используемых модулей).
Поскольку одной из наиболее широко используемых возможностей РНР является работа с базами данных, полезно установить сервер БД, например MySQL или любой другой (PostgreSQJL, InterBase, MS SQL). Нелишней может оказаться и установка драйверов ODBC для имеющихся баз данных.
Существенную помощь окажет редактор PHP-кода. Достаточно удобна среда разработчика PHPEd, которую можно бесплатно загрузить с сайта http://www.soysal.com/PHPEd/. Знакомый всем HomeSite 4.5 (www.allaire.com) также позволяет работать с синтаксисом РНР.
Полезные информационные ресурсы
Как уже отмечено, большая часть информации по РНР доступна в англоязычном варианте. Если это вас не смущает, то можете воспользоваться сайтами PHPBuilder.com, PHPWizard.com, WebMonkcy (lycos.com), Zend.com, PHPClub.ru, которые содержат большой объем статей и учебных руководств по программированию.
На РНР созданы даже целые web-порталы, которые можно интерактивно реконфигурировать, например PHPNuke (исходные РНР-коды можно загрузить с сайта PHPNuke.com). Хотя объем кода таких проектов достаточно велик (несколько Мбайт), наличие перед глазами подобных примеров готовых разработок способно воодушевить вас на не меньшие достижения.
Для понимания некоторых разделов, возможно, потребуется воспользоваться файлами из архива RFC (Request for Comments — запросы на комментарий). Это сборник объяснений спецификаций сетевых и Интернет-технологий, состоящий из более чем 2000 файлов. Например, RFC 1180 - учебник по TCP/IP, RFC 1208 - толковый словарь сетевых терминов, RFC 821 — SMTP протокол, RFC 1939 — протокол POPS. Этот архив доступен, на множестве серверов, в том числе на rs.internic.net (официальный сервер), http://www.faqs.org/rfcs.
Структура раздела
Порядок, в котором приводятся функции, отражает логику их использования (например, работа с БД имеет определенную последовательность); функции, независимые друг от друга, расположены но мере повышения их сложности. В приложении приводится перечисление всех функций в алфавитном порядке и в порядке расположения в книге.
Поскольку язык РНР и его модули расширения находятся в процессе непрерывной доработки и улучшения, используемая вами версия РНР может работать несколько отличным образом от того, как это описано в книге. Все примеры, приведенные в книге, были протестированы с РНР версий 4.0.4, 4.0.5, 4.0.6; но все же я настоятельно рекомендую читателям проверять достоверность документации, потому что даже официальное руководство во многих аспектах неполно (или иногда ошибочно) отражает реальные возможности РНР.
В книгу было включено рассмотрение большей части возможностей РНР; в ней описывается 1500 функций. Тем не менее на момент выхода книги, в РНР имелось около 3000 функций. Конечно, вам едва ли придется использовать более трети всего того, что позволяет РНР; именно по этой практической причине в книге не описаны редко используемые и специфические возможности РНР: Hyperwave, ICAP, LDAP, MCAL, MCrypt, Mhash, mnoGoSearch, Scsam DB, SNMP, YAZ, YP/NIS. He забывайте также, что в дальнейшем возможности РНР будут расширены еще больше.
Установка и компиляция РНР
На сайте http://www.php.net/ можно найти несколько установочных пакетов РНР. Для систем Windows предлагаются варианты: готовый пакет CGI с автоматической установкой и полный скомпилированный пакет CGI/ISAPI с дополнительными библиотеками, требующий ручной настройки. Также можно загрузить пакет исходных кодов и скомпилировать весь пакет самостоятельно. Для систем UNIX/Linux обычно приходится перекомпилировать РНР, так как версии операционных систем сильно различаются (возможно, придется дозагру-жать дополнительные библиотеки).
Вопрос о том, имеет ли смысл компилировать РНР самому или стоит воспользоваться готовым пакетом, решает сам программист. Основными мотивами для собственноручной компиляции могут быть: неудовлетворительная конфигурация предлагаемого готового пакета, которую нельзя изменить с помощью редактирования файла php.ini (см. ниже), и желание поупражняться с компилированием.
Для большинства web-серверов можно установить РНР либо в виде серверного модуля ISAPI, либо в виде запускаемого серверного CGI-приложения. CGI-приложение запускается сервером каждый раз, когда необходимо исполнить сценарий, а по завершении сценария РНР выгружается из памяти. ISAPI-модуль загружается один раз при запуске web-сервера и остается в памяти все время, пока работает сервер. Поэтому, чтобы после редактирования файла конфигурации php.ini изменения вступили в силу, необходимо перезапустить сервер. РНР в виде CGI-приложения не позволяет выполнять ряд функций, например использовать устойчивые подключения к серверам баз данных.
Установка и компиляция РНР в UNIX, параметры компиляции
Операционные системы семейства UNIX сильно различаются между собой, поэтому подробного описания в данной книге не приводится. Единственное, что роднит между собой различные UNIX-системы при компиляции РНР, — это параметры компиляции; с их помощью указывается, какие из PHP-модулей необходимо прикомпилировать к основному модулю РНР. Они приводятся ниже. Для тех параметров, которые имеют аргумент DIR, можно указать путь каталога, в котором была установлена используемая библиотека. В скобках указано значение параметра по умолчанию. Дополнительная информация по установке и конфигурированию модулей приводится в соответствующих главах.
Базы данных
with-adabas[=DIR] — включить поддержку Adabas D (/usr/local). enable-dba=shared — использовать DBA как совместно используемый модуль. enable-dbase — включить поддержку dbase. Внешние библиотеки не требуются. with-db2[=DIR] — включить поддержку Berkeley DB2. with-db3[=DIR] — включить поддержку Berkeley DB3. with-dbm[=DIR] — включить поддержку DBM. with-dbmaker[=DIR] — включить поддержку DBMaker (зависит от версии, например /home/dbmaker/3.6). with-empress[=DIR] — включить поддержку Empress (значение системной переменной $EMPRESSPATH). enable-filepro — включить встроенную поддержку filcPro. Внешние библиотеки не требуются. with-gdbm[=DIR] — включить поддержку GDBM. with-hyperwave — включить поддержку Hyperwave. with-ibm-db2[=DIR] — включить поддержку IBM DB2 (/home/ db2instl/sqllib). with-informix[=DIR] — включить поддержку Informix (умолчаний нет). with-ingres[=DIR] — включить поддержку Ingres II (/II/ingres). with-interbase[=DIR] — включить поддержку InterBase (/usr/interbase). with-ldap[=DIR] — включить поддержку LDAP — службы каталогов Lightweight Directory Access Protocol (/usr/Local/Ldap). См. также: RFC1777 и RFC1778. with-msql[=DIR] — включить поддержку mSQL (/usr/loCdl/Hughes). with-mysql[=DIR] — включить поддержку MySQL (параметр включен по умолчанию). with-ndbm[=DIR] - NDBM. with-oci8[=DIR] - включить поддержку Oraclc-oci8 ($ORACLE_HOME). with-orade[=DIR] — включить поддержку Oracle-oci7 ($ORACLE_HOME). with-pgsql[=DIR] — включить поддержку PostgrcSQL (/usr/local/ pgsql). with-solid[=DIR] — включить поддержку Solid (/usr/local/solid). with-sybase-ct[=DIR] — включить поддержку Sybase-CT (/home/ Sybase). with-sybase[=DIR] — включить поддержку Sybase-DB (/home/Sybase). with-openlink[=DIR] - - включить поддержку OpenLink ODBC (/usr/local/openlink). with-iodbc[=DIR] — включить поддержку iODBC (/usr/local). with-custom-odbc[=DIR] — включить поддержку пользовательской библиотеки ODBC (/usr/local). Перед запуском сценария configure необходимо присвоить значение переменной CUSTOM_ODBC__LIBS, а также проверить, чтобы файл odbc.h был доступен. with-unixODBC[=DIR] — включить поддержку unixODBC support (/usr/local). with-velocis[=DIR]— включить поддержку Velocis (/usr/local/ velocis). < /FONT>Ecommerce
with-ccvs[=DIR] — разрешить поддержку CCVS для РИР4. with-cybercash[=DIR] — включить поддержку CyberCash. with-pfpro[=DIR]— включить поддержку Verisign Payflow Pro. < /FONT>Графика
enable-freetype-4bit-antialias-hack — включить поддержку FreeType2 (экспериментальная). with-gd[=DIR] — включить поддержку GD. without-gd — запретить поддержку GD. with-jpeg-dir[=DIR] — каталог библиотеки jpeg для pdflib 3.x. with-png-dir[=DIR] — каталог библиотеки png для pdflib 3.x. with-tllib[=DIR] — включить поддержку Tllib. with-tiff-dir[=DIR] — каталог библиотеки tiff для pdflib 3.x. with-ttf[=DIR] — включить поддержку FreeType. with-xpm-dir[=DIR]— каталог библиотеки хрт для gd-1.8+. < /FONT>Разнообразные параметры
disable-libtool-lock — не использовать блокировку библиотек при компиляции. disable-pear — не устанавливать PEAR. disable-pic — не использовать PIC для общих объектов. disable-posix — не использовать функции POSIX. disable-session — запретить поддержку сессий. enable-bcmath — компилировать с поддержкой функций be math. См. также: README-BCMATH. enable-c9x-inline — использовать семантику C9x-inline. enable-calendar — использовать преобразования calendar. enable-debug — компилировать в режиме для отладки. enable-discard-path — позволяет разместить PHP CGI вне web-каталогов. enable-dmalloc — разрешить поддержку dmalloc. enable-exif — разрешить поддержку exif. enable-experimental-zts — экспериментальная компиляция. enable-fast-install[=PKGS] — оптимизировать для быстрой установки (по ум.) enable-force-cgi-redirect — разрешить проверку безопасности для внутренних переадресаций сервера. Используйте для CGI версии Apache. enable-inline-optimization — используйте с gcc при наличии большого объема памяти. enable-libgcc — явное подключение библиотеки libgcc. enable-maintainer-mode — компилировать для определенного установщика, игнорируя тс параметры, которые ему непонятны. enable-memory-limit — ограничение памяти при компиляции (по умолчанию — нет). enable-safe-mode — разрешить безопасный режим по умолчанию. enable-satellite — поддерживать CORBA через Satellite (необходим ORBit). enable-shared[=PKGS] — компилировать динамические библиотеки (по умолчанию). enable-sigchild — разрешить собственный для РНР обработчик SIGCHLD. enable-static[=PKGS] — компилировать статические библиотеки (по умолчанию). enable-sysvsem — включить поддержку семафоров System V. enable-sysvshm — включить поддержку System V shared memory. enable-trans-sid — автоматически передавать идентификатор сессии. with-cdb[=DIR] — включить поддержку СОВ. with-config-file-path=PATH — установить каталог размещения php.ini (/usr/local/lib). with-cpdflib[=DIR] — включить поддержку cpdflib (необходима cpdflib >= 2) (/usr). with-esoob[=DIR] — включить поддержку Easysoft OOB (/usr/Local/ easysoft/oob/dient). with-exec-dir[=DIR] — в безопасном режиме разрешать запуск сценариев только из указанного каталога (/usr/locat/php/bin). with-fdftk[=DIR] — включить поддержку fdftk (/usr/local). with-gnu-ld — считать, что компилятор С использует GNU Id (no умолчанию — нет). with-icap[=DIR] - поддерживать ЮАР. with-imap[=DIR] — включить поддержку ШАР. DIR — каталог размещения ШАР include и файла c-client.a. with-java[=DIR] — включить поддержку Java. DIR — каталог установки JDK. Модуль должен быть скомпилирован как общий. with-kerberos[=DIR] — включить поддержку Kerberos в ШАР. with-mcal[=DIR] — включить поддержку MCAL. with-mcrypt[=DIR] — включить поддержку mcrypt. with-mhash[=DIR] — включить поддержку mhash. with-mm[=DIR] — использовать поддержку mm для хранения данных сессий. with-mod_charset — разрешить таблицы трансляции для mod_charset (Rus Apache). with-pdflib[=DIR] — поддерживать pdflib 3.x (/usr/local). with-readline[=DIR] — поддерживать readlinc. with-regex=TYPE — тин библиотеки regex: system, apache, php. with-servlet[=DIR] — поддерживать сервлеты. DIR — каталог JSDK. Модуль Java должен быть совместным. with-swf[=DIR] — включить поддержку swf. with-tsrm-pth[=pth-config] — использовать GNU Pth. with-tsrm-pthreads — использовать POSIX threads (по умолчанию) with-zlib-dir[=DIR] — каталог zlib для pdflib 3.x или просто поддержки zlib. with-zlib[= DIR] — включить поддержку zlib (необходима zlib >= 1.0.9) (/usr). without-pcre-regex — не включать поддержку регулярных выражений.Сети
with-curl[=DIR] — включить поддержку CURL. enable-ftp — включить поддержку FTP. with-openssl[=DIR] — включить поддержку OpenSSL в SNMP. with-snmp[=DIR] — включить поддержку SNMP. enable-ucd-snmp-hack — разрешить UCD SNMP. enable-sockets — включить поддержку сетевого интерфейса sockets. with-yaz[=DIR] - включить поддержку YAZ (ANSI/NISO Z39.50). enable-yp — включить поддержку YP. enable-magic-quotes — разрешить magic quotes по умолчанию. disable-short-tags — запретить использование сокращенных теговСервер
with-aolserver-src=DIR — размещение дистрибутива AOLserver. with-aolserver=DIR - компилировать PHP для AOLserver. with-apache[=DIR] - - компилировать PHP как модуль Apache (/usr/local/etc/httpd). with-apxs[=FILE] — компилировать PHP как модуль Apache (используя apxs). enable-versioning — экспортировать только необходимые символы. См. также файл INSTALL. with-fhttpd[=DIR] — компилировать PHP как модуль fhttpd (/usr/ local/src/fhttpd). with-nsapi=DIR — компилировать PHP как модуль Netscape. with-phttpd=DIR — компилировать PHP как модуль phttpd. with-pi3web=DIR — компилировать PHP как модуль PiSWeb. with-roxen=DIR — компилировать PHP как модуль Pike (/usr/ local/roxen/server). enable-roxen-zts — компилировать PHP как модуль Roxen. with-thttpd=SRCDIR — компилировать PHP как модуль thttpd. with-zeus=DIR— компилировать PHP как модуль ISAPI для использования с сервером Zeus. < /FONT>Текстово-языковые возможности
with-aspell[=DIR] — включить поддержку ASPELL. with-gettext[=DIR] — включить поддержку GNU gettext (/usr/ local). with-pspell[=DIR] — включить поддержку PSPELL. with-recode[=DIR]— включить поддержку recode. < /FONT>XML
with-dom[=DIR] — разрешить использование DOM (требуется libxml >= 2.0) (/usr). enable-sablot-errors-descriptive — разрешить выдачу описаний ошибок. with-sablot[=DIR] — разрешить использование Sablotron. enabte-wddx — разрешить использование WDDX. disable-xml — запретить поддержку XML с использованием встроенной библиотеки expat.Установка РНР в Windows
Далее описываются установка и конфигурирование РНР для web-серверов в системах Windows 9x/NT, в частности:
Personal Web Server (PWS); Internet Information Server (IIS) 6, 4, 5; Apache 1.3.x.Автор рекомендует использовать web-сервер Apache по причине того, что он работает на всех системах, и именно при его использовании РНР может проявить все свои возможности. Также РНР можно установить и для ряда других серверов (инструкции не приводятся).
Windows Installshield
Программа установки РНР (которую можно загрузить с сайта http:// www.php.net/) автоматически устанавливает CGI-версию РНР для Apache, IIS или PWS (и других серверов) и самостоятельно настраивает сервер. Процедура установки достаточно понятна и удобна.
Общие шаги установки
Эту процедуру следует проделать для всех серверов, работающих в Windows, если установка производится вручную (а не используется установщик).
Разархивируйте дистрибутив РНР в любой каталог, например С:\РНР\. Скопируйте файл php.ini-dist в каталог Windows (обычно это c:\windows или c:\winnt). Отредактируйте файл конфигурации php.ini: Установите каталог модулей расширения extension_dir (путь к файлам php_*.dll), например: c:\php. Выберите те модули РНР, которые должны загружаться при запуске интерпретатора, и раскомментируйте их строки extension= php_*.dTI. Модули также можно загружать динамически командой сценария: dl("php_*.dll");. Некоторым модулям требуются дополнительные библиотеки, часть которых находится в каталоге dlls дистрибутива (если их там нет, обратитесь на страницу http://www.php.net/FAQ.php, чтобы узнать, как их можно найти); их следует скопировать в тот каталог, где система может их найти, или добавить путь к ним в переменную PATH. Для PWS и IIS можно указать путь к файлу browscap.ini: c:\windows\system\1netsrv\browscap.ini для Windows 95/98 и C:\winnt\system32\inetsrv\browscap.ini для NT Server.Модули DLL PHP имеют префикс php_, что позволяет различать их и используемые ими библиотеки.
Windows 95/98/NT и PWS/IIS 3
Рекомендуется настраивать эти серверы установкой файла php_iis_ reg.inf, pws-php4isapi.reg или pws-php4cgi.reg, входящего в дистрибутив, предварительно его отредактировав и указав реальные каталоги. В противном случае придется редактировать реестр (будьте осторожны, рекомендуется сделать копию реестра).
Запустите Rcgcdit. Перейдите в раздел HKEY_LOCAL_MACHINE/System/CurrentControlSet/ Services/W3Svc/Parameters/ScriptMap, Создайте в нем строковый параметр — расширение php-сценари-ев, например: .php. Присвойте ему путь к php.exe в виде: c:\php\ php.exe %s %s. Повторите этот шаг для каждого расширения, которое будут иметь сценарии. Теперь перейдите в раздел HKEY_CLASSES_ROOT. Создайте раздел с именем из предыдущего шага, например: .php. Присвойте значение по умолчанию ("default value"): phpfile. Повторите шаг для каждого расширения PHP-сценариев, как и ранее. Создайте раздел phpfile в разделе HKEY_CLASSES_ROOT со значением ц,, умолчанию: «PHP Script». Создайте в этом разделе раздел «Shell», в нем «open», а в нем «command». Присвоите разделу значение по умолчанию — путь к файлу php.exe, например; c:\php\php.exe -q %1 (не забывайте про *1). Закройте Regedit. Если используется PWS, то перезагрузите Windows.Пользователи us 3 могут также использовать программу конфигурирования http://www.genusa.com/iis/iiscfg.html. PWS 4 позволяет использовать Рнр в виде модуля ISAT4.
Windows NT и IIS 4/5
Откройте Диспетчер служб Интернета (консоль ММС — Internet Service Manager нз раздела Программы > Администрирование) и выберите тот сериер WCD| который необходимо конфигурировать. Откройте панель свойств, вкладку Домашний каталог (Home Directory), Виртуальные каталоги (Virtual Directory) или Directory. Нажмите кнопку Конфигурирование, затем выберите вкладку Арр Mappings. Для CGI ьерсии. Нажмите кнопку Добавить, введите расширение (Extension) файлов РНР, и укажите путь к интерпретатору (Executable) c:\path-to-php-dir\php.exe %s %s. Не забудьте про *s *s в конце. Для ISAPI версии. Имя интерпретатора должно быть c:\path-to-php-dir\php4isapi.dn. Повторите шаг для каждого из расширений. Для CGI Версии. Установите требуемую политику безопасности для php.exe. Для ISAPJ версии. Перезапустите web-сервер, чтобы загрузить php4isapi.dll.Windows 9x/NT и Apache 1.3.x
Рекомендуется ознакомиться с документацией Apache.
Добавьте или измените имеющиеся (обычно они закомментированы) директивы в файле конфигурации httpd.conf (или srm.conf) для запуска версии CGI PHP.
Каталог PHP: ScriptAlias /php/ "c:/path-to-php-d1r/". Расширения PHP-сценариев: AddType application/x-httpd-php .php .phtml. Запуск интерпретатора: Action application/x-httpd-php "/php/php.exe".Если необходимо запускать PHP как ISAPI-модуль сервера, необходимо скопировать файл php4ts.dll в каталог windows/system (для Windows 9х/Ме) или winnt/system32 (для Windows NT/2000). А затем добавить в файл конфигурации httpd.conf следующие строки:
LoadModule php4_modu1e с:/php/sapi/php4apache.dll AddType application/x-httpd-php .php .phtmlЗаметьте, что в Win-Apache вес обратные слеши должны писаться как прямые, например: c:/directory/file.ext вместо c:\directory\ file.ext.