How to install apache webserver in CentOS and Red Hat
In this tutorial we will learn about how to install apache webserver.
Web server as the name says it is server which is used for web services. The websites and web applications required web server to run.
Here for webserver we will install apache. There are other web server which are also widely use in linux like nginx,lighttpd,cherokee etc.
Web server as the name says it is server which is used for web services. The websites and web applications required web server to run.
Here for webserver we will install apache. There are other web server which are also widely use in linux like nginx,lighttpd,cherokee etc.
Web Server details after installation:
By Default port: 80
Document Root: /var/www/html
Default user name: apache
Configuration File: /etc/httpd/httpd.conf
Note: You can also create a configuration file in /etc/httpd/conf.d
Document Root: /var/www/html
Default user name: apache
Configuration File: /etc/httpd/httpd.conf
Note: You can also create a configuration file in /etc/httpd/conf.d
Server Details:
IP Address: 10.0.0.22
Operating System: CentOS release 6.4 (Final)
Arch: i686
Operating System: CentOS release 6.4 (Final)
Arch: i686
Note: The practical has been performed in CentOS with minimal installation.
Follow the given below steps to install your first Apache web server
Step 1 To install Apache Web Server ,use given below command
1
|
yum install httpd
|
Set SELINUX for apache
1
|
setsebool -P allow_httpd_anon_write=1
|
Set IPTABLE for Web Server
For Temporary IPTABLE setting (means the iptable rule for http will be gone after server restart)
1
2
3
|
[root@webserver ~]# iptables -A INPUT -p 80 -j ACCEPT
[root@webserver ~]# iptables -A OUTPUT -p 80 -j ACCEPT
[root@webserver ~]# iptables-save
|
For Permanent IPTABLE setting
Edit the file /etc/sysconfig/iptables and append the given below 2 lines
-A INPUT -p tcp –dport 80 -j ACCEPT
-A OUTPUT -p tcp –dport 80 -j ACCEPT
-A OUTPUT -p tcp –dport 80 -j ACCEPT
Reference of my system, See the line number where I append the iptables rule
Note: I used INPUT rule only in INPUT Section, for OUTPUT I append the iptable rule below FORWARD line
Note: I used INPUT rule only in INPUT Section, for OUTPUT I append the iptable rule below FORWARD line
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@webserver ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -p tcp --dport 80 -j ACCEPT
COMMIT
[root@webserver ~]#
|
Now check the iptables rule by using below given command
1
|
iptables -nL
|
See the below given reference from my server.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@webserver ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
[root@webserver ~]#
|
How to start,stop,restart HTTP service or Apache service
For Starting HTTP service
1
2
3
|
service httpd start
or
/etc/init.d/httpd start
|
For stopping HTTP service
1
2
3
|
service httpd stop
or
/etc/init.d/httpd stop
|
For restarting HTTP service
1
2
3
|
service httpd restart
or
/etc/init.d/httpd restart
|
For checking HTTP service status
1
2
3
|
service httpd status
or
/etc/init.d/httpd status
|
When you start the httpd service, you may get the below given error message
1
2
3
|
[root@localhost ~]# /etc/init.d/httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for webserver
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
|
To solve this issue, set the FQDN of Web server means set the Fully qualified domain name of your machine
To set FQDN and hostname, you have to follow the given steps
To set FQDN and hostname, you have to follow the given steps
My server IP Address is 10.0.0.22 (Replace the IP address with your machine IP address)
Domain name: For practical purpose I am using domain name example.com (Replace with your domain name or you can also use this one for practice purpose)
Domain name: For practical purpose I am using domain name example.com (Replace with your domain name or you can also use this one for practice purpose)
Hostname: webserver
FQDN: webserver.example.com
FQDN: webserver.example.com
To know about host name and FQDN read this post (The concept is equally applicable to CentOS and Red Hat)
In /etc/hosts file ,append the IP address and give Hostname and make FQDN name as per given below format.
1
2
3
4
|
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.22 webserver.example.com webserver
|
Now edit /etc/sysconfig/network and give host name information in HOSTNAME
1
2
3
4
|
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=webserver
[root@localhost ~]#
|
Restart the server so that it could completely set the hostname and FQDN
1
2
3
4
5
|
init 6
or
shutdown -r now
|
Once the server is restarted, check the hostname and FQDN. See the given below format for Hostname and FQDN
hostname
command for checking hostnamehostname -f
command for checking FQDN
1
2
3
4
5
|
[root@webserver ~]# hostname
webserver
[root@webserver ~]# hostname -f
webserver.example.com
[root@webserver ~]#
|
1
2
3
4
5
|
service httpd start
or
/etc/init.d/httpd start
|
Check the status of httpd service
1
2
3
|
service httpd status
or
/etc/init.d/httpd status
|
Reference from my server:
[root@webserver ~]# /etc/init.d/httpd start
Starting httpd: [ OK ]
[root@webserver ~]#
[root@webserver ~]# /etc/init.d/httpd status
httpd (pid 1372) is running…
[root@webserver ~]#
Enable the http service in Runlevel
To enable the http service in runlevel so that when system restart at particular runlevel the service must be running
1
|
chkconfig httpd on
|
Note: Above given command will enable the service in Run level 2,3,4 and 5
Reference of my system
1
2
3
4
5
6
|
[root@webserver html]# chkconfig --list|grep http
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@webserver html]# chkconfig httpd on
[root@webserver html]# chkconfig --list|grep http
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@webserver html]#
|
check the welcome page in the web browser
Now open the web browser and in URL type -
1
|
http://webserver-ipaddress
|
You will get your first Welcome page
Create your first index.html page
Now create your first index.html page for further testing
1
|
vi /var/www/html/index.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<html>
<title>
Test page
</title>
<body>
<h2> Linux</h2>
<p>
Linux is a Unix-like computer operating system assembled under the model
of free and open source software development and distribution. The defining
component of Linux is the Linux kernel,an operating system kernel first
released on 5 October 1991, by Linus Torvalds.Since the C compiler that builds
Linux and the main supporting user space system tools and libraries
originated in the GNU Project, initiated in 1983 by Richard Stallman, the Free
Software Foundation prefers the name GNU/Linux when these tools and libraries are used.
</p>
</body>
</html>
|
Change the group and ownership of index.html file
1
|
chown apache:apache /var/www/html/index.html
|
Now refresh the webbrowser or type in URL again http://ip-address-ofwebserver
You will get this page
You will get this page
Note: It is good practice to change the ownership and group of file. With the working experience in various web apps,CMS etc. you will know how and which file will get permission and ownership.
No comments:
Post a Comment