Php default behaviour is always re-compile our script everytime accessed by users/browsers. eaccelerator can increases the performance of PHP scripts by caching them in their compiled state, so that the overhead of compiling is almost completely eliminated. It also optimizes scripts to speed up their execution. eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.
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.
Here’s how to install eaccelerator extension
$ wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2 $ tar xjf eaccelerator-0.9.6-rc1.tar.bz2 $ cd eaccelerator-0.9.6-rc1 $ phpize $ ./configure $ make $ sudo make install $ cd /var/cache $ sudo mkdir eaccelerator $ sudo chown -R apache:apache eaccelerator
Now create eaccelerator.ini in /etc/php.d/
$ sudo vi eaccelerator.ini
extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
Restart httpd
$ sudo /etc/init.d/httpd restart
Or
$ sudo service httpd restart
Install memcached and memcache extension
$ wget http://memcached.googlecode.com/files/memcached-1.4.2.tar.gz $ wget http://pecl.php.net/get/memcache-2.2.5.tgz $ tar xvzf memcached-1.4.2.tar.gz $ cd memcached-1.4.2 $ ./configure $ make $ make install $ tar xvzf memcache-2.2.5.tgz $ cd memcache-2.2.5 $ phpize $ ./configure $ make $ sudo make install $ rpmbuild -ta memcached-1.4.2.tar.gz $ sudo rpm -ivh /path/to/RPMS/memcached-1.4.2-1.i386.rpm
Start memcached as daemon
/etc/init.d/memcached start
Make memcached init script run automatically
$ sudo chkconfig --level 2345 memcached on
Create memcache.ini in /etc/php.d/
$ sudo vi memcache.ini
extension=memcache.so
Restart httpd
$ sudo /etc/init.d/httpd restart
Or
$ sudo service httpd restart
Now, test if eaccelerator and memcache extension is loaded
Create this small script in our httpd docroot
$ vi info.php
<?php phpinfo(); ?>
Open it from browser http://www.domain.tld/info.php
You should see something like this:
eaccelerator
memcache
done, now your website is optimized with eaccelerator and memcache
How you change eaccelerator.shm_size to be 16..? my current setting indicates the value for that is just 1..
that’s just an experiment for shared memory in eaccelerator 🙂