Установка расширений 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.
- измените опцию extension_dir так, чтобы она указывала на директорию, в которой расположены расширения или в которую вы поместили файлы php_*.dll . Например:
extension_dir = C:\php\extensions
// измените следующую строку с . ;extension=php_bz2.dll // . на extension=php_bz2.dll
Замечание: Если вы запустили PHP в качестве модуля сервера, не забудьте перезагрузить веб-сервер для применения ваших изменений в файле php.ini .
Следующая таблица описывает некоторые доступные расширения и требуемые дополнительные библиотеки dll.
Расширение | Описание | Примечания |
---|---|---|
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.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 версий |
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 | — |
Установка PHP расширений на Linux
Дополнительно расскажем о том, как подключить расширения в консоли.
Установка расширений через панель ISPmanager
Для начала нужно определить, на какой версии работает наш сайт. Для этого переходим в раздел Домены — WWW-домены , выбираем нужный домен и смотрим последний столбец Версия PHP :
После этого переходим в раздел Настройки web-сервера — PHP , выбираем нужную версию php, расширения:
Далее воспользуемся поиском в верхнем правом углу — вводим туда название расширения. Если оно найдено, выбираем его. По необходимости устанавливаем и включаем:
Коротко о pecl
Прежде чем перейти к установке расширений с помощью пакетных менеджеров и альтернативного репозитория модулей, пару слов скажем о том, с какими ситуациями вы можете столкнуться во время работы с pecl. Ниже будут описаны некоторые из них:
Пример 1. Представим, что у нас две версии php:
Нативная (native) — /usr/bin/php
Альтернативная (alt) — /opt/php73/bin/php — альтернативная версия php 7.3 в панели ISPmanager.
Чтобы установить расширения php, для нативной и альтернативной версии необходимо использовать разные команды.
pecl install Название_расширения
Для альтернативной, php 7.3, так:
/opt/php73/bin/pecl install Название_расширения
Поэтому важно помнить — необходимо указывать полный путь к бинарному файлу pecl. Ниже будут указаны команды установки, без полного пути, так как они могут отличаться, вам нужно иметь это ввиду.
Пример 2. Если вы используете не самую свежую версию php, то во время установки расширения можете получить сообщение о ее несоответствии требованиям — по умолчанию выбираются расширения последних версий, которые часто требуют свежих версий php. Пример уведомления:
requires PHP (version >= 7.0.0, versionВ уведомлении указано, что версия php должна быть не ниже 7.0.0 и не выше 7.1.0, а мы пытаемся установить расширение на версию 5.6.40.
Чтобы понять, какая версия расширения нужна для установки на имеющуюся версию php (в данном случае 5.6.40), обратимся за помощью на официальный сайт. Ищем нужное расширение, переходим на его страницу:
Переходим в список изменений:
Находим в списке изменений, что последней версией расширения, поддерживающей php ниже 7 версии, является redis 2.2.8:
Из этого следует, что для установки нам нужно указать redis-2.2.8, например так (не забудьте поставить знак - между названием расширения и его версией):
/opt/php56/bin/pecl install redis-2.2.8После установки любого из расширений нужно перезапускать apache2/httpd или php-fpm. Также не забудьте проверить, подключилось ли расширение:
/opt/php56/bin/php -m | grep название_расширенияО том, как установить популярное расширение ioncube, читайте в нашей инструкции
Установка расширений через apt, yum и pecl
Ниже описаны установки расширений для всех версий php — от установки зависимостей до подключения. Описание разделено на версию ОС и версию php: нативную (native) или альтернативную (alt). Будьте внимательны при установке расширений для альтернативной версии через pecl.
mcrypt
Во время установки на вопрос “libmcrypt prefix? [autodetect]” жмём Enter.
yum install libmcrypt-devel php-mcryptssh2
apt install libssh2-1-dev php-ssh2redis
Во время установки могут быть заданы вопросы:
enable igbinary serializer support? [no] : «Включить поддержку сериализации через igbinary?»
enable lzf compression support? [no] : «Включить поддержку сжатия через алгоритм lzf?»
enable zstd compression support? [no] : «Включить поддержку сжатия через алгоритм zstd?»
yes - да, no - нетДля выбора yes, должны быть установлены соответствующие модули.
lzf
Во время установки будет задан вопрос:
Sacrifice speed in favour of compression ratio? [no] : «Жертвовать скоростью в пользу степени сжатия?»
yes - да, no - нетПри положительном ответе, будет высокая степень сжатия, но низкая скорость загрузки.
igbinary
Установить extension php extension
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: