Установка на Системах Windows
Установка на системах Windows
Этот раздел относится к Windows 95/98/Me и Windows NT/2000/XP. Не ждите, что PHP будет работать на 16-битных платформах, таких как Windows 3.1. Иногда мы называем поддерживаемые Windows-платформы Win32.
Есть два основных способа установки PHP под Windows: вручную, либо инсталятором InstallShield.
Если у вас имеется Microsoft Visual Studio, вы можете также build/построить PHP из оригинального исходного кода.
После установки PHP на вашей системе Windows вы можете также загрузить различные расширения для добавления функциональности.
Windows InstallShield
Windows PHP-инсталятор, доступный со страницы downloads по адресу
http://www.php.net/, устанавливает CGI-версию PHP и, для IIS, PWS и Xitami, конфигурирует также и web-сервер.
Заметьте также, что, хотя инсталятор InstallShield облегчает установку PHP,
он имеет и ограничения по многим параметрам. Так, например, не
поддерживается автоматическая установка расширений.
Установите избранный вами HTTP-сервер в вашей системе и убедитесь, что он работает.
Запустите exe-инсталятор и следуйте указаниям. Поддерживаются два типа инсталяции - стандартная, со всеми установками по умолчанию, и продвинутая, которая выдаёт запросы на выполнение определённых действий.
Помощник установки/installation wizard собирает необходимую информацию для настройки файла
php.ini и конфигурирует web-сервер для использования PHP.
Для IIS и PWS на NT Workstation выводится список всех узлов сервера с
показом установок отображения скриптов, и вы можете выбрать те узлы, в
которые хотите добавить отображение PHP-скриптов.
После завершения инсталяции installer проинформирует вас, если нужно рестартовать систему, рестартовать сервер или просто начать работу с PHP.
Предупреждение! |
---|
Учтите, что эта установка РНР не защищена. Если вам необходима защищённая
установка PHP, вам лучше делать её вручную и устанавливать отдельно каждую опцию. |
Ручная установка
Этот справочник поможет вам вручную установить и сконфигурировать
PHP на вашем Windows web-сервере. Вам нужно загрузить zip binary дистрибутив со страницы downloads
http://www.php.net/.
Оригинальную версию этого справочника скомпилировал Bob Silva,
и её можно найти по адресу http://www.umesd.k12.or.us/php/win32install.php
Здесь дана поддержка установки на:
- Personal Web Server 3 и 4 или новее
- Internet Information Server 3 и 4 или новее
- Apache 1.3.x
- OmniHTTPd 2.0b1 и новее
- Oreilly Website Pro
- Xitami
- Netscape Enterprise Server, iPlanet
PHP 4 для Windows поставляется в двух вариантах - CGI executable (php.exe) и несколько SAPI-модулей (например: php4isapi.dll). Последняя форма является новой в PHP 4 и предоставляет значительное ускорение работы и некоторую новую функциональность.
Предупреждение! |
---|
SAPI-модули были значительно усовершенствованы в версии 4.1, но вы может обнаружить, что в старых ОС возникают ошибки сервера или неудачи в работе других серверных модулей, таких как ASP. |
Если вы выбрали один из SAPI-модулей и используете Windows 95, не забудьте загрузить обновление DCOM со страницы Microsoft DCOM. Для ISAPI-модуля необходим Web-сервер, соответствующий ISAPI 4.0 (проверено на IIS 4.0, PWS 4.0 и IIS 5.0). IIS 3.0 НЕ поддерживается. Вы должны загрузить и установить Windows NT 4.0 Option Pack с IIS 4.0, если вам необходима встроенная поддержка PHP.
При всех вариантах установки должны быть выполнены следующие шаги до специфичных серверных инструкций.
- Распаковать дистрибутив в нужную директорию. c:\php\ это хорошее начало. Лучше не использовать путь с пробелами (например: c:\program files\php это не очень). Некоторые web-серверы при этом завалятся.
- Необходимо убедиться, что DLL, используемые PHP, можно найти. Конкретные DLL зависят от используемого web-сервера и от того, запускаете вы PHP как CGI или как серверный модуль. php4ts.dll используется всегда.
Если вы используете серверный модуль (например, ISAPI или Apache), то вам понадобятся соответствующие DLL-библиотеки из папки sapi. Если вы используете любое DLL-расширение РНР, они вам также понадобятся.
Чтобы убедиться, что DLL можно найти, вы должны либо скопировать их в системную директорию (winnt/system32 или windows/system), либо убедиться, что они находятся в той же директории, что и главный PHP executable или DLL, используемые вашим сервером (например, php.exe, php4apache.dll).Двоичный PHP, SAPI-модули и некоторые расширения требуют для своей работы наличия некоторых внешних DLL-библиотек. Убедитесь, что эти DLL дистрибутива расположены в директории, которая находится в Windows PATH. Лучше всего скопировать нижеуказанные файлы в системную директорию, которая обычно:
c:\windows\system в Windows 9x/ME c:\winnt\system32 в Windows NT/2000 c:\windows\system32 в Windows XP Нужно скопировать файлы:
php4ts.dll; если он уже есть, перезаписать его Файлы из директории 'dlls' дистрибутива. Если они уже установлены в вашей системе, перезаписывайте их только в том случае, если что-то работает некорректно (до перезаписи неплохо было бы скопировать их или переместить в другую папку - на случай каких-либо неприятностей). Загрузите последнюю версию Microsoft Data Access Components (MDAC) для вашей платформы, особенно если вы используете Microsoft Windows 9x/NT4. MDAC находится по адресу http://www.microsoft.com/data/
Скопируйте выбранный вами ini-файл (см. ниже) в директорию '%WINDOWS%' - в ОС Windows 9x/Me, или в директорию '%SYSTEMROOT%' - в Windows NT/2000/XP и переименуйте его в php.ini. Ваша директория '%WINDOWS%' или '%SYSTEMROOT%' это обычно:
c:\windows в Windows 9x/ME/XP c:\winnt или c:\winnt40 в NT/2000-серверах В zip-файле есть два ini-файла, php.ini-dist и php.ini-optimized.
Мы рекомендуем использовать php.ini-optimized, поскольку мы оптимизировали в этом файле значения по умолчанию для обеспечения соответствующей производительности и безопасности. Лучше изучить все ini-настройки и самостоятельно настроить каждый элемент. Если вам нужна повышенная безопасность, то этот путь - для вас, хотя PHP прекрасно работает и с установками по умолчанию ini-файла.Отредактируйте ваш новый php.ini:
-
Вам нужно будет изменить установку 'extension_dir', чтобы она указывала на вашу директорию с установленным РНР, либо на местонахождение ваших php_*.dll-файлов. Пример: c:\php\extensions
-
Если вы используете OmniHTTPd, не выполняйте этот шаг. Установите, чтобы 'doc_root' указывал на document_root вашего web-сервера. Например: c:\apache\htdocs или c:\webroot
Определите, какие расширения подключать при старте PHP. См. в разделе Windows-расширения о том, как их устанавливать и что уже построено. Заметьте, что при первоначальной инсталяции мы советуем сначала протестировать PHP без каких либо расширений, а затем подключить их в php.ini.
В PWS и IIS вы можете установить, чтобы browscap.ini указывал на: c:\windows\system\inetsrv\browscap.ini - в Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini - в NT/2000 и c:\windows\system32\inetsrv\browscap.ini - в XP.
Обратите внимание, что директория mibs, поставляемая с дистрибутивом Windows, содержит файлы поддержки SNMP. Эта директория должна быть перемещена на DRIVE:\usr\mibs (DRIVE это диск, на котором установлен PHP).
Если вы используете NTFS в Windows NT, 2000 или XP, убедитесь, что пользователь, запускающий web-сервер, имеет допуск к php.ini (например, сделайте его доступным для чтения для Everyone).
-
Для PWS выдайте разрешение для webroot:
Стартовать PWS Web Manager
Редактировать Properties "Contents"-директории
Отмечать "execute"-переключатель
Построение из исходного кода
Перед началом хорошо бы ответить на вопрос: "Почему построение/building в Windows такое сложное?".
Для этого есть две причины:
Windows (ещё) не поддерживается большим сообществом разработчиков, желающих свободно использовать свои ресурсы. Как следствие, соответствующие вложения в инфраструктуру, необходимые для поддержки такой работы, не делаются. Более того, всё, что имеется, стало доступным благодаря соответствующим утилитам Unix. Не удивляйтесь, если иногда это будет заметно.
Вероятнее всего, все последующие инструкции являются вариантами "установил и забыл". Поэтому наберитесь терпения и следуйте дальнейшим указаниям максимально точно.
Подготовка
Прежде чем начать, многое придётся загрузить...
-
Начинающие, получите Cygwin toolkit с ближайшего сайта cygwin. Здесь вы получите самые популярные GNU-утилиты, используемые при построении/build.
Загрузите остальные build-утилиты с PHP-сайта http://www.php.net/extra/win32build.zip
Получите исходный код DNS name resolver', используемого PHP, по адресу http://www.php.net/extra/bindlib_w32.zip. Это замена библиотеки resolv.lib, включённой в win32build.zip
-
Если у вас ещё нет unzip-утилиты, достаньте её. Бесплатная версия находится на InfoZip.
Наконец, вам нужен сам исходник PHP 4. Вы можете получить последнюю версию с использованием anonymous CVS. Если вы получили snapshot или исходный tar-файл, вы должны не только untar и ungzip его, но и конвертировать символы bare linefeeds в crlf в файлах *.dsp и *.dsw, прежде чем Microsoft Visual C++ сможет что-либо с ними делать.
Примечание: поместите директории Zend и TSRM внутрь директории php4, чтобы проекты можно было найти в процессе построения.
Объедините всё это
-
Следуйте инструкциям по установке unzip-утилиты.
Запустите setup.exe и следуйте инструкциям. Если вы решили установить в каталог, отличный от c:\cygnus, дайте знать процессу построения, установив переменную окружения Cygwin. В Windows 95/98 установка переменной окружения выполняется путём внесения строки в файл autoexec.bat. В Windows NT перейдите в My Computer => Control Panel => System и выберите вкладку environment/окружение.
Предупреждение! |
---|
Создайте временную директорию для Cygwin, иначе многие команды (особенно bison) потерпят неудачу. В Windows 95/98, mkdir C:\TMP. В Windows NT, mkdir %SystemDrive%\tmp. |
Создайте директорию и unzip в неё win32build.zip.
-
Запустите Microsoft Visual C++ и выберите меню Tools => Options. Выберите вкладку directories. Последовательно измените ниспадающие списки Executables, Includes и Library-файлов и убедитесь, что cygwin\bin, win32build\include и win32build\lib находятся в списках, соответственно. (Чтобы добавить вхождение, выберите пустую строку в конце списка и впишите). Обычно вхождения выглядят так:
c:\cygnus\bin
c:\php-win32build\include
c:\php-win32build\lib
Нажмите OK и выйдите из Visual C++.
-
Создайте другую директорию и unzip в неё bindlib_w32.zip. Решите, нужны ли будут вам символы отладки (bindlib - Win32 Debug) или нет (bindlib - Win32 Release). Постройте соответствующую конфигурацию:
Для пользователей GUI. Запустите VC++, а затем выберите File => Open Workspace и bindlib. Затем выберите Build=>Set Active Configuration и желаемую конфигурацию. Наконец, выберите Build=>Rebuild All.
-
Для пользователей командной строки. Убедитесь, что у вас зарегистрированы переменные окружения C++, или запустите vcvars.bat, а затем выполните одно из:
msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
Теперь у вас должна быть resolv.lib в поддиректории Debug или Release. Скопируйте этот файл в директорию win32build\lib, переписав файл с тем же именем.
Компиляция
Лучший способ начать работу - построить отдельный файл/CGI-версию.
Для пользователей GUI, запустите VC++, а затем выберите File => Open Workspace и php4ts. Затем выберите Build=>Set Active Configuration и нужную конфигурацию. Затем Build=>Rebuild All.
Для пользователей командной строки. Убедитесь, что у вас зарегистрированы переменные окружения C++, или запустите vcvars.bat, а затем выполните одно из:
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
Теперь у вас должен быть php.exe в поддиректории Debug_TS или Release_TS.
Повторите предыдущие шаги с php4isapi.dsp (который находится в sapi\isapi), чтобы построить код, необходимый для интеграции PHP с Microsoft IIS.
Установка Windows-расширений
После установки PHP и web-сервера на Windows вы, возможно, захотите установить расширения для получения дополнительной функциональности. В следующей таблице описаны некоторые имеющиеся расширения. Вы можете выбрать, какие расширения загружать при старте PHP, раскомментировав строки: 'extension=php_*.dll' в файле php.ini. Вы можете также динамически загружать модуль в скрипте, используя dl().
DLL-библиотеки для PHP-расширений имеют префикс 'php_' в PHP 4 (и 'php3_' в PHP 3). Это предотвращает неоднозначность между PHP-расширениями и поддерживаемыми библиотеками.
Примечание: в PHP 4.0.6 BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX и XML имеют встроенную поддержку. Вам не нужно загружать никакие дополнительные расширения, чтобы использовать эти функции. См. в дистрибутиве файл README.txt или install.txt, где дан список встроенных модулей.
Примечание: некоторые расширения требуют дополнительных DLLs для своей работы. Две из них можно найти в дистрибутиве в папке 'dlls', но некоторые, например, Oracle (php_oci8.dll), требуют наличия DLLs, которые отсутствуют в дистрибутиве.
Скопируйте связанные DLLs из папки 'DLLs' в ваш Windows PATH. Надёжные места:
c:\windows\system в Windows 9x/Me c:\winnt\system32 в Windows NT/2000 c:\windows\system32 в Windows XP Если они уже установлены у вас в системе, перепишите их только в том случае, если что-то работает неверно (прежде чем перезаписать, сделайте резервные копии или переместите их в другие папки - на случай, если что-то пойдёт не так).
Таблица 2-1. Расширения PHP
Расширение | Описание | Примечание |
---|---|---|
php_bz2.dll | bzip2 функции сжатия | Нет |
php_calendar.dll | Calendar функции конвертации | Встроены, начиная с PHP 4.0.3 |
php_cpdf.dll | функции ClibPDF | Нет |
php_crack.dll | функции Crack | Нет |
php3_crypt.dll | функции Crypt | не известны |
php_ctype.dll | функции семейства ctype | Нет |
php_curl.dll | CURL, функции библиотеки Client URL | Требует: libeay32.dll, ssleay32.dll (связанной) |
php_cybercash.dll | Cybercash функции платежей | Нет |
php_db.dll | DBM-функции | Не рекомендуется. Используйте DBA (php_dba.dll) |
php_dba.dll | DBA: DataBase (dbm-стиль) Функции слоёв абстракции | Нет |
php_dbase.dll | функции dBase | Нет |
php3_dbm.dll | Berkeley DB2-библиотека | не известны |
php_domxml.dll | функции DOM XML | Требует: libxml2.dll (связанной) |
php_dotnet.dll | функции .NET | Нет |
php_exif.dll | Read EXIF headers/шапки из JPEG | Нет |
php_fbsql.dll | функции FrontBase | Нет |
php_fdf.dll | FDF: функции Forms Data Format. | Требует: fdftk.dll (связанной) |
php_filepro.dll | функции filePro | Доступ только-для-чтения |
php_ftp.dll | функции FTP | Встроены, начиная с PHP 4.0.3 |
php_gd.dll | GD библиотека функции изображений | Нет |
php_gettext.dll | функции Gettext | Требует: gnu_gettext.dll (связанной) |
php_hyperwave.dll | функции HyperWave | Нет |
php_iconv.dll | ICONV characterset-конвертация | Требует: iconv-1.3.dll (связанной) |
php_ifx.dll | функции Informix | Требует: библиотек Informix |
php_iisfunc.dll | IIS функции менеджмента | Нет |
php_imap.dll | IMAP функции POP3 и NNTP | PHP 3: php3_imap4r1.dll |
php_ingres.dll | функции Ingres II | Требует: библиотек Ingres II |
php_interbase.dll | функции InterBase | Требует: gds32.dll (связанной) |
php_java.dll | расширение Java | Требует: jvm.dll (связанной) |
php_ldap.dll | функции LDAP | Требует: libsasl.dll (связанной) |
php_mhash.dll | функции Mhash | Нет |
php_ming.dll | функции Ming для Flash | Нет |
php_msql.dll | функции mSQL | Требует: msql.dll (связанной) |
php3_msql1.dll | mSQL 1-клиент | не известны |
php3_msql2.dll | mSQL 2-клиент | не известны |
php_mssql.dll | функции MSSQL | Требует: ntwdblib.dll (связанной) |
php3_mysql.dll | функции MySQL | Встроены в PHP 4 |
php3_nsmail.dll | Netscape mail-функции | не известны |
php3_oci73.dll | функции Oracle | не известны |
php_oci8.dll | функции Oracle 8 | Требует: клиентских библиотек Oracle 8 |
php_openssl.dll | функции OpenSSL | Требует: libeay32.dll (связанной) |
php_oracle.dll | функции Oracle | Требует: клиентских библиотек Oracle 7 |
php_pdf.dll | функции PDF | Нет |
php_pgsql.dll | функции PostgreSQL | Нет |
php_printer.dll | функции Printer | Нет |
php_xslt.dll | функции XSLT | Требует: sablot.dll (связанной) |
php_snmp.dll | SNMP функции get и walk | Только NT! |
php_sybase_ct.dll | функции Sybase | Требует: клиентских библиотек Sybase |
php_yaz.dll | функции YAZ | Нет |
php_zlib.dll | ZLib функции сжатия | Нет |