Install and configure CentOS web server (LAMP)

Install CentOS (minimal install).

CentOS installation

Configure network

Run: ip a to find your network adaptor's name. In my case the adaptor is called ens32.

Navigate to /etc/sysconfig/network-scripts/ and open network configuration file with your network adaptor name, i.e. ifcfg-ens32

vi ifcfg-ens32

Edit the file replacing all IP addresses according to your network requirements. 

HWADDR =00:0B:27:A1:DC:1A
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DMS2=208.67.222.222

Start network:

service network start

Run: ip a again to make sure configuration was applied correctly. You should now have working network connection.

If you need to change anything, modify the same file and run:

service network restart

Install nano editor (optional)

I'm not a big fan of vi. My preferred editor is nano. To install it run:

yum install nano

Change the server hostname

CentOS servers have 3 type of hostnames: static, transient and pretty.

To change all 3 hostnames run:

hostnamectl set-hostname SERVER-NAME

To review the hostnames:
hostnamectl --static
hostnamectl --transient
hostnamectl --pretty

To add the new server hostname to the hosts file, modily: /etc/hosts

Install Apache 

yum install httpd

Enable Apache service to start when booting:

systemctl enable httpd.service

Start Apache service:

systemctl start httpd.service

Other useful commands:
Check if Apache running: sudo systemctl is-active httpd.service
Stop Apache: sudo systemctl stop httpd.service
Restart Apache: sudo systemctl restart httpd.service

Default HTML directory: /var/www/html

Configure firewall to allow HTTP access

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --reload

If you now browse to the server's IP address, you should see Apache welcome message.

Apache test page

If you need to temporary disable firewall, run:

systemctl stop firewalld

To start firewall again:

systemctl start firewalld

To check firewall status:

systemctl status firewalld

Install PHP

yum install php

Restart Apache: systemctl restart httpd.service

To test PHP:

Create file /var/www/html/info.php with content:

<?php phpinfo(); ?>

Then browse to http://192.168.1.10/info.php
Where 192.168.1.10 - server's IP address

You should get PHP test page:

PHP test page

Install MySQL (MariaDB)

CantOS 7 is now distributing MariaDB instead than MySQL. MariaDB is a community developed fork of MySQL that is designed to be a drop-in replacement for MySQL.

Install MariaDB

yum install mariadb-server

Start the database engine:

systemctl start mariadb

Secure the database:

mysql_secure_installation

Just follow the wizard and complete following: setup root password, disable anonymous user, disable root remote login, delete test database, reload privilege tables.

Enable MariaDB to start on boot:

systemctl enable mariadb.service

Other useful MariaDB commands:

Check version:
mysql --version
Connect to console:
mysql -u root -p

Configure firewall to allow remote access to MySQL (MariaDB)

This is only required if you need your databases to be accessible over the network

firewall-cmd --permanent --zone=public --add-service=mysql

firewall-cmd --reload

Install phpMyAdmin (optional)

phpMyAdmin is not included in default CentOS repository therefore we'll nee to add EPEL (Extra Packages for Enterprise Linux) repo.

EPEL can be installed by running:

yum install epel-release

Check repository list and make sure EPEL is now present:

yum repolist

yum repolist

Install phpMyAdmin:

yum install phpmyadmin

Navigate to /etc/httpd/conf.d and edit file phpMyAdmin.conf.
You need to fine lines: Require ip 127.0.0.1 and Allow from 127.0.0.1, and next to them add new lines with the same test replacing 127.0.0.1 with the IP you will be connecting from.

Restart Apache:

systemctl restart httpd.service

To make sure that phpMyAdmin is working, connect to the server's ip address, adding /phpMyAdmin at the end on the URL (i.e. http://192.168.1.10/phpMyAdmin) and you should be greeted with phpMyAdmin login page

phpMyAdmin login page

Install Sendmail (optional)

If you intend to use Sendmail, install it by running:

 

yum install sendmail

yum install sendmail-cf

 

To restart Sendmail service:

service sendmail restart

 

Sendmail path:
/usr/sbin/sendmail

 

Email logs are located in:

/var/log/maillog

 

 



Newsletter

Subscribe to receive occasional updates on new posts.
Your email will not be used for any other purpose and you can unsubscribe at any time.
Please wait