Applicable to:
- Plesk for Linux
Question
How to install/uninstall memcached PHP extension for Plesk PHP handlers?
Answer
Note: Installation of additional PHP extension is not covered by Plesk support.
-
Connect to a Plesk server via SSH.
-
Prepare the environment:
-
on CentOS/RHEL-based distributions:
# wget -q -O - http://www.atomicorp.com/installers/atomic | sh && yum install make memcached gcc libmemcached-devel zlib-devel plesk-php*-devel
-
on Debian/Ubuntu-based distributions:
# apt install memcached autoconf automake gcc libmemcached-dev libhashkit-dev pkg-config plesk-php*-dev zlib1g-dev make
-
- Install the memcached PHP extension:
Note: In the example below, we are installing memcached for PHP 7.4. For other PHP versions, replace 7.4 in the commands below with a required PHP version.
# /opt/plesk/php/7.4/bin/pecl install memcached
During the installation, additional parameters will be requested. Hit "Enter" for each option to install memcached with default options or specify required values:
CONFIG_TEXT: libmemcached directory [no] :
zlib directory [no] :
use system fastlz [no] :
enable igbinary serializer [no] :
enable msgpack serializer [no] :
enable json serializer [no] :
enable server protocol [no] :
enable sasl [yes] :
enable sessions [yes] : -
Register extension in PHP configuration file:
# echo "extension=memcached.so" > /opt/plesk/php/7.4/etc/php.d/memcached.ini
-
Update PHP handlers information:
# plesk bin php_handler --reread
-
Restart the PHP-FPM service:
# service plesk-php74-fpm restart
-
Restart the Apache service:
-
on CentOS/RHEL-based distributions:
# service httpd restart
-
on Debian/Ubuntu-based distributions:
# service apache2 restart
-
-
Verify that the memcached module has been installed:
# /opt/plesk/php/7.4/bin/php -m | grep memcached
memcached
Note: In the example below, we are uninstalling PHP 7.4. For other PHP versions, replace 7.4 in the commands below with a required PHP version.
- Connect to a Plesk server via SSH.
-
Remove the memcached configuration file:
# rm /opt/plesk/php/7.4/etc/php.d/memcached.ini
-
Uninstall the extension:
# /opt/plesk/php/7.4/bin/pecl uninstall memcached
-
Update PHP handlers information:
# plesk bin php_handler --reread
-
Restart the PHP-FPM service:
# service plesk-php74-fpm restart
-
Restart the Apache service:
-
on CentOS/RHEL-based distributions:
# service httpd restart
-
on Debian/Ubuntu-based distributions:
# service apache2 restart
-
Comments
61 comments
Good morning,
Is it possible to install memcached for the php 7.0.22 OS vendor?
This article is fine, but it does not say how to install the module for your PHP 7.0.22 and I would need it.
I have reviewed information and it is possible to compile it manually but I do not know if this will cause problems with your PLESK system.
Can you confirm these points? Thank you very much.
@Gabriel De León, Hi!
The article has been modified. Please check the instructions.
Hi Bulat, thank you very much!
tried to follow the instruction for PHP 7.1 with Plesk 17.5.3 Update #38 on Ubuntu 14.04.5 but it stops with
configure: error: no, libmemcached sasl support is not enabled. Run configure with --disable-memcached-sasl to disable this check.
Tried with this flag but doesn't help. Any ideas?
@Florian Thiel
Hello!
The libmemcached package for Ubuntu 14.04 does not support SASL authentication.
Which error is displayed with the option -disable-memcached-sasl?
@Ivan Postnikov
the same error, it seems like the option is not detected. Tried it with -disable-memcached-sasl and --disable-memcached-sasl
@Florian Thiel
Hello!
The issue requires mo detailed investigation, consider contacting Plesk Support.
Also, consider contacting Ubuntu Support, as they are professionals in their product.
Have installed it (on php 5.4 for centos) but can't start the server. Can't find the folder where it's installed. Where is it?
@Peter Westerlund
The article is about installing php extension for memcached, it is supposed that memcached server already installed. I think you just need to install memcached daemon.
# yum install memcached
or
# apt-get install memcached
You may also look at the blog post:
https://www.plesk.com/blog/product-technology/reduce-server-load-with-memcached/
After regular updates of php 5.6 I noticed that memcached stop working. I got error:
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/plesk/php/5.6/lib64/php/modules/memcache.so' - /opt/plesk/php/5.6/lib64/php/modules/memcache.so: cannot open shared object file: No such file or directory in Unknown on line 0
It looks like update of package remove my memcached :)
Has anyone experienced similarly problem?
@Miha, there is a possibility that package update removed the whole PHP folder taking the memcached. Please vote for adding it to Plesk packages https://plesk.uservoice.com/forums/184549-feature-suggestions/suggestions/6594919-memcached-support
Package "plesk-php70-dev" or "plesk-php71-dev" or "plesk-php72-dev" not available for Debian 9 "stretch". Any chance on adding them?
@Kevin, make sure you do not have custom repositories on the server because the issue was not reproduced on a test server:
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.4 (stretch)
Release: 9.4
Codename: stretch
# apt-get install plesk-php71-dev
...
# dpkg -l | grep plesk-php71-dev
ii plesk-php71-dev 7.1.16-debian9.0.18033013
Hello,
Thanks for this tutorial.
On debian 9, how to configure Memcached parameters (like memory) ?
I found nothing in /etc
Hello Pascal,
Questions about configuration of Memcached is best to address to the developers/support of the package: https://memcached.org/
I have followed the instructions perfectly, but memcached does not install.
I get the following error:
sh: 1: phpize: not found ERROR: `phpize' failed
I am using Debian 8.11 with Plesk 17.8.11
Any ideas?
Hi
Centos6 /php5.6 server- was trying to install memcached extension to be able to run WP caching
Was following the above instructions until i got to # /opt/plesk/php/5.6/bin/pecl install memcached-2.2.0
which yielded -bash: /opt/plesk/php/5.6/bin/pecl: No such file or directory
only pecl i could find was /usr/share/psa-pear/pear/pecl
I could yum install php-pear.. ? which would then give me /usr/bin/pecl as well..
Either way i am nervous about conflicting versions and breaking plesk and unsure how to proceed..
Suggestions?
Hi @Graham, it seems that you have skipped the preparation step to install required packets:
# apt install autoconf automake gcc libmemcached-dev libhashkit-dev pkg-config plesk-php56-dev plesk-php70-dev zlib1g-dev
Many thanks. Whoops...! That has now solved it.
Hi @Graham, glad to hear that this helped =)
Hello @William,
As I have checked on the test server with CentOS 6, when PHP 5.6 is installed, this file exists on the file system.
Please, make sure that PHP 5.6 is installed in Plesk. If it is installed, try reinstalling it, it should resolve the issue.
Hello i have a Problem.
I followed the tutorial but i can't finish it.
When i run the command: /opt/plesk/php/7.0/bin/pecl install memcached i got the following Error: -bash: /opt/plesk/php/7.0/bin/pecl: No such file or directory
I showed in this Directory and there is no pecl file ?
Why dis happend and how can i fix it ?
Thanks in advance!
Hi @Norbert, it seems that you have skipped the preparation step to install required packets:
# apt install autoconf automake gcc libmemcached-dev libhashkit-dev pkg-config plesk-php56-dev plesk-php70-dev zlib1g-dev
On Plesk Onyx Web Pro Edition 17.5.3 + CentOS 7 I got this error:
/opt/plesk/php/7.1/bin/pecl install memcached
shtool at '/tmp/memcached/build/shtool' does not exist or is not executable.
Make sure that the file exists and is executable and then rerun this script.
ERROR: `phpize' failed
Was solved by doing this first:
mount -o remount,exec /tmp
After that it installed properly with:
/opt/plesk/php/7.1/bin/pecl install memcached
See: https://support.plesk.com/hc/en-us/articles/115001406994-Error-while-using-pecl-install-shtool-at-tmp-does-not-exist-or-is-not-executable
Hello @Remy,
Glad to hear that the solution helped!
Hello @Lobbe Maxime
Thank you for bringing our attention to this.
The article was outdated - there was no plesk-php73-devel in the preparation stage for RHEL-based OS.
I have updated the article.
On Plesk 17.8.11 Centos 6.10 I can't install memcached for php 7.3
root@XXXXXXX [/etc/]# /opt/plesk/php/7.3/bin/pecl install memcached
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
pecl/memcached can optionally use PHP extension "igbinary" (version >= 2.0)
pecl/memcached can optionally use PHP extension "msgpack" (version >= 2.0)
downloading memcached-3.1.3.tgz ...
Starting to download memcached-3.1.3.tgz (82,673 bytes)
....................done: 82,673 bytes
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in PEAR/PackageFile/v2/Validator.php on line 1933
PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /opt/plesk/php/7.3/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
15 source files, building
running: phpize
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
configure.ac:3: error: Autoconf version 2.68 or higher is required
configure.ac:3: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
ERROR: `phpize' failed
Current autoconf version:
root@65dl-plmh[/etc]# autoconf --version
autoconf (GNU Autoconf) 2.63
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later
<http://gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David J. MacKenzie and Akim Demaille.
I've tried to install autoconf 2.69 with this:
root@XXXXXXX[/etc]# curl -L -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar zxf autoconf-2.69.tar.gz
cd autoconf-2.69
yum install -y openssl-devel
./configure
make && make install
But Plesk will only read 2.63. Is there a way to get Plesk to recognize the new installation?
Hi @Enzonius,
I was able to solve it by creating a symlink /usr/bin/autoconf -> /usr/bin/autoconf268 like this:
# mv /usr/bin/autoconf{,.bkp}
# ln -s /usr/bin/autoconf268 /usr/bin/autoconf
Then I was able to perform the installation with `/opt/plesk/php/7.3/bin/pecl install memcached`
All these instructions don't work on Ubuntu 18.04.2 LTS with Plesk Onyx 17.8.11 Update #48. I am running nginx as a full front-line web server with FPM, not as a proxy. PHP version 7.2.15 supplied by vendor. The phpinfo does not show memcached support. I verified that memcached is working. It is memcached version 1.5.6.
I did two methods and they both failed!!! I uninstalled everything in between the two methods. I am stuck and don't know what to do.
METHOD 1:
# apt autoremove
# apt install memcached
# apt install autoconf automake gcc libmemcached-dev libhashkit-dev pkg-config plesk-php72-dev zlib1g-dev libsasl2-dev build-essential php7.2-dev
# /opt/plesk/php/7.2/bin/pecl install memcached
# echo "extension=memcached.so" > /opt/plesk/php/7.2/etc/php.d/memcached.ini
# plesk bin php_handler --reread
# /etc/init.d/php7.2-fpm restart && /etc/init.d/apache2 restart && /etc/init.d/nginx restart
METHOD 2:
# apt autoremove
# apt install memcached
# apt install autoconf automake gcc libmemcached-dev libhashkit-dev pkg-config plesk-php72-dev zlib1g-dev libsasl2-dev build-essential php7.2-dev
[Edit pecl file]
# nano /usr/share/psa-pear/pear/pecl
---
Removed -n flag from the last line of /usr/share/psa-pear/pear/pecl utility. It is now:
exec $PHP -C -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d safe_mode=0 -d register_argc_argv="On" $INCDIR/peclcmd.php "$@"
---
# /opt/plesk/php/7.2/bin/pecl install memcached
# echo "extension=memcached.so" > /etc/php/7.2/cli/conf.d/20-memcached.ini
# plesk bin php_handler --reread
# /etc/init.d/php7.2-fpm restart && /etc/init.d/apache2 restart && /etc/init.d/nginx restart
Please sign in to leave a comment.