phpday 2025 - Call For Papers

Компиляция разделяемых модулей командой phpize

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

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

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

Успешная установка создаст в директории PHP-модулей файл extname.so. Модуль будет доступен для работы после корректировки файла php.ini — в него потребуется добавить строку extension=extname.so.

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

Для дополнительной информации выполните команду phpize --help.

Добавить

Примечания пользователей 2 notes

up
70
Brian
16 years ago
If you have multiple PHP versions installed, you may be able to specify for which installation you'd like to build by using the --with-php-config option during configuration.

--with-php-config=[Insert path to proper php-config here]

For example (my case):
./configure --with-php-config=/usr/local/php5/bin/php-config5
up
7
admin at eexit dot net
12 years ago
When compiling an extension for a stack which is 64 bits (for example) and your compiler is configured to compile in 32 bits, you can manually compile your extensions using C flags before your configure.

Example: my system compiler is 32 bits and my stack is 64 bits. To compile my xdebug:

# phpize
# CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure --enable-xdebug
# gmake
# file modules/xdebug.so
modules/xdebug.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available
To Top