Раздел вопрос-ответ Ошибка при установке PHP PECL Memcached

При установке Memcached через pecl:

yes yes | pecl install memcached

Возникает ошибка при configure:

$ yes yes | pecl install memcached
downloading memcached-2.2.0.tgz ...
Starting to download memcached-2.2.0.tgz (70,449 bytes)
.................done: 70,449 bytes
15 source files, building
running: phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
libmemcached directory [no] : building in /tmp/pear/temp/pear-build-rofV2l9MM/memcached-2.2.0
running: /tmp/pear/temp/memcached/configure --with-php-config=/home/rof/.phpenv/versions/5.4.45/bin/php-config --with-libmemcached-dir
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for PHP prefix... /home/rof/.phpenv/versions/5.4.45
checking for PHP includes... -I/home/rof/.phpenv/versions/5.4.45/include/php -I/home/rof/.phpenv/versions/5.4.45/include/php/main -I/home/rof/.phpenv/versions/5.4.45/include/php/TSRM -I/home/rof/.phpenv/versions/5.4.45/include/php/Zend -I/home/rof/.phpenv/versions/5.4.45/include/php/ext -I/home/rof/.phpenv/versions/5.4.45/include/php/ext/date/lib
checking for PHP extension directory... /home/rof/.phpenv/versions/5.4.45/lib/php/extensions/no-debug-non-zts-20100525
checking for PHP installed headers prefix... /home/rof/.phpenv/versions/5.4.45/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... re2c
checking for re2c version... 0.13.5 (ok)
checking for gawk... gawk
checking whether to enable memcached support... yes, shared
checking for libmemcached... yes, shared
checking whether to enable memcached session handler support... yes
checking whether to enable memcached igbinary serializer support... no
checking whether to enable memcached json serializer support... no
checking whether to enable memcached msgpack serializer support... no
checking whether to enable memcached sasl support... yes
checking whether to enable memcached protocol support... no
checking for ZLIB... yes, shared
checking for pkg-config... /usr/bin/pkg-config
checking for zlib location... /usr
checking for session includes... /home/rof/.phpenv/versions/5.4.45/include/php
checking for memcached session support... enabled
checking for memcached igbinary support... disabled
checking for memcached msgpack support... disabled
checking for libmemcached location... found version 1.0.8, under /usr
checking whether to enable sasl support... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sasl/sasl.h usability... yes
checking sasl/sasl.h presence... yes
checking for sasl/sasl.h... yes
checking whether libmemcached supports sasl... no
configure: error: no, libmemcached sasl support is not enabled. Run configure with --disable-memcached-sasl to disable this check
ERROR: `/tmp/pear/temp/memcached/configure --with-php-config=/home/rof/.phpenv/versions/5.4.45/bin/php-config --with-libmemcached-dir' failed

И Memcached не ставится. Как можно решить эту проблему?

Пробую на codeship.

share

1 ответ

Проблему с установкой Memcached на codeship не решил.

Но билд пофиксил следующим образом:

В Setup commands устанавливаем PECL Memcache (он кстати ставится без проблем):

yes yes | pecl install memcache

Либо так:

pecl install -f memcache

А чуть ниже добавил замену в php-коде вызова new Memcached на new Memcache.

sed -i 's/new Memcached()/new Memcache()/g' framework/lib/Storage/Adapter/Memcache.php 

В тех. поддержку codeship обращался, на что получил ответ, что в документации отражена только установка Memcache. А установка Memcached требует дополнительных зависимостей, которых изначально нет. Точнее эти зависимости есть, но находятся в других папках, отличных от папки с билдом.

А если всё же нужен именно Memcached, то нужно смотреть в сторону codeship Docker - платформа позволяет полностью кастомизировать VM-билд.

Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться