Руководство по ручной установке

Этот раздел содержит инструкции для ручной установки и настройки PHP на Microsoft Windows. Инструкции по использованию инсталлятора PHP для установки и конфигурации PHP и веб сервера на Windows находятся в разделе Windows Installer (PHP 5.2 и более поздние).

Выбор и загрузка пакета дистрибутивов PHP

Загрузите дистрибутив PHP в виде zip-архива с » PHP для Windows: Исполняемые файлы и исходные коды. Существует несколько различных версий zip-пакетов - выберите версию, которая подходит для используемого веб сервера:

  • Если PHP используется с IIS, тогда следует использовать PHP 5.3 VC9 Non Thread Safe или PHP 5.2 VC6 Non Thread Safe;

  • Если PHP используется с IIS7 или выше и версия PHP 5.3+, тогда должна использоваться версия дистрибутива PHP VC9.

  • Если PHP используется с Apache 1 или Apache 2 тогда выбирайте PHP 5.3 VC6 или PHP 5.2 VC6.

Замечание:

Версии VC9 компилируются с помощью Visual Studio 2008 и имеют улучшенную производительность и стабильность. Версии VC9 требуют наличия в системе » Microsoft 2008 C++ Runtime (x86) или » Microsoft 2008 C++ Runtime (x64).

Структура пакетов PHP и их содержимое

Распакуйте содержимое zip архива в директорию по вашему выбору, например C:\PHP\. Директория и структура файлов, извлеченных из zip, будет такой:

Пример #1 Структура пакета PHP 5


c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- версия php5.lib без поддержки многопоточности
   |
   +--ext                          -- DLL расширения для PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- пустой
   |
   +--pear                         -- начальная копия PEAR
   |
   |
   |-go-pear.bat                   -- скрипт установки PEAR 
   |
   |-...
   |
   |-php-cgi.exe                   -- исполняемый файл CGI
   |
   |-php-win.exe                   -- выполняет скрипты без открытой консоли
   |
   |-php.exe                       -- Исполняемый файл PHP для командной строки (CLI)
   |
   |-...
   |
   |-php.ini-development           -- настройки php.ini по-умолчанию
   |
   |-php.ini-production            -- рекомендуемые настройки php.ini
   |
   |-php5apache2_2.dll             -- имеется только в многопоточной версии
   |
   |-php5apache2_2_filter.dll      -- имеется только в многопоточной версии
   |
   |-...
   |
   |-php5ts.dll                    -- ядро PHP DLL ( php5.dll в версии без поддержки многопоточности)
   | 
   |-...

Ниже представлен список модулей и исполняемых файлов, включенных в PHP zip дистрибутив:

  • go-pear.bat - скрипт установки PEAR. Подробнее см. » Установка (PEAR).

  • php-cgi.exe - исполняемый файл CGI, который может бюыть использован во время запуска PHP на IIS через CGI или FastCGI.

  • php-win.exe - исполняемый файл PHP для выполнения PHP скриптов без использования консоли (например, приложения PHP, использующие Windows GUI).

  • php.exe - исполняемый файл PHP для выполнения PHP скриптов в консоли (CLI).

  • php5apache2_2.dll - модуль Apache 2.2.X.

  • php5apache2_2_filter.dll - фильтр Apache 2.2.X.

Изменение файла php.ini

После того, как содержимое пакета php извлечено, создайте копию php.ini-production с именем php.ini в той же папке. Если необходимо, также возможно разместить php.ini в любом другом месте по вашему выбору, но это потребует дополнительной настройки, которая приводится в разделе Настройка PHP.

Файл php.ini содержит правила исполнения PHP и инструкции по работе с окружением, в котором он запускается. Ниже приводятся некоторые из настроек php.ini, которые могут улучшить работу PHP в Windows. Некоторые из них опциональны. Есть много других директив, которые могут быть полезны в вашем окружении - обращайтесь к списку директив php.ini за более подробной информацией.

Обязательные директивы:

  • extension_dir = <путь к директории расширений> - extension_dir указывает директорию, где расположены расширения PHP. Путь может быть абсолютым (например "C:\PHP\ext") или относительным (например ".\ext"). Используемые в php.ini расширения должны быть расположены в extension_dir.

  • extension = xxxxx.dll - Для каждого подключаемого расширения необходимо указать директиву "extension=". Расширения из extension_dir, отмеченные такой директивой, загружаются при старте PHP.

  • log_errors = On - в PHP есть механизм ведения лога ошибок, который может использоваться для сохранения ошибок в файле или для отправки в сервис (например syslog). Механизм также использует значение директивы error_log. Когда PHP исполняется службой IIS, log_errors должен быть включен с корректным error_log.

  • error_log = <пусть к файлу лога ошибок> - error_log нужен для обозначения абсолютного или относительного пути к файлу, в который протоколируются ошибки PHP. Этот файл должен доступным для записи веб-сервером. Самые распространенные места размещения этого файла - различные временные TEMP директории, например "C:\inetpub\temp\php-errors.log".

  • cgi.force_redirect = 0 - Эта директива необходима для исполнения под IIS. Это механизм защиты директории, требуемый многими другими веб серверами. Однако, включение его под IIS вызовет ошибки ядра PHP в Windows.

  • cgi.fix_pathinfo = 1 - Обеспечивает поддержку PATH_INFO согласно спецификации CGI. IIS FastCGI использует эту настройку.

  • fastcgi.impersonate = 1 - FastCGI под IIS поддерживает способность идентифицировать маркеры безопасности вызывающего клиента. Это позволяет IIS определять контекст безопасности, под которые выполняется запрос.

  • fastcgi.logging = 0 - Запись логов FastCGI должна быть выключена в IIS. Если запись включена, тогда все сообщения любых классов распознаются FastCGI как ошибки, что приведет IIS к генерации исключения HTTP 500.

Опциональные директивы

  • max_execution_time = ## - Эта директива указывает максимальное время выполнения любого скрипта PHP. По умолчанию равно 30 секундам. Следует увеличить это значение, если приложение PHP должно выполняться дольше.

  • memory_limit = ###M - Количество памяти, доступное процессу PHP, в Мб. По умолчанию 128, что достаточно для большинства PHP приложений. Некоторым сложным приложениям может потребоваться больше памяти.

  • display_errors = Off - Директива определяет, какие ошибки следует возвращать веб-серверу для дальнейшего протоколирования. При значении "On" PHP сообщает обо всех видах ошибок, которые приводятся в директиве error_reporting. По соображениям безопасности рекомендуется установить в "Off" на рабочих серверах, чтобы исключить передачу вывода ошибкок конечному пользователю, так как они могут содержат информацию, угрожающую безопасности приложения.

  • open_basedir = <пути к директориям, разделенные точкой с запятой>, например openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Эта директива указывает пути к директориям, в которых PHP разрешены операции с файловой системой. Любая операция с файлами и директориями вне указанных путей будет приводить к ошибке. Эта директива особенно полезна для предоствращения доступа к установленному PHP в окружениях разделяемых хостингов для предотвращения доступа PHP скриптов к любым файлам вне корневой директории веб сайта.

  • upload_max_filesize = ###M и post_max_size = ###M - Максимальный разрешенный размер загруженного файла и присланных данных соответственно. Значения этих директив должны быть увеличены, если приложения PHP должны обрабатывать большие загружаемые файлы, например изображения или видеофайлы.

После установки PHP в вашей системе слудеющим шагом будет выбор веб-сервера и его дальнейшая настройка для работы с PHP. Выберите конкретный веб-сервер в оглавлении к данному материалу.

Помимо запуска PHP с помощью веб-сервера, PHP может быть запущен из командной строки как .BAT скрипт. За более подробной информацией обращайтесь к материалу Консоль PHP на Microsoft Windows.

Коментарии

If you're installing PHP 8.0.1 as Apache http server module, in httpd.conf you must use "php_module" in "LoadModule" directive instead of versioned names like in previous versions (aka, php5_module, php7_module, ...). Make the directive as follow:

LoadModule php_module "/path/to/php8apache2_4.dll"

I cracked my head over this...
2021-01-31 05:34:07
http://php5.kiev.ua/manual/ru/install.windows.manual.html

    Поддержать сайт на родительском проекте КГБ