OSETC TECH

CentOS 7 / RHEL 7 : How To Install And Configure Apache HTTP Server

For A Linux administrator, you probably want to know that how to setup or configure  Apache web server under new CentOS 7 or Red Hat Enterprise 7 linux?  How do I install httpd package to configure Apache web server under centos 7 or RHEL 7 operating system? this tutorial shows how you can install an Apache Http Server on Centos 7 system.

For Centos 7 or RHEL 7 linux version, there is a big change is that the name of network interface changed from “eth*” to “eno*“,  you can have a refer for change centos 7 network interface name if you want.

​CentOS Configure Apache HTTP Server

Step1# CentOS 7 /RHEL Install Httpd Package

Before configuring Apache web server, you need install Httpd package firstly, directly issue the following yum command:

yum install httpd

Outputs:

[root@osetc Desktop]# yum install httpd

Loaded plugins: fastestmirror, langpacks

base                                                     | 3.6 kB     00:00

extras                                                   | 3.4 kB     00:00

updates                                                  | 3.4 kB     00:00

updates/7/x86_64/primary_db                                | 4.8 MB   00:04

Loading mirror speeds from cached hostfile

* base: mirrors.btte.net

* extras: mirrors.btte.net

* updates: mirrors.nwsuaf.edu.cn

Resolving Dependencies

--> Running transaction check

---> Package httpd.x86_64 0:2.4.6-18.el7.centos will be installed

--> Processing Dependency: httpd-tools = 2.4.6-18.el7.centos for package: httpd-2.4.6-18.el7.centos.x86_64

--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-18.el7.centos.x86_64

--> Running transaction check

---> Package httpd-tools.x86_64 0:2.4.6-18.el7.centos will be installed

---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package           Arch         Version                     Repository     Size

================================================================================

Installing:

httpd             x86_64       2.4.6-18.el7.centos         updates       2.7 M

Installing for dependencies:

httpd-tools       x86_64       2.4.6-18.el7.centos         updates        77 k

mailcap           noarch       2.1.41-2.el7                base           31 k

Transaction Summary

================================================================================

Install  1 Package (+2 Dependent packages)

Total download size: 2.8 M

Installed size: 9.6 M

Is this ok [y/d/N]:

Downloading packages:

warning: /var/cache/yum/x86_64/7/base/packages/mailcap-2.1.41-2.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

Public key for mailcap-2.1.41-2.el7.noarch.rpm is not installed

(1/3): mailcap-2.1.41-2.el7.noarch.rpm                     |  31 kB   00:02

Public key for httpd-2.4.6-18.el7.centos.x86_64.rpm is not installed  00:00 ETA

(2/3): httpd-2.4.6-18.el7.centos.x86_64.rpm                | 2.7 MB   00:03

(3/3): httpd-tools-2.4.6-18.el7.centos.x86_64.rpm          |  77 kB   00:03

--------------------------------------------------------------------------------

Total                                              750 kB/s | 2.8 MB  00:03

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Importing GPG key 0xF4A80EB5:

Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"

Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5

Package    : centos-release-7-0.1406.el7.centos.2.3.x86_64 (@anaconda)

From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Is this ok [y/N]: y

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Warning: RPMDB altered outside of yum.

** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:

open-vm-tools-desktop-9.4.0-3.el7.x86_64 has missing requires of libhgfs.so.0()(64bit)

open-vm-tools-desktop-9.4.0-3.el7.x86_64 has missing requires of libvmtools.so.0()(64bit)

open-vm-tools-desktop-9.4.0-3.el7.x86_64 has missing requires of open-vm-tools(x86-64) = ('0', '9.4.0', '3.el7')

Installing : httpd-tools-2.4.6-18.el7.centos.x86_64                       1/3

Installing : mailcap-2.1.41-2.el7.noarch                                  2/3

Installing : httpd-2.4.6-18.el7.centos.x86_64                             3/3

Verifying  : mailcap-2.1.41-2.el7.noarch                                  1/3

Verifying  : httpd-tools-2.4.6-18.el7.centos.x86_64                       2/3

Verifying  : httpd-2.4.6-18.el7.centos.x86_64                             3/3

Installed:

httpd.x86_64 0:2.4.6-18.el7.centos

Dependency Installed:

httpd-tools.x86_64 0:2.4.6-18.el7.centos     mailcap.noarch 0:2.1.41-2.el7

Complete!

Step2# Congiure httpd configuration file named httpd.conf

Before edit httpd.config file, you’d better have a backup for this file, type:

cp httpd.conf httpd.conf.bak

Edit “/etc/httpd/conf/httpd.conf” file using “vim” command, type:

vim /etc/httpd/conf/httpd.conf

set new values for “ServerAdmin“, ” ServerName“, “AllowOverride” , “DirectoryIndex” and “keepAlive” fields just like the below:

ServerAdmin  itsprite@gmail.com         # set its value as admin's email address

ServerName    www.itsprite.com :80      # set its value as your web server's domain name

AllowOverride  all                             # set its as "all"

DirectoryIndex index.html index.php     # add file name if your www directory have index.php file.

DocumentRoot  "/var/www/html"           #By default, all requests are taken from this directory

Step3# Enable httpd service while system startup

issue the following command to start httpd server automatically while system booting up, type:

systemctl enable httpd.service

Outputs:

[root@osetc Desktop]# systemctl enable httpd.service

ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

Step4# Start Apache httpd service, issue the following command:

systemctl start httpd.service

Outputs:

[root@osetc Desktop]# systemctl status httpd.service

httpd.service - The Apache HTTP Server

Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)

Active: active (running) since Thu 2014-12-04 10:13:36 EST; 7s ago

Main PID: 12630 (httpd)

Status: "Processing requests..."

CGroup: /system.slice/httpd.service

├─12630 /usr/sbin/httpd -DFOREGROUND

├─12631 /usr/sbin/httpd -DFOREGROUND

├─12632 /usr/sbin/httpd -DFOREGROUND

├─12633 /usr/sbin/httpd -DFOREGROUND

├─12636 /usr/sbin/httpd -DFOREGROUND

└─12637 /usr/sbin/httpd -DFOREGROUND

Dec 04 10:13:36 osetc systemd[1]: Started The Apache HTTP Server.

Step5# Create a HTML test page under DocumentRoot directory (the default is “/var/www/html”), type:

$sudo echo "this is a test page" >/var/www/html/index.html

Step6# Verifying the test page can be resolved by Apache HTTP Server

Open firefox brower, and input address “127.0.0.1”, if you can see the below similar page, indicated that your Apache web server was setup successfully.