-
23
Aug
In this how to i will describe how to install memcached on your server with PHP Extension. memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. My server is running CentOS 5.3 with CPanel.
1) Install memcached.
Enable rpmforge respository to install latest memcached rpm using yum.
For i386 / i686
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
For x86_64
rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
Use yum to install memcached
yum -y install memcached
As soon as memcached installation completed, edit options for memcached in /etc/sysconfig/memcached to meet your need.
vi /etc/sysconfig/memcached
PORT=”11211″ #define on which port to urn
USER=”nobody” #same as apache user
MAXCONN=”1024″ #maximum number of connections allowed
CACHESIZE=”64″ #memory used for caching
OPTIONS=”" #use for any custom options
Save the file. All options can be seen by using following command
memcached -h
Start memcached
/etc/init.d/memcached start
Starting Distributed memory caching (memcached): [ OK ]
to check the running status of memcached
/etc/init.d/memcached status
memcached (pid 6475) is running…
and
netstat -anp | grep 11211
tcp 0 0 :::11211 :::* LISTEN 6475/memcached
udp 0 0 0.0.0.0:11211 0.0.0.0:* 6475/memcached
2) Install PHP Extension.
Download and install latest stable memcache version from PECL.
cd /usr/src
wget http://pecl.php.net/get/memcache-2.2.5.tgz
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure
make
make install
memcache.so will be install in php modules directory, now enable memcache.so extension in php.ini
To find out your php.ini location, execute following command
php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => /usr/local/lib/php.ini
vi /usr/local/lib/php.ini
extension = “memcache.so”
save the file and restart httpd server.
/etc/init.d/httpd restart
To check is memcache extension loaded in php, execute following command.
php -i | grep memcache
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user sqlite memcache
PWD => /usr/src/memcache-2.2.5
_SERVER["PWD"] => /usr/src/memcache-2.2.5
_ENV["PWD"] => /usr/src/memcache-2.2.5
This information can also be seen using phpinfo().
If you have question please comment.
- Published by Sohail Riaz in: Linux
- If you like this blog please take a second from your precious time and subscribe to my rss feed!











21 Responses to “How To Install memcached with memcache PHP Extension on CentOS 5.x”
Very nice tutorial. You can also check some more details in the link given below.
http://howtosetup.in/component/content/article/11-how-to-setup-memcached-for-php-in-the-server.html
I have done all but it doen’t work, I am running 5.3.2, I had to recompile php to support libcurl, now I broken memcached and I am stuck with it.
@Islam: Which Linux Version you are using. You said it doesn’t work and in mean time you said when you compile php with libcurl it broke memcached?
————
Regards,
@Souhail: it’s a centos, kernel 2.6.18 ..
there is no relationship between libcurl and memcached, the only thing is that after I recompiled PHP, libcurl worked, and memcached not, I tried many times with too versions of the package and nothing! PHP is version 5.3.2
@Islam: I knew there is no relationship between libcurl and memcached. All you have to do is recompile PHP and then reinstall memcached using the source because it uses phpize to determine the PHP version, so you need to reinstall memcached everytime you recompile PHP.
It will be good if you posted any error which you facing while installing memcached
——————–
Thank you Sohail, I got it working now.
I was phpizing against the wrong version of php, .. another thing is that extension = “memcache.so” doesn’t work with the ” ” , maybe you should fix that in the tutorial.
thank you very much for your help.
This was right on the money. Thanks for posting it.
Thanks. It worked for me
The check step could be done before starting apache.
And if you are using drupal, dont forget to set:
memcache.hash_strategy = “consistent”
for drupal memcache module.
Had these errors when ./configure
checking for the location of ZLIB… no
checking for the location of zlib… configure: error: memcache support requires ZLIB. Use –with-zlib-dir= to specify prefix where ZLIB include and library are located
did this :
./configure –with-zlib-dir=/usr/include
worked fine .
when i typed make …
/usr/src/memcache-2.2.5/memcache.c:34:18: error: zlib.h: No such file or directory
/usr/src/memcache-2.2.5/memcache.c: In function ‘php_memcache_init_globals’:
/usr/src/memcache-2.2.5/memcache.c:255: error: ‘Z_DEFAULT_COMPRESSION’ undeclared (first use in this function)
/usr/src/memcache-2.2.5/memcache.c:255: error: (Each undeclared identifier is reported only once
/usr/src/memcache-2.2.5/memcache.c:255: error: for each function it appears in.)
/usr/src/memcache-2.2.5/memcache.c: In function ‘mmc_compress’:
/usr/src/memcache-2.2.5/memcache.c:839: error: ‘Z_OK’ undeclared (first use in this function)
/usr/src/memcache-2.2.5/memcache.c:846: error: ‘Z_MEM_ERROR’ undeclared (first use in this function)
/usr/src/memcache-2.2.5/memcache.c:849: error: ‘Z_BUF_ERROR’ undeclared (first use in this function)
/usr/src/memcache-2.2.5/memcache.c:852: error: ‘Z_STREAM_ERROR’ undeclared (first use in this function)
/usr/src/memcache-2.2.5/memcache.c: In function ‘mmc_uncompress’:
/usr/src/memcache-2.2.5/memcache.c:876: error: ‘Z_BUF_ERROR’ undeclared (first use in this function)
/usr/src/memcache-2.2.5/memcache.c:878: error: ‘Z_OK’ undeclared (first use in this function)
any clues ?
@ronan: check whether you have install zlib-devel package.
Regards,
didn’t work on centos 5.5
perl-AnyEvent-5.240-1.el5.rf.noarch from rpmforge has depsolving problems
–> Missing Dependency: perl(Net::SSLeay) >= 1.33 is needed by package perl-AnyEvent-5.240-1.el5.rf.noarch (rpmforge)
Error: Missing Dependency: perl(Net::SSLeay) >= 1.33 is needed by package perl-AnyEvent-5.240-1.el5.rf.noarch (rpmforge)
You could try using –skip-broken to work around the problem
You could try running: package-cleanup –problems
package-cleanup –dupes
rpm -Va –nofiles –nodigest
root@v-88 [/home]# yum -y install memcached
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: http://ftp.lug.udel.edu
* base: hpc.arc.georgetown.edu
* extras: mirror.batblue.com
* rpmforge: fr2.rpmfind.net
* updates: mirror.cs.vt.edu
addons | 951 B 00:00
base | 2.1 kB 00:00
extras | 2.1 kB 00:00
rpmforge | 1.1 kB 00:00
updates | 1.9 kB 00:00
Excluding Packages in global exclude list
Finished
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package memcached.i386 0:1.4.5-1.el5.rf set to be updated
–> Processing Dependency: perl(AnyEvent) for package: memcached
–> Processing Dependency: perl(AnyEvent::Socket) for package: memcached
–> Processing Dependency: perl(AnyEvent::Handle) for package: memcached
–> Processing Dependency: libevent-1.1a.so.1 for package: memcached
–> Processing Dependency: perl(YAML) for package: memcached
–> Processing Dependency: perl(Term::ReadKey) for package: memcached
–> Running transaction check
—> Package compat-libevent-11a.i386 0:3.2.1-1.el5.rf set to be updated
—> Package memcached.i386 0:1.4.5-1.el5.rf set to be updated
–> Processing Dependency: perl(AnyEvent) for package: memcached
–> Processing Dependency: perl(AnyEvent::Socket) for package: memcached
–> Processing Dependency: perl(AnyEvent::Handle) for package: memcached
–> Processing Dependency: perl(YAML) for package: memcached
–> Processing Dependency: perl(Term::ReadKey) for package: memcached
–> Finished Dependency Resolution
memcached-1.4.5-1.el5.rf.i386 from rpmforge has depsolving problems
–> Missing Dependency: perl(YAML) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
memcached-1.4.5-1.el5.rf.i386 from rpmforge has depsolving problems
–> Missing Dependency: perl(Term::ReadKey) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
memcached-1.4.5-1.el5.rf.i386 from rpmforge has depsolving problems
–> Missing Dependency: perl(AnyEvent::Socket) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
memcached-1.4.5-1.el5.rf.i386 from rpmforge has depsolving problems
–> Missing Dependency: perl(AnyEvent::Handle) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
memcached-1.4.5-1.el5.rf.i386 from rpmforge has depsolving problems
–> Missing Dependency: perl(AnyEvent) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
Error: Missing Dependency: perl(Term::ReadKey) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
Error: Missing Dependency: perl(AnyEvent) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
Error: Missing Dependency: perl(YAML) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
Error: Missing Dependency: perl(AnyEvent::Handle) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
Error: Missing Dependency: perl(AnyEvent::Socket) is needed by package memcached-1.4.5-1.el5.rf.i386 (rpmforge)
You could try using –skip-broken to work around the problem
You could try running: package-cleanup –problems
package-cleanup –dupes
rpm -Va –nofiles –nodigest
The program package-cleanup is found in the yum-utils package.
how to fix this
suvro, i have the same problem here, you found a solution?
Same problem here too
Thanks a million, you save my life.. Thanx n keep it up.
Thanks man. You came as a rescue for me. Cheers.
Some friend segest me to not use memcached because it will burden your server with many file. is’t true or not ?
Of course not, it keeps cache on the memory, not in files.
Leave a Reply