Расширения php для windows

Installing a PHP extension on Windows

There are two ways to load a PHP extension on Windows: either compile it into
PHP, or load the DLL.
Loading a pre-compiled extension is the easiest and preferred way.

To load an extension, it has to be available as a
.dll
file on the 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 the
building from source
documentation.

To compile a standalone extension (aka a DLL file), please refer to the
building from source
documentation.
If the DLL file is available neither with the PHP distribution nor in PECL,
it may be necessary to compile it before the extension can be used.

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 bundled extensions.

However, if the bundled extensions do not provide the needed functionality,
one extension that does may still be found 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 developing PHP extensions.

If an extension has been developed for particular uses, it may be hosted on
PECL so that others with the same needs can benefit from it.
A nice side effect is that it’s a good chance to receive feedback,
(hopefully) thanks, bug reports and even fixes/patches.
Before submitting an extension for hosting on PECL, please read
» PECL submit.

Which extension to download?


Many times, there will be several versions of each DLL available:


  • Different version numbers (at least the first two numbers should match)

  • Different thread safety settings

  • Different processor architecture (x86, x64, …)

  • Different debugging settings

  • etc.

Keep in mind that the extension settings should match all the settings of
the PHP executable being used.
The following PHP script will tell all about the PHP
settings:

Or from the command line, run:

drive:\path\to\php\executable\php.exe -i

Loading an extension

The most common way to load a PHP extension is to include it in
the php.ini configuration file.
Please note that many extensions are already present in the php.ini and
that the semicolon only needs to be removed to activate them.

Note that, as of PHP 7.2.0, the extension name may be used
instead of the extension’s file name.
As this is OS-independent and easier, especially for newcomers, it becomes
the recommended way of specifying extensions to load.
File names remain supported for compatibility with prior versions.

;extension=php_extname.dll
extension=php_extname.dll
; As of PHP 7.2.0, prefer:
extension=extname
zend_extension=another_extension

However, some web servers are confusing because they do not use
the php.ini located alongside the PHP executable.
To find out where the actual php.ini resides, look for its path
in phpinfo():

Configuration File (php.ini) Path  C:\WINDOWS
Loaded Configuration File   C:\Program Files\PHP\8.2\php.ini

After activating an extension, save php.ini, restart the web server, and
check phpinfo() again.
The new extension should now have its own section.

Resolving problems

If the extension does not appear in phpinfo(),
the logs should be checked to learn where the problem comes from.

If PHP is being used from the command line (CLI), the extension loading
error can be read directly on the screen.

If PHP is being used with a web server, the location and format of the logs
vary depending on the software.
Please read the web server documentation to locate the logs, as it has
nothing to do with PHP itself.

Common problems are the location of the DLL and the DLLs it depends on, the
value of the «extension_dir»
setting inside php.ini and compile-time setting mismatches.

If the problem lies in a compile-time setting mismatch, probably the DLL
downloaded is not the right one.
Try downloading the extension again with the proper settings.
Again, phpinfo() can be of great help.

Found A Problem?

j dot o dot l dot a dot n at bk dot ru

1 year ago

In order for php to see extensions, it is necessary to specify the root folder when specifying the address to the directory with extensions in php.ini. For example extension_dir = "php/ext"

bk at kaelberer-aio dot de

2 years ago

In addition to the helpful comments of ferdnyc and dario: A few weeks ago I've set up a new W11 using PHP 8.1. (as a module) with Apache. It was working fine.
Today i wanted to install the PECL-extension php-amqp. This extension comes with two additional files that are said to be placed in PHPs main directory. It worked fine running from the command prompt but with Apache the extension failed with "Unable to load dynamic library 'amqp'".
I tried 100 ways to notate paths in php.ini and http.conf: c:, C:, \, \\, /, ". I also installed a new PHP in the root to get rid of the space in the path. It did not help.
When reading dario's comment i stumbeled across him mentioning "path environment variable". I checked that in Window's settings and I realized, that i had added PHP's path to the USER'S path-settings, but not to the SYSTEM'S path. That is why it worked in the command prompt but not when starting Apache as a service. After adding it there it worked fine.

dario at 4assistance dot com

2 years ago

On windows, drop your extension's dependencies into a dir of your choice, but outside of your php install. Add that dir to a path environment variable used by your php. Add <extension_name>.dll to your php's extension_dir, and update your php.ini (unless you're simply testing with php's cli).

ferdnyc at gmail dot com

2 years ago

This is handwaved somewhat in the "Resolving problems" section, but mis-location of (non-extension) DLL files is often a problem when installing PHP extensions on Windows.

Many PHP extensions come with not only the extension DLL, but supplementary DLLs that are required by that extension. (For example, php_luasandbox.dll comes with lua5.1.dll, the lua interpreter it sandboxes.) Those other DLLs should go into the same directory as the php.exe binary, NOT the extension directory.

So, if php_luasandbox.dll is installed at C:\PHP8.1\ext\php_luasandbox.dll, the interpreter would be located at C:\PHP8.1\lua5.1.dll. That allows the PHP binary C:\PHP8.1\php.exe to find those additional DLLs when required.

Last Updated :
05 Jan, 2022

PHP is a general-purpose server scripting language. It is a powerful and important tool for developing dynamic and interactive Web pages. It is widely used, free, fast, flexible, and pragmatic. After installing PHP and a web server on Windows, extensions are also needed because they provide added functionality. PHP with extensions is the best combination for the developers to develop more dynamic and interactive web pages or applications. Extensions can be chosen when PHP starts by modifying your php.ini. 

There are so many extensions are built into the Windows version of PHP. To load more extensions you require .dll files in your system. An extension directive or extra DLL does not require loading these extensions. There are many ways to install extensions, the following is one of the ways to install php extensions on Windows.

Prerequisites: Web server(e.g. Apache, XAMPP).

Verifying the extension is installed or not

To verify the extension is installed or not you have to follow the following step:

Step 1: Create a new file in the root directory with an extension.php like findingexten.php. In this file write the following code:

<?php

// It will return all the configurations of the server

phpinfo();

?>

Step 2: Run this file in any browser and you will see the given extension is installed or not.

Installing PHP Extensions on Windows

To install PHP extension we need to follow the following steps:

Step 1: Click on the Config button then select the php.ini file for your PHP installation, and open it in a text editor. 

Click-on-Config

Step 2: Locate the line that specifies the location of the “extension = ” line. 

Locate-line-extension =

Step 3: Look for the extension you want to install and remove the semicolon preceding that line. For example, if you want to install an IMAP extension, remove the semicolon of the following line and save the file.

;extension = imap 

extension = imap 

Step 4: Go to ‘php’  folder in the C:\xampp

Go-to-php-folder

Step 5: Go to the ext folder and locate the .dll file of the extension you want to install.

Go-to-ext-folder

Copy-php_imap.dll-file-and-paste-in-System32

Step 6: Now copy the .dll file and paste it into the following folder:

C:\Windows\System32 

phpextensionstep6

Step 7: Now restart XAMPP to see the effects.

После установки 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. Например:

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

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

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

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

Замечание:

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

Следующая таблица описывает некоторые доступные расширения и требуемые дополнительные библиотеки dll.

Расширения PHP

Расширение Описание Примечания
php_bz2.dll Функции сжатия bzip2
php_calendar.dll Функции преобразования календарей
php_crack.dll Функции Crack
php_ctype.dll Семейство функций ctype
php_curl.dll Функции библиотеки CURL Требует библиотеки libeay32.dll,
ssleay32.dll (в комплекте дистрибутива PHP)
php_dba.dll DBA: функции абстрактного слоя DataBase (dbm-стиль)
php_dbase.dll Функции dBase
php_dbx.dll Функции dbx
php_exif.dll Функции EXIF Требуется библиотека
php_mbstring.dll. Библиотека
php_exif.dll должна загружаться после
php_mbstring.dll в файле php.ini.
php_fbsql.dll Функции FrontBase
php_fdf.dll FDF: функции формата данных «Forms Data Format» Требуется библиотека fdftk.dll (в комплекте дистрибутива PHP)
php_filepro.dll Функции filePro Доступ только для чтения
php_ftp.dll Функции FTP
php_gd2.dll Библиотека функций обработки изображений GD GD2
php_gettext.dll Функции Gettext В PHP версий <= 4.2.0 требуется библиотека gnu_gettext.dll (в комплекте дистрибутива PHP),
в PHP версий >= 4.2.3 требуется библиотека libintl-1.dll и iconv.dll (в комплекте дистрибутива PHP).
php_hyperwave.dll Функции HyperWave
php_iconv.dll Функции конвертации кодировок ICONV Требуется библиотека iconv-1.3.dll (в комплекте дистрибутива PHP), iconv.dll
php_ifx.dll Функции Informix Требуются библиотеки Informix
php_iisfunc.dll Функции управления IIS
php_imap.dll Функции IMAP POP3 и NNTP
php_ingres.dll Функции Ingres Требуются библиотеки Ingres
php_interbase.dll Функции InterBase Требуется библиотека gds32.dll (в комплекте дистрибутива PHP)
php_ldap.dll Функции LDAP Требует libeay32.dll,
ssleay32.dll (в комплекте дистрибутива PHP)
php_mbstring.dll Функции для работы с многобайтовыми (Multi-Byte) строками
php_mcrypt.dll Функции кодирования Mcrypt Требуется библиотека libmcrypt.dll
php_mhash.dll Функции Mhash Требуется библиотека libmhash.dll (в комплекте дистрибутива PHP)
php_mime_magic.dll Функции Mimetype Требуется файл magic.mime (в комплекте дистрибутива PHP)
php_ming.dll Функции Ming для Flash
php_msql.dll Функции mSQL Требуется библиотека msql.dll (в комплекте дистрибутива PHP)
php_mssql.dll Функции MSSQL Требуется библиотека ntwdblib.dll (в комплекте дистрибутива PHP)
php_mysql.dll Функции MySQL Требуется библиотека libmysql.dll
(в комплекте дистрибутива PHP)
php_mysqli.dll Функции MySQLi Требуется библиотека libmysql.dll
(libmysqli.dll в PHP версий <= 5.0.2) (в комплекте дистрибутива PHP)
php_oci8.dll Функции Oracle 8 Требуются клиентские библиотеки Oracle 8.1+
php_openssl.dll Функции OpenSSL Требуется библиотека libeay32.dll (в комплекте дистрибутива PHP)
php_pdf.dll Функции PDF
php_pgsql.dll Функции PostgreSQL
php_shmop.dll Функции для работы с разделяемой памятью
php_snmp.dll Функции для использования протокола SNMP Только на Windows NT!
php_soap.dll Функции SOAP
php_sockets.dll Функции для работы с сокетами
php_sybase_ct.dll Функции Sybase Требуются клиентские библиотеки Sybase
php_tidy.dll Функции Tidy
php_tokenizer.dll Функции Tokenizer
php_w32api.dll Функции W32api
php_xmlrpc.dll Функции XML-RPC Требуется библиотека iconv.dll (в комплекте дистрибутива PHP)
php_xslt.dll Функции XSLT Требуются библиотеки
sablot.dll, expat.dll,
iconv.dll (в комплекте дистрибутива PHP).
php_yaz.dll Функции YAZ Требуется библиотека yaz.dll (в комплекте дистрибутива PHP)
php_zip.dll Функции для работы с файлами Zip Доступ только для чтения
php_zlib.dll Функции сжатия ZLib

Вернуться к: Установка в системах Windows

Уровень сложностиПростой

Время на прочтение2 мин

Количество просмотров1.4K

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

PHP Foundation был инициирован проект, призванный заменить архаичный PECL. Это было сделано для удобства, при котором расширения были представлены как пакеты Composer, и значительно упрощает размещение новых расширений. Это делает процесс более простым и эффективным, а также обеспечивает лучшую кроссплатформенную согласованность.

Обращаю ваше внимание, что на момент написания данной статьи данный проект все еще находится в стадии разработки, и существует начальный предварительный вариант, который имеет стабильную и доступную версию загрузки в виде PHAR. Для использования PIE вам также понадобится PHP 8.1 или новее, но PIE может установить расширение для любой установленной версии PHP. PHP Foundation приглашает разработчиков опробовать его и оставить отзыв.

Чтобы установить PHP Installer for Extensions (PIE), выполните следующие действия:

1. Загрузите пакет

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

2. Установите

Переместите в , например , pie.pharна ваш компьютер , чтобы вы могли запустить его откуда угодно. Вы можете переименовать его для удобства, например:PATH/usr/local/bin/

mv pie.phar /usr/local/bin/pie

В Windows вы можете переместить его в C:\Program Filesили любой другой каталог в вашем PATH. Однако я рекомендую использовать Composer и его CLI с подсистемой Windows для Linux (WSL) для лучшего опыта.

3. Сделайте его исполняемым

На компьютерах с ОС, отличной от Windows, необходимо изменить разрешения, чтобы сделать файл исполняемым.

chmod +x /usr/local/bin/pie

Вот и все. Вы можете попробовать запустить его pie -vв терминале, чтобы проверить, правильно ли он установлен.

Теперь мы можем легко использовать PIE для установки расширений PHP с помощью pieкоманды.

pie install <vendor>/<package>

Например, предположим, что вы хотите установить xdebugрасширение для выполнения отладки в вашем PHP-приложении. Вы можете запустить:

pie install xdebug/xdebug

Эта команда извлечет xdebugрасширение из Packagist, соберет его и установит в вашу установку PHP. PIE также добавит расширение в ваш php.iniфайл, поэтому вам не придется делать это вручную.

Все расширения, которые можно установить через PIE, можно найти в Packagist .

Примечание для Windows

В настоящее время PIE не поддерживает сборку расширений в Windows. Он полагается на автора расширения, чтобы предоставить предварительно собранный файл DLL для своего расширения, поэтому, вероятно, есть некоторые расширения, которые вы не можете установить в Windows.

PIE — это отличная инициатива по упрощению установки расширений PHP. Мне нравится, как он обрабатывает расширения как пакеты Composer, что упрощает управление ими и их обновление. Я думаю, что это шаг в правильном направлении для модернизации экосистемы PHP и повышения ее удобства для разработчиков.

Введение в установку PECL

» PECL — это репозиторий расширений PHP, которые доступны вам через систему » PEAR. Эта часть руководства предназначена для демонстрации того, как вы можете получить и установить расширения PECL.

Эти инструкции подразумевают, что /your/phpsrcdir/ является путем к каталогу с дистрибутивом исходного кода PHP, а extname — это имя расширения PECL. Поэтому, приведем в соответствие. Эти инструкции также подразумевают знакомство с » командой pear. Информация в руководстве PEAR для команды pear также применима для команды pecl.

Для того, чтобы расширение можно было использовать, оно должно быть собрано, установлено и загружено. Методы, описанные ниже, предоставляют вам различные рекомендации по поводу того, как собрать и установить расширения, но сами они не будут автоматически загружены. Расширения могут быть загружены через добавление директивы extension в файл php.ini, или путем использования функции dl().

В процессе сборки модулей PHP важно, чтобы у вас были правильные версии необходимых утилит (autoconf, automake, libtool и т.д.). Информацию об этих утилитах и их версиях можно посмотреть тут » Anonymous CVS Instructions.

Загрузка расширений PECL

Есть несколько вариантов для загрузки расширений PECL, в том числе:

  • » http://pecl.php.net/Вебсайт PECL содержит информацию о различных расширениях, которые предоставлены PHP Development Team. Информация, доступная на этом вебсайте, включает в себя: лог изменений, новости релизов, требования и другие подобные детали.
  • pecl download extnameРасширения PECL, которые были опубликованы на сайте PECL, доступны для скачивания и установки через » команду pecl. Также, могут быть также указаны особые ревизии.
  • CVSБольшинство расширений PECL, также, находятся в CVS. Веб-интерфейс для просмотра доступен по адресу » http://cvs.php.net/pecl/. Для загрузки напрямую из CVS используется следующая последовательность команд. Стоит отметить, что пользователь cvsread имеет пароль phpfi:
    $ cvs -d:pserver:cvsread@cvs.php.net:/repository login
    $ cvs -d:pserver:cvsread@cvs.php.net:/repository co pecl/extname
  • Загрузка для Windows Пользователи Windows могут найти скомпилированные расширения PECL путем скачивания Collection of PECL modules со страницы » PHP Downloads, либо через » PECL Snapshot, либо расширения DLL на странице » PECL4WIN. Для компиляции PHP под Windows прочитайте соответствующий раздел
  • PECL для пользователей Windows

    Как и в случае DLL расширения PHP, установка проста и заключается в копировании файла DLL расширения PECL в директориюextension_dir и подключением затем его через php.ini. Например, добавьте следующую строку в ваш php.ini:

    extension=php_extname.dll

    После выполнения этих действий, перезапустите web-сервис.

    Компиляция общих расширений с помощью команды pecl

    PECL позволяет легко создавать общие расширения PHP. Используя » команду pecl, выполните следующее:

    Эта команда загрузит исходный код для расширения extname, скомпилирует и установит extname.so в вашу директорию extension_dir. Файл extname.so может быть затем загружен в php.ini

    По умолчанию, команда pecl не будет устанавливать пакеты, отмеченные состоянием alpha или beta. Если нет доступных стабильных версий пакетов, вы можете установить beta версию пакета, используя следующую команду:

    $ pecl install extname-beta

    Также, вы можете установить определенную версию используя такой вариант:

    $ pecl install extname-0.1

    Замечание: После подключения расширения в php.ini необходимо перезапустить web-сервис для того, чтобы изменения вступили в силу.

    Компиляция общих расширений с помощью phpize

    Иногда, использование инсталятора pecl не подходит. Это может быть связано с тем, что вы находитесь за файерволом или из-за того, что расширение, которое вы хотите установить, недоступно в PECL-совместимом пакете (к примеру, расширения из CVS, которые еще не зарелизены). Если вам необходимо собрать такое расширение, вы можете использовать низкоуровневые утилиты для выполнения сборки вручную.

    Команда phpize используется для подготовки окружения для расширения PHP. В следующем примере директория, где находятся исходные коды расширения, называется extname:

    $ cd extname
    $ phpize
    $ ./configure
    $ make
    # make install

    В случае успешной установки будет создан файл extname.so и помещен в PHP extensions directory. Вам будет необходимо добавить строку extension=extname.so в php.ini перед тем, как вы станете использовать это расширение.

    Если в системе отсутствует phpize, но существует возможность установки заранее скомпилированных пакетов (типа RPM), убедитесь, что установлена соответствующая devel версия пакета PHP, так как они часто содержат команду phpize с подходящими файлами заголовоков для сборки PHP и его расширений.

    Используйте phpize —help для просмотра дополнительной информации.

    Компиляция расширений PECL статически в PHP

    Возможно, вы захотите собрать расширение PECL статично в ваш бинарйный файл PHP. Для этого необходимо поместить код расширения в директорию php-src/ext/ и вызвать перегенерацию конфигурационных скриптов через систему сборки PHP.

    $ cd /your/phpsrcdir/ext
    $ pecl download extname
    $ gzip -d &lt; extname.tgz | tar -xvf -
    $ mv extname-x.x.x extname

    В результате будет создана следующая директория:

        /your/phpsrcdir/ext/extname

    После этого, выполните заново сборку конфигурационного скрипта PHP и затем соберите PHP как обычно:

    $ cd /your/phpsrcdir
    $ rm configure
    $ ./buildconf --force
    $ ./configure --help
    $ ./configure --with-extname --enable-someotherext --with-foobar
    $ make
    $ make install

    Замечание: Для запуска скрипта ‘buildconf’ вам необходимы autoconf версии 2.13 и automake версии 1.4+ (более новые версии autoconf могут работать, но это не поддерживается).

    Одна из двух опций —enable-extname или —with-extname используется в зависимости от расширения. Обычно, в случае, когда расширение не требует подключения внешних библиотек, используется —enable. Для того, чтобы убедиться в этом, выполните следующую команду после buildconf:

    $ ./configure --help | grep extname

    Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
  • Cool edit windows 10
  • Java компилятор для windows
  • Как максимально использовать оперативную память windows 10
  • Windows 11 black wallpapers
  • Не отображается панель уведомлений windows 10