Apache HTTP RPM installation
This page about rpm package installation is available only on Linux flavors. Why do we need this rpm? It is a bundled package with auto-executing script that runs when you install with rpm commands. Apache binaries can be recompiled when it is installed. It requires root access to execute this. We can also customize the rpm packages so that we can run the installer rpm that internally creates a dedicated apache user, that will be used to run the child threads of Apache HTTP server processes. Before you install the Apache HTTP server verifying the operating system processor instructional set it is 32bit/64bit.
Verify 32bit/64bit
[wladmin@sam-server]# uname –a
Linux bt-dante-server 2.6.32-100.26.2.el5 #1 SMP Tue Jan 18 20:11:49 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
Why do we need this means? Based on these operating system capabilities 32bit or 64bit we need to select the Apache HTTP download the rpm.
Here we have experimenting by using 64bit supported installation rpm.
Some of the Linux environments installing the HTTP service as part of Operating system installation. So, Let us first check that is it already installed? the below command of rpm option will give the desired validation.
Verify Apache installation
First check already apache is installed using the rpm or not. By using the below rpm command we can confirm that this particular HTTP version exists in the installed packages.
[wladmin@sam-server]# rpm –q httpd-2.4.x-1.i686.rpm
package httpd-2.4.x-1.i686.rpm is not installed
Apache Installation using rpm
Now everything ready, We can jump into installation of Apache HTTP that is bundled as rpm. Using the below rpm command we are going to install the Apache HTTP server. The options d -ivh means install, verbose,
[wladmin@sam-server]# rpm -ivh httpd-2.4.x-1.i686.rpm
Preparing... ########################################### [100%]
Httpd-2.4.x-1.i686.rpm ####################################[100%]
After installation, check the installation as said in the previous section. If there is any software package could be using the rpm and it may change some of your installation pack too. So better you can run the below command to update the Linux maintaining packages DB (update the locate rpm database)
[wladmin@sam-server]# updatedb
Uninstall apache rpm
This command you must know when there is problem while installing in the middle or there could be older version and you need to install new version. To remove the apache bundle that is already installed by using rpm (httpd-2.4.x-1.i686.rpm) then below rpm command with option –e is use to tell erase the httpd bundle from the packages .
[wladmin@sam-server]# rpm -e httpd-2.4.x-1.i686.rpm
Basic Apache Configuration
Here we are going to discuss all the basic attributes that could enable you to start the Apache HTTP server instance
Listen
The Listen command tells the Web server what ports to use for incoming connections.
By default, port 80 is used, although any one or several can be used. Secure web communications are normally handled on port 443.
Listen ipaddress with port number (or) DNS with port number
By default configuration in httpdf.conf file
Listen 80 is replace your DNS name with port Number. Here my DNS name is sam-server and port Number
Listen 172.31.231.62:6280
(or)
Listen sam-server:6280
ServerName : This is the one setting you will have to change to get your server running. This is where you declare the name of your website.
ServerName ipaddress with port number (or) DNS Name with port Number
User and Group: According to our requirement to specify the apache Instance operations controlled username and Group
User wladmin
Goup wladmin
ServerName : This is the one setting you will have to change to get your server running. This is where you declare the name of your website.
ServerName ipaddress with port number (or) DNS Name with port Number
ServerName 172.31.231.62:6280 (or) sam-server:6280
Starting Apache Web server as Service
On UNIX / Linux platform Apache web server instance can be started as a service
service httpd start
How to find the Apache Process Running?
On the UNIX environments ps command can be used to find the list of process. To filter out the Apache instance we can use grep with keyword ‘httpd’. The apache process is by using the below command
$ ps –ef | grep httpd
Configuring Multiple Apache Instances on a Machine
It is possible to configure additional instances of the Apache httpd server running independently alongside each other on the same machine. These instances can have independent configurations, and can potentially run as separate users if so configured.
To create an additional Apache HTTP webserver instance called httpd-additional, follow these steps:
Go to $APACHE_HOME/conf directory, here create two directories(as per your requirement it can be more than two) with the names SideA and SideB
[wlamin@sam-server conf]# pwd
/home/wladmin/apache2/conf
[wladmin@sam-server conf]#mkdir SideA
[wladmin@sam-server conf]#mkdir SideB
By using the cp command copy the default configuration file into new directories created above such as SideA and SideB
[wladmin@sam-server]#cd SideA
[wladmin@sam-server SideA]#cp /home/wladmin/apache2/conf/httpd.conf .
[wladmin@sam-server conf]cd ../SideB
[wladmin@sam-server SideB]#cp /home/wladmin/apache2/conf/httpd.conf .
Move to logs under the apache2 and create two directories with the names SideA-logs and SideB-logs
[wladmin@sam-server SideA]#cd ../..
[wladmin@sam-server logs]#mkdir SideA-logs
[wladmin@sam-server logs]#mkdir SideB-logs
sideA apache Instance logs are placed inside the /home/wladmin/apache2/logs/SideA-logs
[wladmin@sam-server logs]#cd SideA-logs
[wladmin@sam-server logs SideA-logs]#pwd
/home/wladmin/apache2/logs/SideA-logs
sideB apache Instance logs are placed inside the /home/wladmin/apache2/logs/SideB-logs
[wladmin@sam-server logs]#cd SideB-logs
[wladmin@sam-server logs SideB-logs]#pwd
/home/wladmin/apache2/logs/SideB-logs
Go to /home/wladmin/apache2/conf/SideA and edit the configuration file(httpd.conf) according to our basic requirement to run the web server we need following directives configuration.
Listen, ServerName, ErrorLog, CustomLog and PidFile.
Listen 172.31.231.62:6280 (or) sam-server:6280
ServerName 172.31.231.62:6280 (or) sam-server:6280
ErrorLog /home/wladmin/apache2/logs/SideA-logs
CustomLog /home/wladmin/apache2/logs/SideA-logs
PidFile /home/wladmin/apache2/logs/SideA-logs
Go to /home/wladmin/apache2/conf/SideB and edit the configuration file(httpd.conf) according to our requirement.
Listen, ServerName, ErrorLog, CustomLog and PidFile.
Listen 172.31.231.62:6290 (or) sam-server:6290
ServerName 172.31.231.62:6290 (or) sam-server:6290
ErrorLog /home/wladmin/apache2/logs/SideB-logs
CustomLog /home/wladmin/apache2/logs/SideB-logs
PidFile /home/wladmin/apache2/logs/SideB-logs
Go to the path /home/wladmin/apache2/bin. Here one file is located with the name apachectl. It is used to start the apache Instance. Based on we can create separate instance startup file by passing with the configuration file path.
[wladmin@sam-server bin]# pwd
/home/wladmin/apache2/bin
[wladmin@sam-server bin]#cp apachectl apachectl-SideA
[wladmin@sam-server bin]#cp apachectl apachectl-SideB
Open the apachectl-SideA file and replace HTTPD = '/home/wladmin/apache2/bin/httpd with
HTTPD = '/home/wladmin/apache2/bin/httpd -f /home/wladmin/apache2/conf/SideA/httpd.conf '
[wladmin@sam-server bin]#vi apachectl-SideA
HTTPD = '/home/wladmin/apache2/bin/httpd -f /home/wladmin/apache2/conf/SideA/httpd.conf '
Open the apachectl-SideB file and replace HTTPD = '/home/wladmin/apache2/bin/httpd with
[wladmin@sam-server bin]#vi apachectl-SideB
HTTPD = '/home/wladmin/apache2/bin/httpd -f /home/wladmin/apache2/conf/SideB/httpd.conf '
To start the SideA apache Instance using the below command
./ apachectl-SideA start
To start the SideB apache Instance using the below command
./ apachectl-SideB start
Best Reference
1. Apache RPM installation
2. Failover in Apache with multiple instances
3. Multi Site setup