Компіляція PECL через команду phpize

Інколи використання встановлювача pecl не підходить через заборону фаєрвола, або ж через те, що розширення, яке ви хочете встановити, недоступне у вигляді пакета PECL, наприклад, розширення з SVN, що ще не має релізу. Якщо вам потрібно зібрати таке розширення, ви можете це зробити вручну за допомогою інструмента для низькорівневої побудови.

Команда phpize використовується для підготовки оточення збірки розширення PHP. В наступному прикладі, сирці для розширення знаходяться в директорії з назвою extname:

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

В разі успішного встановлення буде створено файл extname.so та покладено в директорію розширень PHP. Вам потрібно додати рядок extension=extname.so у файл php.ini, перед тим, як ви зможете використовувати розширення.

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

Виконайте команду phpize --help, щоб відобразити додаткову інформацію для використання.

add a note

User Contributed Notes 3 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
9
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
up
-4
dmytton at php dot net
18 years ago
In some situations (e.g. on a cPanel server), the built extension will not be placed into the correct extensions directory by the make install process. Use your phpinfo() output to determine what the correct extension_dir path is and move the generated .so file into that directory. The extension=extname.so line in php.ini will then find the extension file correctly.
To Top