Руководство по ручной установке
Этот раздел содержит инструкции для ручной установки и настройки PHP на Microsoft Windows.
Выбор и загрузка пакета дистрибутивов PHP
- Если 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 в версии без поддержки многопоточности) | |-.
- 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.
Extension dir php ini windows
On Windows, you have two ways to load a PHP extension: either compile it into PHP, or load the DLL. Loading a pre-compiled extension is the easiest and preferred way.
To load an extension, you need to have it available as a «.dll» file on your system. All the extensions are automatically and periodically compiled by the PHP Group (see next section for the download).
To compile an extension into PHP, please refer to building from source documentation.
To compile a standalone extension (aka a DLL file), please refer to building from source documentation. If the DLL file is available neither with your PHP distribution nor in PECL, you may have to compile it before you can start using the extension.
Where to find an extension?
PHP extensions are usually called «php_*.dll» (where the star represents the name of the extension) and they are located under the «PHP\ext» folder.
PHP ships with the extensions most useful to the majority of developers. They are called «core» extensions.
However, if you need functionality not provided by any core extension, you may still be able to find one in » PECL. The PHP Extension Community Library (PECL) is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.
If you have developed an extension for your own uses, you might want to think about hosting it on PECL so that others with the same needs can benefit from your time. A nice side effect is that you give them a good chance to give you feedback, (hopefully) thanks, bug reports and even fixes/patches. Before you submit your extension for hosting on PECL, please read » PECL submit.
Which extension to download?
- Different version numbers (at least the first two numbers should match)
- Different thread safety settings
- Different processor architecture (x86, x64, . )
- Different debugging settings
- etc.
You should keep in mind that your extension settings should match all the settings of the PHP executable you are using. The following PHP script will tell you all about your PHP settings:
Example #1 phpinfo() call
Or from the command line, run: