How to Enable mod_perl on Linux CentOS 6.3

The default apache configuration installed without mod_perl. This can be a good idea in order to minimize the number of things that can go wrong. This post will covers the steps to enable mod_perl on linux CentOS 6.3. This will make Perl script be fast and increase the performance.

Prerequisites:
How to Install Httpd on CentOS 6.3

1. To Enable mod_perl, simply run the following command :

[root@centos63 ~]# yum install mod_perl -y
Loaded plugins: fastestmirror, presto, priorities
Loading mirror speeds from cached hostfile
 * base: centos.ipserverone.com
 * extras: centos.ipserverone.com
 * updates: centos.ipserverone.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mod_perl.i686 0:2.0.4-10.el6 will be installed
--> Processing Dependency: perl(BSD::Resource) for package: mod_perl-2.0.4-10.el6.i686
--> Running transaction check
---> Package perl-BSD-Resource.i686 0:1.29.03-3.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                       Arch             Version                      Repository        Size
====================================================================================================
Installing:
 mod_perl                      i686             2.0.4-10.el6                 base             3.2 M
Installing for dependencies:
 perl-BSD-Resource             i686             1.29.03-3.el6                base              35 k

Transaction Summary
====================================================================================================
Install       2 Package(s)

Total download size: 3.2 M
Installed size: 6.0 M
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 3.2 M
(1/2): mod_perl-2.0.4-10.el6.i686.rpm                                        | 3.2 MB     00:27
(2/2): perl-BSD-Resource-1.29.03-3.el6.i686.rpm                              |  35 kB     00:00
----------------------------------------------------------------------------------------------------
Total                                                               117 kB/s | 3.2 MB     00:27
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : perl-BSD-Resource-1.29.03-3.el6.i686                                             1/2
  Installing : mod_perl-2.0.4-10.el6.i686                                                       2/2
  Verifying  : mod_perl-2.0.4-10.el6.i686                                                       1/2
  Verifying  : perl-BSD-Resource-1.29.03-3.el6.i686                                             2/2

Installed:
  mod_perl.i686 0:2.0.4-10.el6

Dependency Installed:
  perl-BSD-Resource.i686 0:1.29.03-3.el6

Complete!

2. Configure PerlRun mode :

[root@centos63 ~]# vi /etc/httpd/conf.d/perl.conf

a) Original :

#PerlSwitches -w

Uncomment or change to :

PerlSwitches -w

b) Original :

#PerlSwitches -T

Uncomment or change to :

PerlSwitches -T

c) Original :

#Alias /perl /var/www/perl
#<Directory /var/www/perl>
#    SetHandler perl-script
#    PerlResponseHandler ModPerl::Registry
#    PerlOptions +ParseHeaders
#    Options +ExecCGI
#</Directory>

Uncomment or change to :

Alias /perl /var/www/perl
<Directory /var/www/perl>
    SetHandler perl-script
#   AddHandler perl-script .cgi
#   PerlResponseHandler ModPerl::Registry
    PerlResponseHandler ModPerl::PerlRun
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>

d) Original :

#<Location /perl-status>
#    SetHandler perl-script
#    PerlResponseHandler Apache2::Status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

Uncomment or change to :

<Location /perl-status>
    SetHandler perl-script
    PerlResponseHandler Apache2::Status
    Order deny,allow
    Deny from all
    Allow from 192.168.2.0/24
</Location>

3. Restart Apache :

[root@centos63 ~]# /etc/rc.d/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

4. Make sure if it works normally :

Browse to http://192.168.2.54/perl-status

mod_perl

5. Configure Registry mode :

Alias /perl /var/www/perl
<Directory /var/www/perl>
    SetHandler perl-script
# AddHandler perl-script .cgi
    PerlResponseHandler ModPerl::Registry
#  PerlResponseHandler ModPerl::PerlRun
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>

6. Restart Apache :

[root@centos63 ~]# /etc/rc.d/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

How to Install Httpd on CentOS 6.3

This post will show you the quick steps to install apache httpd on linux CentOS 6.3 server. Apache httpd is one of the most popular web servers and has a lot of features that make it very extensible and useful for many different types of websites.

1. Install httpd using yum command :

[root@centos63 ~]# yum install httpd -y

Examples :

[root@centos63 ~]# yum install httpd -y
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: mirrors.hostemo.com
 * extras: mirrors.hostemo.com
 * updates: mirrors.hostemo.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.i686 0:2.2.15-15.el6.centos.1 will be installed
--> Processing Dependency: httpd-tools = 2.2.15-15.el6.centos.1 for package: httpd-2.2.15-15.el6.centos.1.i686
--> Processing Dependency: libaprutil-1.so.0 for package: httpd-2.2.15-15.el6.centos.1.i686
--> Processing Dependency: libapr-1.so.0 for package: httpd-2.2.15-15.el6.centos.1.i686
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-15.el6.centos.1.i686
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-15.el6.centos.1.i686
--> Running transaction check
---> Package apr.i686 0:1.3.9-5.el6_2 will be installed
---> Package apr-util.i686 0:1.3.9-3.el6_0.1 will be installed
---> Package apr-util-ldap.i686 0:1.3.9-3.el6_0.1 will be installed
---> Package httpd-tools.i686 0:2.2.15-15.el6.centos.1 will be installed
---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                 Arch             Version                           Repository         Size
====================================================================================================
Installing:
 httpd                   i686             2.2.15-15.el6.centos.1            base              819 k
Installing for dependencies:
 apr                     i686             1.3.9-5.el6_2                     updates           129 k
 apr-util                i686             1.3.9-3.el6_0.1                   base               89 k
 apr-util-ldap           i686             1.3.9-3.el6_0.1                   base               15 k
 httpd-tools             i686             2.2.15-15.el6.centos.1            base               70 k
 mailcap                 noarch           2.1.31-2.el6                      base               27 k

Transaction Summary
====================================================================================================
Install       6 Package(s)

Total download size: 1.1 M
Installed size: 3.4 M
Downloading Packages:
Setting up and reading Presto delta metadata
http://mirrors.hostemo.com/CentOS/6.3/updates/i386/repodata/1dbb6d68b2b39e2eab5888b04cfa0f20a86cb7c4ee54420384eaf8fa0f3d326d-prestodelta.xml.gz: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
updates/prestodelta                                                          |  18 kB     00:00
Processing delta metadata
Package(s) data still to download: 1.1 M
(1/6): apr-1.3.9-5.el6_2.i686.rpm                                            | 129 kB     00:00
(2/6): apr-util-1.3.9-3.el6_0.1.i686.rpm                                     |  89 kB     00:00
(3/6): apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm                                |  15 kB     00:00
(4/6): httpd-2.2.15-15.el6.centos.1.i686.rpm                                 | 819 kB     00:07
(5/6): httpd-tools-2.2.15-15.el6.centos.1.i686.rpm                           |  70 kB     00:00
(6/6): mailcap-2.1.31-2.el6.noarch.rpm                                       |  27 kB     00:00
----------------------------------------------------------------------------------------------------
Total                                                               104 kB/s | 1.1 MB     00:11
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) 
 Package: centos-release-6-3.el6.centos.9.i686 (@anaconda-CentOS-201207051201.i386/6.3)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : apr-1.3.9-5.el6_2.i686                                                           1/6
  Installing : mailcap-2.1.31-2.el6.noarch                                                      2/6
  Installing : apr-util-1.3.9-3.el6_0.1.i686                                                    3/6
  Installing : apr-util-ldap-1.3.9-3.el6_0.1.i686                                               4/6
  Installing : httpd-tools-2.2.15-15.el6.centos.1.i686                                          5/6
  Installing : httpd-2.2.15-15.el6.centos.1.i686                                                6/6
  Verifying  : apr-util-1.3.9-3.el6_0.1.i686                                                    1/6
  Verifying  : httpd-2.2.15-15.el6.centos.1.i686                                                2/6
  Verifying  : apr-1.3.9-5.el6_2.i686                                                           3/6
  Verifying  : apr-util-ldap-1.3.9-3.el6_0.1.i686                                               4/6
  Verifying  : httpd-tools-2.2.15-15.el6.centos.1.i686                                          5/6
  Verifying  : mailcap-2.1.31-2.el6.noarch                                                      6/6

Installed:
  httpd.i686 0:2.2.15-15.el6.centos.1

Dependency Installed:
  apr.i686 0:1.3.9-5.el6_2                       apr-util.i686 0:1.3.9-3.el6_0.1
  apr-util-ldap.i686 0:1.3.9-3.el6_0.1           httpd-tools.i686 0:2.2.15-15.el6.centos.1
  mailcap.noarch 0:2.1.31-2.el6

Complete!

2. Check httpd status :

[root@centos63 ~]# /etc/init.d/httpd status
httpd is stopped

3. Start httpd service :

[root@centos63 ~]# /etc/init.d/httpd start

Examples

[root@centos63 ~]# /etc/init.d/httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for centos63.ehowstuff.local
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

4. To remove above warning when starting httpd, follow the following steps. Go to line 276, change ServerName as below :

ServerName centos63.ehowstuff.local:80

5. Stop httpd service :

[root@centos63 ~]# /etc/init.d/httpd stop
Stopping httpd:                                            [  OK  ]

6. Restart httpd service :

[root@centos63 ~]# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

7. Make httpd start at boot :

[root@centos63 ~]# chkconfig httpd on

How to Install Apache httpd on Linux Fedora 16 Server

This post will guide you how to install apache httpd service on linux Fedora 16. Apache HTTP is a popular web server for linux servers. Follow this steps to install apache httpd service.

Simply run this command :

[root@fedora16 ~]# yum install httpd -y
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.i686 0:2.2.21-1.fc16 will be installed
--> Processing Dependency: httpd-tools = 2.2.21-1.fc16 for package: httpd-2.2.21-1.fc16.i686
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.21-1.fc16.i686
--> Processing Dependency: libaprutil-1.so.0 for package: httpd-2.2.21-1.fc16.i686
--> Processing Dependency: libapr-1.so.0 for package: httpd-2.2.21-1.fc16.i686
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.21-1.fc16.i686
--> Running transaction check
---> Package apr.i686 0:1.4.5-1.fc16 will be installed
---> Package apr-util.i686 0:1.3.12-1.fc16 will be installed
---> Package apr-util-ldap.i686 0:1.3.12-1.fc16 will be installed
---> Package httpd-tools.i686 0:2.2.21-1.fc16 will be installed
---> Package mailcap.noarch 0:2.1.38-1.fc16 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                Arch            Version                  Repository                    Size
====================================================================================================
Installing:
 httpd                  i686            2.2.21-1.fc16            Fedora16-Repository          811 k
Installing for dependencies:
 apr                    i686            1.4.5-1.fc16             Fedora16-Repository          103 k
 apr-util               i686            1.3.12-1.fc16            Fedora16-Repository           82 k
 apr-util-ldap          i686            1.3.12-1.fc16            Fedora16-Repository           16 k
 httpd-tools            i686            2.2.21-1.fc16            Fedora16-Repository           69 k
 mailcap                noarch          2.1.38-1.fc16            Fedora16-Repository           29 k

Transaction Summary
====================================================================================================
Install       6 Packages

Total download size: 1.1 M
Installed size: 3.4 M
Downloading Packages:
----------------------------------------------------------------------------------------------------
Total                                                               2.1 MB/s | 1.1 MB     00:00
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : mailcap-2.1.38-1.fc16.noarch                                                     1/6
  Installing : apr-1.4.5-1.fc16.i686                                                            2/6
  Installing : apr-util-1.3.12-1.fc16.i686                                                      3/6
  Installing : httpd-tools-2.2.21-1.fc16.i686                                                   4/6
  Installing : apr-util-ldap-1.3.12-1.fc16.i686                                                 5/6
  Installing : httpd-2.2.21-1.fc16.i686                                                         6/6

Installed:
  httpd.i686 0:2.2.21-1.fc16

Dependency Installed:
  apr.i686 0:1.4.5-1.fc16                           apr-util.i686 0:1.3.12-1.fc16
  apr-util-ldap.i686 0:1.3.12-1.fc16                httpd-tools.i686 0:2.2.21-1.fc16
  mailcap.noarch 0:2.1.38-1.fc16

Complete!

Configure your system to start Apache at boot time :

[root@fedora16 ~]# systemctl enable httpd.service

Start Apache service :

[root@fedora16 ~]# systemctl start httpd.service

How to Install Httpd on CentOS 5.7

Apache httpd is one of the most popular web servers and has a lot of features that make it very extensible and useful for many different types of websites.This steps has been tested on CentOS 5.7 with direct internet connection.

Simply run this command to install apache httpd service on CentOS 5.7:

    [root@CentOS57 ~]# yum install httpd
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirror.yourconnect.com
     * extras: mirrors.sin1.sg.voxel.net
     * updates: mirror.yourconnect.com
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package httpd.i386 0:2.2.3-53.el5.centos.3 set to be updated
    base/filelists                                                              | 2.9 MB     00:25
    extras/filelists_db                                                         | 199 kB     00:03
    updates/filelists_db                                                        | 1.9 MB     00:22
    --> Processing Dependency: /etc/mime.types for package: httpd
    --> Processing Dependency: libapr-1.so.0 for package: httpd
    --> Processing Dependency: libaprutil-1.so.0 for package: httpd
    --> Running transaction check
    ---> Package apr.i386 0:1.2.7-11.el5_6.5 set to be updated
    ---> Package apr-util.i386 0:1.2.7-11.el5_5.2 set to be updated
    --> Processing Dependency: libpq.so.4 for package: apr-util
    ---> Package mailcap.noarch 0:2.1.23-1.fc6 set to be updated
    --> Running transaction check
    ---> Package postgresql-libs.i386 0:8.1.23-1.el5_7.3 set to be updated
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===================================================================================================
     Package                  Arch            Version                           Repository        Size
    ===================================================================================================
    Installing:
     httpd                    i386            2.2.3-53.el5.centos.3             updates          1.2 M
    Installing for dependencies:
     apr                      i386            1.2.7-11.el5_6.5                  base             124 k
     apr-util                 i386            1.2.7-11.el5_5.2                  base              80 k
     mailcap                  noarch          2.1.23-1.fc6                      base              14 k
     postgresql-libs          i386            8.1.23-1.el5_7.3                  updates          197 k
    
    Transaction Summary
    ===================================================================================================
    Install       5 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 1.6 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/5): mailcap-2.1.23-1.fc6.noarch.rpm                                      |  14 kB     00:00
    (2/5): apr-util-1.2.7-11.el5_5.2.i386.rpm                                   |  80 kB     00:00
    (3/5): apr-1.2.7-11.el5_6.5.i386.rpm                                        | 124 kB     00:01
    (4/5): postgresql-libs-8.1.23-1.el5_7.3.i386.rpm                            | 197 kB     00:02
    (5/5): httpd-2.2.3-53.el5.centos.3.i386.rpm                                 | 1.2 MB     00:11
    ---------------------------------------------------------------------------------------------------
    Total                                                               99 kB/s | 1.6 MB     00:16
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : apr                                                                         1/5
      Installing     : mailcap                                                                     2/5
      Installing     : postgresql-libs                                                             3/5
      Installing     : apr-util                                                                    4/5
      Installing     : httpd                                                                       5/5
    
    Installed:
      httpd.i386 0:2.2.3-53.el5.centos.3
    
    Dependency Installed:
      apr.i386 0:1.2.7-11.el5_6.5                 apr-util.i386 0:1.2.7-11.el5_5.2
      mailcap.noarch 0:2.1.23-1.fc6               postgresql-libs.i386 0:8.1.23-1.el5_7.3
    
    Complete!
    

Set httpd service to auto start at boot:

    [root@CentOS57 ~]# chkconfig httpd on
    

Start and troubleshoot httpd start error:

    [root@CentOS57 ~]# service httpd start
    
    Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    

Check the server hostname or server fully qualified domain name:

    [root@CentOS57 ~]# hostname
    CentOS57
    

Change the ServerName on line 265 to your hostname above.

    [root@CentOS57 ~]# vi /etc/httpd/conf/httpd.conf
    
      263 # redirections work in a sensible way.
        264 #
        265 ServerName CentOS57:80
        266
        267 #
    

Start the Httpd service using the following command :

    [root@CentOS57 ~]# service httpd start
    Starting httpd:                                            [  OK  ]
    

or

    [root@CentOS57 ~]# /etc/init.d/httpd start
    Starting httpd:                                            [  OK  ]