Учебник РНР (перевод Alexandr Pyramidin) Размещено на PHPClub.Net
НазадГлава 2. Инсталяция Вперёд

Установка на системах 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 по адресу https://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, но она не предназначена для использования в online-серверах.

Ручная установка

Этот справочник поможет вам вручную установить и сконфигурировать PHP на вашем Windows web-сервере. Вам нужно загрузить zip binary дистрибутив со страницы downloads https://www.php.net/.
Оригинальную версию этого справочника скомпилировал Bob Silva, и её можно найти по адресу https://www.umesd.k12.or.us/php/win32install.html

Здесь дана поддержка установки на:

  • 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 находится по адресу https://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 такое сложное?".

Для этого есть две причины:

  1. Windows (ещё) не поддерживает большое сообщество разработчиков, желающих свободно использовать свои ресурсы. Как следствие, соответствующие вложения в инфраструктуру, необходимые для поддержки такой работы, не делаются. Более того, всё, что имеется, стало доступным благодаря соответствующим утилитам Unix. Не удивляйтесь, если иногда это будет заметно.

  2. Вероятнее всего, все последующие инструкции являются вариантами "установил и забыл". Поэтому наберитесь терпения и следуйте дальнейшим указаниям максимально точно.

Подготовка

Прежде чем начать, многое придётся загрузить...

  • Начинающие, получите Cygwin toolkit с ближайшего сайта cygwin. Здесь вы получите самые популярные GNU-утилиты, используемые при построении/build.

  • Загрузите остальные build-утилиты с PHP-сайта https://www.php.net/extra/win32build.zip

  • Получите исходный код DNS name resolver', используемого PHP, по адресу https://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.dllbzip2 функции сжатияНет
php_calendar.dllCalendar функции конвертации Встроены, начиная с 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.dllCybercash функции платежей Нет
php_db.dllDBM-функции Не рекомендуется. Используйте DBA (php_dba.dll)
php_dba.dll DBA: DataBase (dbm-стиль) Функции слоёв абстракции Нет
php_dbase.dllфункции dBase Нет
php3_dbm.dllBerkeley 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.dllFDF: функции Forms Data Format. Требует: fdftk.dll (связанной)
php_filepro.dll функции fileProДоступ только-для-чтения
php_ftp.dllFTP functions Встроены, начиная с 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.dllIIS функции менеджмента Нет
php_imap.dllIMAP функции 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.dllmSQL 1-клиентне известны
php3_msql2.dll mSQL 2-клиентне известны
php_mssql.dll функции MSSQLТребует: ntwdblib.dll (связанной)
php3_mysql.dllфункции MySQLВстроены в PHP 4
php3_nsmail.dllNetscape 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.dllSNMP функции get и walkТолько NT!
php_sybase_ct.dllфункции Sybase Требует: клиентских библиотек Sybase
php_yaz.dll функции YAZНет
php_zlib.dll ZLib функции сжатияНет

Назад Оглавление Вперёд
Установка на системах UNIX Вверх Серверы CGI/Командная строка