Компиляция разделяемых модулей командой phpize
Иногда компиляция модулей через установщик pecl
невозможна.
Это связано с брандмауэром или с недоступностью устанавливаемого модуля
в качестве PECL-совместимого пакета
наподобие модулей из системы управления версиями git, которые ещё не выпустили.
Такой модуль собирают вручную через низкоуровневые утилиты сборки.
Команду phpize выполняют для подготовки окружения сборки
PHP-модуля. В следующем примере исходные коды модуля лежат
в директории с названием extname:
$ cd extname
$ phpize
$ ./configure
$ make
# make install
Успешная установка создаст в директории PHP-модулей
файл extname.so.
Модуль станет доступен для работы после корректировки
файла php.ini, в который потребуется добавить
строку extension=extname.so
.
Потребуется установить версию PHP для разработки, которая соответствует текущей установке PHP,
если в системе недоступна команда phpize, но доступна работа
с предварительно скомпилированными пакетами наподобие RPM. Версия для разработки часто
включает команду phpize с правильными файлами заголовков
для сборки интерпретатора PHP и PHP-модулей.
Дополнительную информацию о работе утилиты выводит команда phpize --help.
Brian ¶17 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
admin at eexit dot net ¶13 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.somodules/xdebug.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available