How to install mod_evasive in cPanel server

Please follow the procedure given below to install and configure  mod_evasive in  cPanel server with apache 2.2.

Download the   latest source file from http://www.zdziarski.com

# cd /usr/local/src/
# wget /blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
# tar -xvzf mod_evasive_1.10.1.tar.gz
# cd mod_evasive/
# /usr/local/apache/bin/apxs -cia mod_evasive20.c

Now create a file named  /usr/local/apache/conf/mod_evasive.conf and add the following lines

# cat /usr/local/apache/conf/mod_evasive.conf
LoadModule evasive20_module   modules/mod_evasive20.so
<IfModule mod_evasive20.c>
DOSHashTableSize    3097
DOSPageCount        2
DOSSiteCount        50
DOSPageInterval     1
DOSSiteInterval     1
DOSBlockingPeriod   10
</IfModule>

Now include the above file inside  /usr/local/apache/conf/includes/pre_main_global.conf

Include "/usr/local/apache/conf/mod_evasive.conf"

Now rebuild httpd.conf

/scripts/rebuildhttpdconf

Now restart apache

/scripts/restartsrv httpd

How to find php extension_dir

The extension_dir is the php system path into which the thirdparty installations were installing the  modules like eaccelerator , memcache , etc,.  Sometimes this path will be missing from  server php.ini .  So then you need to find out the correct extension_dir and  update it in php.ini . So that the installed extension will work fine.

So the question is how to find the extension_dir . There will be a php-config file with every php  installations . You can find it from this file . To find it easily run the following command in shell

# grep extension_dir=  `which php-config`

The above result will show an out put like the following ,

#  grep extension_dir=  `which php-config`

extension_dir='/usr/local/lib/php/extensions/no-debug-non-zts-20060613'

#

Please note the path will  be different in your server .

How to install eAccelerator in directadmin server

The eaccelerator installation in directadmin is easy . This procedure is same in all php linux distribution. You may need to do the following procedure. This is based on redhat / centos distributions

1) Download the latest eaccelerator source files from  http://sourceforge.net/projects/eaccelerator/   and extract it  after that run the following commands

# yum -y install autoconf
# phpize
# ./configure
# make
# make install

2) Find the php.ini using the command ” php –ini” and edit it .  The update the  “extension_dir ” current extension  directory . This path contains all the  php  third party installations.

-------
# php --ini | grep Configuration
Configuration File (php.ini) Path: /usr/local/etc/php5/cgi
Loaded Configuration File:         /usr/local/etc/php5/cgi/php.ini
# grep extension_dir /usr/local/etc/php5/cgi/php.ini
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626"
----------

Please note the extension_dir path will be different in your server.

3) Now add the following lines at the end of php.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"
---------

4) Now create the cache folder  /var/cache/eaccelerator

--------
# mkdir /var/cache/eaccelerator
# chmod  777 /var/cache/eaccelerator
------

5) Restart apache  and test it