What is eAccelerator ?
is a free open-source PHP accelerator, optimizer, and dynamic content cache. It 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.
When i heard that then in my mind why didn’t try to install it on my blog server, i feel that my blog performance was not fast enough and i think eaccelerator maybe the solution for it.
I assume you have already installed php on your server and checked your php version
root@monitor-ubuntu:~# php -v
PHP 5.2.4-2ubuntu5.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 20:09:52)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
or you can checked it on your phpinfo, just create a file named test.php then add this
<? phpinfo(); ?>
then checked it on your browser http://localhost/test.php
Prerequisites
The installation of eAccelerator on Ubuntu 8.04 will require that several program packages be installed on your system. php5-dev is required to get the program phpize. make is required for the program make
# install php5-dev # install makeInstallation
get the latest eaccelarator source code on http://eaccelerator.net/# wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2 # tar xvjf eaccelerator-0.9.5.3.tar.bz2 # cd eaccelerator-0.9.5.3 # phpize # ./configure --enable-eaccelerator=shared # make # make installInstalling shared extensions: /usr/lib/php5/20060613+lfs/Now you need to edit /etc/php5/apache2/php.ini and add the following lineat the beginning of the file after the [PHP] tag:[PHP] ; eAccelerator configuration ; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension ; If you are using a thread safe build of PHP you must use ; zend_extension_ts instead of zend_extension ;extension = "/usr/lib/php5/20060613+lfs/eaccelerator.so" zend_extension = "/usr/lib/php5/20060613+lfs/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" eaccelerator.allowed_admin_path = "/var/www/control.php"NOTE: If you install Zend Optimizer and/or ionCube Loader you should be sure thationCube loads before Zend Optimizer and eAccelerator installs before both for proper operationof all three extensions.[PHP] ; eAccelerator configuration ; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension ; If you are using a thread safe build of PHP you must use ; zend_extension_ts instead of zend_extension ;extension = "/usr/lib/php5/20060613+lfs/eaccelerator.so" zend_extension = "/usr/lib/php5/20060613+lfs/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"eaccelerator.allowed_admin_path = "/var/www/control.php"; ionCube Loader configuration zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.2.so ; Zend Optimizer configuration zend_extension=/usr/local/lib/Zend/ZendOptimizer.so zend_optimizer.optimization_level=15
Create and change permissions of the eAccelerator cache directory# mkdir -p /var/cache/eaccelerator # chmod 0777 /var/cache/eacceleratorControl panel
eAccelerator provides a "control panel" of sorts that is useful to see what pages are being cached and usage of shared memory. To install the control panel, first copy file control.php into the web server document root:# cd /root/eaccelerator-0.9.5.3# cp
control.php /var/www/eaccelerator/
Edit control.php to change the
$user
and$pw settings
to a user name and password of your choosing.Don’t leave them as the default or attackers will be able to disrupt the cache.
View the control panel at http://your-server-url/control.php
Note: if you rename or move control.php you must update the
eaccelerator.allowed_admin_path
setting in php.iniRestart Apache
# /etc/init.d/apache2 restartBut strange thing happen to my server, when i try to checked the php version.
eaccelerator hasn't installed yet
# php -v PHP 5.2.4-2ubuntu5.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 20:09:52) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologiesokay i try to locate php.ini configuration that being use by php# php --ini Configuration File (php.ini) Path: /etc/php5/cli Loaded Configuration File: /etc/php5/cli/php.ini Scan for additional .ini files in: /etc/php5/cli/conf.d Additional .ini files parsed: /etc/php5/cli/conf.d/mysql.ini, /etc/php5/cli/conf.d/mysqli.ini, /etc/php5/cli/conf.d/pdo.ini, /etc/php5/cli/conf.d/pdo_mysql.ini, /etc/php5/cli/conf.d/snmp.iniOkay as you can see it is pointing to /etc/php5/cli , okay i edit the /etc/php5/cli and add this[PHP] ; eAccelerator configuration ; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension ; If you are using a thread safe build of PHP you must use ; zend_extension_ts instead of zend_extension ;extension = "/usr/lib/php5/20060613+lfs/eaccelerator.so" zend_extension = "/usr/lib/php5/20060613+lfs/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" eaccelerator.allowed_admin_path = "/var/www/control.php"
then i restart the apache# /etc/init.d/apache2 restartchecked the php version# php -v PHP 5.2.4-2ubuntu5.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 20:09:52) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAcceleratorokay it is changes then i try to checked the phpinfo on my web but eAccelerator hasn'tbeen added yetHmm, strange it is because the phpmyadmin are using LoadedConfiguration File = /etc/php5/apache2/php.ini.I try to create soft symlink on /etc/php5/, i changes the /etc/php5/apacheto different name let say/etc/php5/apache_old,then i create sysmlink for /etc/php5/cli# ln -s /etc/php5/cli apache# ls -altotal 20
drwxr-xr-x 5 root root 4096 2009-04-01 17:55 .
drwxr-xr-x 21 root root 4096 2008-12-22 12:24 ..
lrwxrwxrwx 1 root root 13 2009-04-01 17:55 apache -> /etc/php5/cli
drwxr-xr-x 2 root root 4096 2009-04-01 15:32 apache_old
drwxr-xr-x 2 root root 4096 2009-04-01 15:35 cli
drwxr-xr-x 2 root root 4096 2009-03-12 15:27 conf.d
Then i restart the apache# /etc/init.d/apache2 restartchecked the phpinfo files on the web, it is changesOkay is it is strange, i am curious what happen if i delete yhe symlink and changes backthe /etc/php5/apache_old to /etc/php5/apache# rm /etc/php5/apache # mv /etc/php5/apache_old /etc/php5/apache# ls -al total 20 drwxr-xr-x 5 root root 4096 2009-04-01 16:42 . drwxr-xr-x 102 root root 4096 2009-04-01 17:46 .. drwxr-xr-x 2 root root 4096 2009-04-01 15:47 apache2 drwxr-xr-x 2 root root 4096 2009-04-01 15:35 cli drwxr-xr-x 2 root root 4096 2009-03-12 15:27 conf.dThen i restart the apache# /etc/init.d/apache2 restartBoth phpinfo and php -v show the eAccelerator# php -v PHP 5.2.4-2ubuntu5.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 20:09:52) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAcceleratorOkay i don't know it is because of cache or something but it is installed in the end 🙂