ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ раздСляСмых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ 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.

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 2 notes

up
72
Brian ΒΆ
18 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
8
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.so
modules/xdebug.so:      ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available