В 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:
Помните, что настройки ваших расширений должны совпадать со всеми настройками используемого вами бинарного файла PHP. Следующий PHP-скрипт выведет вам все настройки PHP:
Пример #1 Вызов phpinfo()
<?php
phpinfo();
?>
Или запустите из командной строки:
drive:\\path\to\php\executable\php.exe -i
Наиболее распространенным способом загрузки PHP-расширения является его включение в конфигурационном файле php.ini. Обратите внимание, что большинство расширений уже прописаны в вашем php.ini и для их активации вам просто нужно удалить точку с запятой.
Обратите внимание, что в PHP 7.2.0 и выше для указания расширения можно использовать не имя файла библиотеки, а название самого расширения. Данный подход рекомендуется для использования, так как он более простой и платформонезависимый. Однако вы все еще можете прямо указывать имя файла расширения.
;extension=php_extname.dll
extension=php_extname.dll
; В PHP 7.2 и выше лучше делать так: extension=extname zend_extension=another_extension
Однако, некоторые веб-серверы создают путаницу, т.к. они не используют php.ini, расположенный в дистрибутиве PHP, а используют свой собственный. Узнать, где находится используемый сервером php.ini, можно посмотрев на выводимый путь в phpinfo():
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\Program Files\PHP\5.2\php.ini
После активации расширения сохраните php.ini, перезагрузите веб-сервер и снова проверьте phpinfo(), в нем должен появиться отдельный раздел с новым расширением.
Если расширение не появилось в выводе phpinfo(), проверьте лог-файлы на наличие сообщений об ошибках.
Если вы используете PHP в командной строке (CLI), ошибки загрузки расширения будут доступны сразу же на экране.
Если вы используете PHP на веб-сервере, расположение и формат лог-файлов сильно зависит от используемого вами веб-сервера. Пожалуйста, обратитесь к документации вашего веб-сервера, т.к. в данном случае эта ситуация не управляется самим PHP.
Частой проблемой является расположение DLL-файлов, значение " extension_dir" в php.ini, а также несовпадение настроек компиляции.
Если проблемой является несовпадение настроек компиляции, то возможно, вы скачали не тот DLL-файл. Попробуйте снова скачать расширение, на этот раз с правильными настройками. Еще раз, информация функции phpinfo() сильно помогает в этом случае.