Install CentOS (minimal install).
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
Edit the file replacing all IP addresses according to your network requirements.
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:
To add the new server hostname to the hosts file, modily: /etc/hosts
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
If you now browse to the server's IP address, you should see Apache welcome message.
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
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:
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.
yum install mariadb-server
Start the database engine:
systemctl start mariadb
Secure the database:
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:
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
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 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.
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
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
Email logs are located in: