×


Error memcached support requires libmemcached - Fix it Now ?

Sometimes, while trying to install memcached we may end up with the error Unable to install memcached module to Plesk PHP: memcached support requires libmemcached. This error is common for both Plesk and cPanel. This error generally happens when the libmemcached-devel package is missing.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related memcached queries.


Causes and Fixes for "Error memcached support requires libmemcached" ?

In PLesk.

The error typically looks like the following one in Plesk servers:

/opt/plesk/php/7.1/bin/pecl install memcached
..
checking for memcached msgpack support... disabled
checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix where libmemcached headers and library are located
ERROR: `/root/tmp/memcached/configure --with-php-config=/opt/plesk/php/7.1/bin/php-config --with-libmemcached-dir=no' failed

What causes this error in plesk?

It happens when the libmemcached-devel package is missing.

To fix this error:

1. First log in to the server via SSH.

2. Then use the following command to install the package depending upon the operating system(OS):

RHEL/CentOS/CloudLinux:

# yum install libmemcached-devel

Ubuntu/Debian:

# apt-get install libmemcached-dev

In cPanel.

If Installing memcached from WHM » Software » Module Installers was not successful it triggers the error. 

To fix this error in cPanel, do the following:

1.Run the following commands:

$ wget https://github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz --no-check-certificate
$ tar -xvf libevent-2.0.17-stable.tar.gz 
$ cd libevent-2.0.17-stable
$ ./configure
$ make && make install
$ cd ~
$ wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
$ tar -xzf memcached-1.4.13.tar.gz
$ cd memcached-1.4.13
$ ./configure
$ make && make install

2. After installing these components we have to create the following file:

For 32-bit machine

$ echo "/usr/local/lib/" > /etc/ld.so.conf.d/libevent-i386.conf

For 64-bit machine

$ echo "/usr/local/lib/" > /etc/ld.so.conf.d/libevent-x86_64.conf

3. Then Run the following commands:

$ ldconfig
memcached -d -u nobody -m 1024 127.0.0.1 -p 11211

4. Next, we can install libsasl2 using the following command:

$ yum install cyrus-sasl-devel

5. Then we will install libmemcached using the following command:

$ cd ~
$ wget http://launchpad.net/libmemcached/1.0/1.0.4/+download/libmemcached-1.0.4.tar.gz
$ tar -zxvf libmemcached-1.0.4.tar.gz
$ cd libmemcached-1.0.4
$ ./configure
$ make && make install
$ pecl install memcached

6. Now we can run the following to check if memcached.so is installed into /usr/local/lib/php.ini file. We can add it if is it not.

$ grep -q "memcached.so" /usr/local/lib/php.ini || echo 'extension=memcached.so' >> /usr/local/lib/php.ini

7. We can check the extension directory that we are using, with the following command:

$ for i in `grep ^extension_dir /usr/local/lib/php.ini | awk {'print $3'} | cut -d\" -f2` ;do ls -lah $i/memcache* ;done

8. Also, to preserve the memcached.so module on EasyApache recompiles we have to do the following:

$ for i in `grep ^extension_dir /usr/local/lib/php.ini | awk {'print $3'} | cut -d\" -f2` ;do cp $i/memcached.so /root ;done$ for i in `grep ^extension_dir /usr/local/lib/php.ini | awk {'print $3'} | cut -d\" -f2` ;do echo -e '#!/bin/bash\ncp /root/memcached.so' "$i\ngrep -q 'memcached.so' /usr/local/lib/php.ini || echo 'extension=memcached.so' >> /usr/local/lib/php.ini\n/etc/init.d/httpd restart" > /usr/local/cpanel/scripts/posteasyapache ;done
$ chmod +x /usr/local/cpanel/scripts/posteasyapache

This will create a posteasyapache script that will ensure memcached.so is copied from /root/memcached.so back into the php extension directory.


9. Finally using the following commands we can ensure that the installation was done properly and is complete.

$ php -i | grep -i memcached
memcached
memcached support => enabled
libmemcached version => 1.0.4
Registered save handlers => files user sqlite memcached
 

[Still facing memcached errors? We can help you. ]


Conclusion

This article covers methods to fix "error memcached support requires libmemcached" for our customers in both plesk and cPanel. 

To fix this error, install the libmemcached-devel package:

$ apt-get install libmemcached-dev