Установка php расширений при использовании phpfarm на сервере
Ранее уже рассматривал установку нескольких версий php на одном сервере, однако при такой установке меняется процедура установки расширений для установленных версий php. Для разных версий php может быть разная процедура сборки и установки расширений, поэтому предлагаю рассмотреть их способ установки.
Скачиваем расширение
Рассмотрим установку пакета memcached. Мы переходим в директорию с установленным phpfarm, через pear скачиваем пакет memcached, распаковываем архив:
1 2 3 4 5 6 7 8 | $ cd /opt/phpfarm/ $ pear download pecl/memcached downloading memcached-2.2.0.tar ... Starting to download memcached-2.2.0.tar (Unknown size) ....................................................................................done: 410,624 bytes File /opt/phpfarm/memcached-2.2.0.tar downloaded $ tar xvf memcached-2.2.0.tar ... |
Устанавливаем расширение
Необходимо помнить, что нужно использовать phpize и php-config той версии php, для которой ставим расширение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ cd memcached-2.2.0 $ /opt/phpfarm/inst/bin/phpize-5.4.36 Configuring for: PHP Api Version: 20100412 Zend Module Api No: 20100525 Zend Extension Api No: 220100525 $ ./configure --with-php-config=/opt/phpfarm/inst/bin/php-config-5.4.36 checking for grep that handles long lines and -e... /usr/bin/grep .... creating libtool appending configuration tag "CXX" to libtool configure: creating ./config.status $ make .... $ make install Installing shared extensions: /opt/phpfarm/inst/php-5.4.36/lib/php/extensions/debug-non-zts-20100525/ |
Дальше остается дело за малым — подключить расширение в php,ini. Для этого узнаем где лежит конфигурационный файл нужной версии php командой
1 2 3 4 5 | $ /opt/phpfarm/inst/bin/php-5.4.36 --ini Configuration File (php.ini) Path: /opt/phpfarm/inst/php-5.4.36/lib Loaded Configuration File: /opt/phpfarm/inst/php-5.4.36/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) |
И в месте, где перечисляются другие расширения добавляем
1 | extension=memcached.so |
Обычно этого достаточно, если правильно указана директория в настройке extension_dir.
И да — не забудьте поставить сам memcached, т.к. мы установили лишь расширение, которое позволяет php общаться с внешним ПО.