PHP optimization How-To: Installing Eaccelerator

Eaccelerator is a PHP accelerator/encoder/caching utility that is based off of the old mmcache (which is no longer being maintained).

What Eaccelerator does is: it caches your PHP scripts so that the database is no longer being queried everytime someone needs a script. This is particularly useful for large forums, but pretty much anyone can benefit from it. Since these scripts are cached, you’ll notice a decrease in memory use and server load.

Installing Eaccelerator

1. First, you’ll want to SSH into your server as the root user. you should be in the default directory now. If you’re not, type in cd ~

2. Now we’ll make the eaccelerator directory:

mkdir /ea/

cd /ea/

2. Now we’ll grab the files, and unzip them:

wget http://optusnet.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.4.zip

unzip eaccelerator-0.9.4.zip

3. Now that we’ve done that, let’s install Eaccelerator:
Note: in the following “export” command, you need to point that to where PHP is installed. For most, it’s usually either “usr/” or “usr/local”, but it may be something else.

cd eaccelerator-0.9.4/

export PHP_PREFIX=”/usr”

$PHP_PREFIX/bin/phpize

./configure –enable-eaccelerator=shared –with-php-config=$PHP_PREFIX/bin/php-config

make

make install

4. It’s basically installed, now we need to edit the php.ini files to include Eaccelerator. This is usually found in the /etc/ folder, but if you can’t find it, run a “locate php.ini” (without quotes) to find it.
[i]I’m editting my file with nano, which pretty much anyone with a modern server should have. You can use pico or vi, it’s your choice:

cd ~

nano /etc/php.ini

Now find ;Windows Extensions (press ctrl + W). Remove the mmcache lines (if you had it installed before) above this and…

—————————————————————————-
For a PHP extension install (most will probably want this)
—————————————————————————-

extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/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″

—————————————————————————-
For a Zend extension install (only if you have Zend installed, or
if you’re going to install it
—————————————————————————-

zend_extension=”/usr/lib/php4/eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/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″

5. Now we need to make the cache directory, where the cache files will be stored.

cd ~

mkdir /tmp/eaccelerator/

chmod 0777 /tmp/eaccelerator/

6. Yay, it’s installed! Let’s restart Apache now so that Eaccelerator will start working:

service httpd restart

7. You *should* notice some sort of speed boost or that the server load/memory use has decreased. But let’s just make sure that it’s installed properly.

Open up your favorite FTP client and upload the eaccelerator.php and eaccelerator_password.php files to any directory on your website. I uploaded mine to my forum directory, but you can pretty much place them anywhere in the public_html directory.

Once that’s done, you can go to http://www.your-domain.com/path_to_s…ccelerator.php (of course, replacing that with the path to the script) to see if it’s installed. If it’s installed properly, you’ll see a screen like this:

Otherwise, you’ll see a screen saying that it’s not installed. You have to go back through the instructions, retry it and see if that works. Check to make sure that you specified the right directories and files in the instructions above!

Now, we’ll probably want to add a password to prevent some mean user from clearing the cached scripts or causing other bad stuff to happen. Navigate to the eaccelerator_password file and set an administrator name and password.

This doesn’t set the password, but it gives you a line of code to place in your php.ini file (just below the eaccelerator part). Once you do this, you need to log in to view the eaccelerator page.

After you’re done, you can delete or rename this file, but it’s not required.

BTW just in addition: eaccelerator does NOT work with php compiled as cgi, so it is not possible to use it with phpsuexec or with suphp.

Facebook Comments
Spread the love

Posted by News Monkey