Installing php extensions windows

Установка PHP-расширения в Windows

В Windows есть два способа загрузки PHP-расширения: скомпилировать его вместе с PHP или загрузить DLL. Загрузка заранее скомпилированного расширения является наиболее простым и предпочитаемым способом.

Для загрузки расширения, оно должно присутствовать на вашей системе в виде «.dll» файла. Все расширения автоматически и периодически компилируются командой PHP (см. следующий раздел для загрузки).

За инструкциями по компиляции расширения в PHP обратитесь к разделу «Сборка из исходников».

Для компиляции отдельного расширения (или DLL-файла), обратитесь к разделу » Сборка из исходников». Если DLL-файла нет ни в стандартной поставке PHP ни в PECL, возможно, вам придется скомпилировать его вручную.

Где найти расширение?

PHP-расширения обычно имеют имена вида «php_*.dll» (где звездочка обозначает имя расширения) и располагаются в папке «PHP\ext».

PHP поставляет расширения наиболее полезные большинству разработчиков. Такие расширения называются «основными» («core»).

Однако, если вам требуется функционал, который не предоставляется ни одним из основных расширений, возможно, нужное вам расширение есть в PECL. Библиотека расширений сообщества PHP (The PHP Extension Community Library, PECL) является хранилищем расширений PHP, предоставляя каталог и хостинг всех известных расширений для скачки и дальнейшей разработки расширений в PHP.

Если вы разработали какое-либо расширение для собственных нужд, возможно, вы захотите хранить его в PECL, так, чтобы другие также могли воспользоваться результатами вашего труда. Хорошим побочным эффектом будет неплохой шанс получить обратную связь, благодарности (надеемся, что так и будет), сообщения об ошибках и даже исправления/патчи. Пожалуйста, прочтите » публикация PECL; перед отправкой вашего расширения в PECL.

Какое расширение нужно загрузить?

Очень часто существует несколько версий расширения DLL:

  • Различные номера версий (по крайней мере первые два числа должны совпадать)
  • Различные настройки потокобезопасности
  • Различная архитектура процессора (x86, x64, . )
  • Различные настройки отладки
  • и т.д.

Помните, что настройки ваших расширений должны совпадать со всеми настройками используемого вами бинарного файла PHP. Следующий PHP-скрипт выведет вам все настройки PHP:

Пример #1 Вызов phpinfo()

Установка расширений PHP в ОС Windows

После установки PHP и веб-сервера на ОС Windows может понадобиться установить некоторые расширения для добавления функционала. Вы можете выбрать, какие расширения будут загружаться при старте PHP, модификацией вашего файла php.ini . Также вы можете загружать расширения динамически в ваших скриптах, используя функцию dl() .

Библиотеки DLL расширений PHP имеют префикс php_.

Многие расширения встроены в Windows-версию PHP. Это значит, что дополнительные DLL-файлы и директива extension не используются для загрузки данных расширений. Таблица расширений PHP в Windows, содержащая список расширений, требующих (или обычно требующих) дополнительные DLL-файлы. Ниже приведен список встроенных расширений (обновлено PHP 5.0.4): BCMath, Caledar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, SQLite, WDDX, XML и Zlib.

Читайте также:  Линуксе для формата флешки

Место по умолчанию, в котором PHP ищет расширения — C:\php5 . Для изменения данной настройки согласно вашей установке PHP отредактируйте файл php.ini следующим образом:

измените опцию extension_dir так, чтобы она указывала на директорию, в которой расположены расширения или в которую вы поместили файлы php_*.dll . Например:

Включите одно или несколько расширений, которые вы хотите использовать, раскомментировав в файле php.ini строки вида extension=php_*.dll. Это делается удалением символа «;» в начале строки для каждого расширения, которое вы хотите включить.

Пример #1 Включение расширения Bzip2 в PHP-Windows

Некоторые расширения для своей работы требуют дополнительные библиотеки DLL. Несколько из них находятся в распространяемом дистрибутиве PHP, в в корневой директории, но некоторые расширения, например, Oracle ( php_oci8.dll ), требуют наличия библиотек DLL, не включаемых в дистрибутив PHP. Не забудьте включить директорию C:\php в системную переменную PATH (данный процесс описан в отдельном разделе помощи).

Некоторые из этих библиотек DLL не поставляются в дистрибутиве PHP. За деталями обратитесь к странице документации конкретного расширения. Также прочтите раздел руководства Установка расширений PECL, чтобы узнать дополнительную информацию о PECL . Все большее число расширений PHP можно найти в PECL , и данные расширения требуют отдельной загрузки.

Как установить расширение PHP: из репозитория и исходников

В большинстве случаев расширение можно установить из репозитория. В репозитории включаются все популярные расширения.

Выяснить, что доступно для установки можно так:

php7.0-mbstring — MBSTRING module for PHP
php7.0-mcrypt — libmcrypt module for PHP
php7.0-mysql — MySQL module for PHP
php7.0-odbc — ODBC module for PHP
php7.0-opcache — Zend OpCache module for PHP
php7.0-pgsql — PostgreSQL module for PHP
php7.0-phpdbg — server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-pspell — pspell module for PHP

Производится поиск по маске, среди результатов непосредственно php7.0 и все расширения.

Так, если планируется работа с PostgreSQL, то нужно установить php7.0-pgsql.

Любая установка — потенциально опасная операция, поэтому сначала ее следует проводить с ключем —dry-run. В этом случае будут проверены зависимости, но изменений в систему фактически не вносится.

Если ошибок не возникло, но расширение можно устанавливать

Теперь расширение php7.0-pgsql установлено, осталось его подключить.

Сборка расширений PHP

Сборку можно выполнять на рабочей машине, но лучше использовать для этого другой сервер с аналогичной конфигурацией.

Компиляция нужна для расширений, отсутствующих в репозитрии и встречающихся реже.

Исходники расширений можно найти на сайте https://pecl.php.net/

Читайте также:  Wine для alt linux

Допустим, что требуется stomp (https://pecl.php.net/package/stomp)

Нужно скачать исходники

Затем распаковать архив

И перейти в каталог с файлами расширения

Далее при условии, что на сервере используется одна версия PHP:

Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100412
Zend Extension Api No: 20100412

Если больше одной версии — потребуется указывать phpize под конкретную версию и phpconfig. Это бинарные файлы, использующиеся для сборки.

Ошибки в логах после сборки появляются про разные версии PHP Api Version и Zend Extension Api No говорят о не тех использованных phpize и phpconfig.

При отсутствии phpize устанавливается пакет php5-dev

configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands

Build complete.
Don’t forget to run ‘make test’.

Installing shared extensions: /usr/lib/php7.1.21/20160303/

В результате получаем файл /usr/lib/php7.1.21/20160303/stomp.so, который нужно подключить в php.ini

При условии, что используется php той версии, для которой собрано расширение и конфигурационный файл размещается по пути /etc/php/php.ini:

Далее все процессы можно завершить, чтобы быстрее увидеть результат

Installing php extensions windows

After installing PHP and a webserver on Windows, you will probably want to install some extensions for added functionality. You can choose which extensions you would like to load when PHP starts by modifying your php.ini . You can also load a module dynamically in your script using dl() .

The DLLs for PHP extensions are prefixed with php_ .

The default location PHP searches for extensions is C:\php4\extensions in PHP 4 and C:\php5 in PHP 5. To change this setting to reflect your setup of PHP edit your php.ini file:

Enable the extension(s) in php.ini you want to use by uncommenting the extension=php_*.dll lines in php.ini . This is done by deleting the leading ; from the extension you want to load.

// change the following line from . ;extension=php_bz2.dll // . to extension=php_bz2.dll

Some of the extensions need extra DLLs to work. Couple of them can be found in the distribution package, in the C:\php\dlls\ folder in PHP 4 or in the main folder in PHP 5, but some, for example Oracle ( php_oci8.dll ) require DLLs which are not bundled with the distribution package. If you are installing PHP 4, copy the bundled DLLs from C:\php\dlls folder to the main C:\php folder. Don’t forget to include C:\php in the system PATH (this process is explained in a separate FAQ entry ).

Some of these DLLs are not bundled with the PHP distribution. See each extensions documentation page for details. Also, read the manual section titled Installation of PECL extensions for details on PECL . An increasingly large number of PHP extensions are found in PECL , and these extensions require a separate download .

Note: If you are running a server module version of PHP remember to restart your webserver to reflect your changes to php.ini .

The following table describes some of the extensions available and required additional dlls.

Installing php extensions 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?

Many times, you will find several versions of each DLL:

  • 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:

Читайте также:  Утилита для установки windows с жесткого диска
Оцените статью