Archive for December, 2013

Connection dropped by IMAP server : When you are trying to login to email account in Roundcube Webmail client.

You may fix the issue by follow the steps below:

If you are using Roundecube check the following logs :

#tail -50 /var/cpanel/roundcube/log/errors

1. Try to restart the IMAP service

# /etc/init.d/courier-imap restart

2. Try to update the courier imap server

#/scripts/courierup –force

3. If the issue still not solve, run the command below to fix the permission for mail directory

# chown -R user:mail /home/user/mail
=================================>

How to change the cPanel port

Posted: December 9, 2013 in cPanel

How to change the cPanel port

You can change the cPanel port in /var/cpanel/cpanel.config file. Search this line
——————–
port=2082
——————–
After changing the port, then run these two commands for it to take effect:

# /usr/local/cpanel/whostmgr/bin/whostmgr2 –updatetweaksettings
# /etc/init.d/httpd restart
==============================>

Error while accessing modsec control from WHM :Software error

Can’t locate JSON/XS.pm in @INC (@INC contains: /usr/local/cpanel /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/local/cpanel/Cpanel/JSON.pm line 15.

Install JSON/XS using perl

root@[~]# /scripts/perlinstaller JSON:XS

Successfully installed JSON-XS-2.34

Apache: [emerg] (28)No space left on device: Couldn’t create accept lock

[notice] suEXEC mechanism enabled (wrapper: /usr/local/apache/bin/suexec)
[crit] (28)No space left on device: mod_rewrite: Parent could not create RewriteLock file /usr/local/apache/logs/rewrite_lock

semget: [emerg] (28) No space left on device OR Apache: No space left on device: Couldn’t create accept lock

You may receive “No space left on device” message while starting the Apache service, however, it has nothing to do with the disk space. The reason behind the error message is Semaphores.

You will have to kill the active semaphore processes in order to start Apache service successfully.

To list the PIDs of the active semaphore processes, execute:

# ipcs -s
—— Semaphore Arrays ——– key
semid owner perms nsems
0×00000000 366673220 apache 600 1
0×00000000 366706589 apache 600 1
0×00000000 366732358 apache 600 1
0×00000000 366734353 apache 600 1
It will list all the PIDs which need to be killed:

# ipcrm -s PID

If you have a long list of processes, execute the following commands:

# ipcs -s | grep apache | awk ‘ { print $2 } ‘ | xargs ipcrm sem
#for i in `ipcs -s | awk ‘{print $2}’`; do (ipcrm -s $i); done

Replace ”apache’ in the above command with the actual “owner” of the processes returned in the “ipcs -s” command. Apache will start successfully once these processes are killed.

What is a Semaphore?

Semaphores are use to communicate between active processes. Apache write down some information of such processes before the communication actually begins and if Apache fails to write the information, it results in the “No space left on device: Couldn’t create accept lock” error message.

=====================>

imitipconn is a tool which is used to limit the number of connections per IP on our server. This tool can help in lowering the load on your server if someone connecting too many times from the same IP.

First we need to download the file.

#wget http://dominia.org/djao/limit/mod_limitipconn-0.23.tar.bz2

#tar -xjf mod_limitipconn-0.23.tar.bz2

#cd mod_limitipconn-0.23/

Now, we are compile the module into Apache using:

#/usr/local/apache/bin/apxs -cia mod_limitipconn.c

Update the httpd.conf file using this command:

#/usr/local/cpanel/bin/apache_conf_distiller –update

#/usr/local/cpanel/bin/build_apache_conf

Edit the file using vim or vi

vim /usr/local/apache/conf/mod_limitipconn.conf

Lets add in the following lines to the bottom of the file:

# Set a server-wide limit of 10 simultaneous downloads per IP,

# no matter what.

MaxConnPerIP 10

# This section affects all files under http://your.server/somewhere

MaxConnPerIP 3

# exempting images from the connection limit is often a good

# idea if your web page has lots of inline images, since these

# pages often generate a flurry of concurrent image requests

NoIPLimit image/*

# This section affects all files under /home/*/public_html

MaxConnPerIP 3

# In this case, all MIME types other than audio/mpeg and video*

# are exempt from the limit check

OnlyIPLimit audio/mpeg video

Now edit the file /usr/local/apache/conf/includes/pre_main_global.conf and add the following lines

Include “/usr/local/apache/conf/mod_limitipconn.conf”

Now restart apache

/scripts/restartsrv_httpd

You can check whether the module loaded or not using the following command.

/usr/local/apache/bin/httpd -M | grep limitipconn_module
/usr/sbin/httpd -t

Notes:

1) This module will not function unless mod_status is loaded and the
“ExtendedStatus On” directive is set.

2) Server-wide access restrictions and per-directory access restrictions
are computed separately. In the above example, if someone is
downloading 11 images from http://your.server/somewhere
simultaneously, they WILL be denied on the 11th download, because the
server-wide limit of 10 downloads is not affected by the per-directory
NoIPLimit. If you want to set global settings which can be overruled
by per-directory settings, you will need something like

# global per-directory settings here

# local per-directory settings here

3) If you are using any module based upon a quick handler hook (such as
mod_cache), mod_limitipconn will not be able to process any
per-directory configuration directives in time to affect the return
result of the other module. This is a technical limitation imposed
by Apache. In such a situation, you will have to use server-wide
configuration directives only.

Note that previous versions of mod_limitipconn did not allow any
server-wide configuration directives, and hence could not be used
with mod_cache at all. In other words, the present situation still
represents an improvement over previous versions.

4) The limits defined by mod_limitipconn.c apply to all IP addresses
connecting to your Apache server. Currently there is no way to set
different limits for different IP addresses.

5) Connections in excess of the limit result in a stock 503 Service
Temporarily Unavailable response. The job of returning a more useful
error message to the client is left as an exercise for the reader.

6) mod_limitipconn sets the LIMITIP environment variable to 1 whenever a
download is denied on the basis of too high an IP count. You can use
this variable to distinguish accesses that have been denied by this
module. For example, a line like

CustomLog /var/log/httpd/access_log common env=!LIMITIP

in httpd.conf can be used to suppress logging of denied connections
from /var/log/httpd/access_log. (Note that, if you really want to
suppress logging, you’ll probably also want to comment out the
ap_log_rerror lines from mod_limitipconn.c as well.)

7) By default, all clients behind a proxy are treated as coming from the
proxy server’s IP address. If you wish to alter this behavior,
consider installing mod_extract_forwarded from
================================================>

Unable to start Apache service on cPanel server.

If you are getting the following error while trying to restart the Apache service.

=====================>
-bash-3.2# /etc/init.d/httpd start
(20014)Internal error: Error retrieving pid file logs/httpd.pid
Remove it before continuing if it is corrupted.
=====================>

Solution :-

-bash-3.2# mv /usr/local/apache/logs/httpd.pid /usr/local/apache/logs/httpd.pid.bk
-bash-3.2# /etc/init.d/httpd restart
httpd not running, trying to start

Be sure that the apache service is running :

/etc/init.d/httpd status

=============================>

 

[Thu Aug 22 13:05:06 2013] [warn] [client 200.150.249.63] mod_fcgid: can’t apply process slot for /usr/local/cpanel/cgi-sys/php5, referer: http://www.domain.com/tracking/index.php

This issue commonly occur due to lower value of MaxRequestsPerProcess.

Solution :-

#vim /usr/local/apache/conf/php.conf

MaxRequestsPerProcess 1000
DefaultMaxClassProcessCount 120
IdleTimeout 60
MaxProcessCount 2000
IPCCommTimeout 40
IPCConnectTimeout 10
MaxRequestLen 10240000