Upgrading from CentOS 6 to CentOS7? Here are some gotchas

Published on Aug 25, 2014

CentOS 7 is out and if you're like me, you've probably been working on yet another side project you want to bring online. In this short article I'm just writing down some gotchas I ran into when installing and configuring CentOS7 after having working with version 6 for some years.

Installing CentOS 7 via netinstall

I'm a fan of using the netinstall, which downloads the latest version of CentOS for you. All you need to do is download the netinstall ISO, hook it up to your Virtual Box drive and boot into the installer. If you are just looking for the netinstall iso, click here to download the ISO from a Belgian mirror. I'm sticking to this fine Belgian mirror for the installation source as well: http://mirror.myip.be/pub/centos/7/os/x86_64/

Installing a LAMP-stack

I assume you already know how to install CentOS using Virtual Box. If not, see this tutorial that sums it all up. In CentOS 6, one would normally run a yum install php httpd mysql mysql-server to install all the required packages for setting up a LAMP-stack. Things have changed a little in CentOS 7.

MySQL is out, MariaDB is in

MySQL has been replaced with MariaDB which simply is a drop-in replacement for MySQL. As far as I know the large Linux repositories all moved over to MariaDB instead of MySQL because of the commercial and thus uncertain direction MySQL is heading. MariaDB is backwards-compatible with MySQL and fully open source.

Want more details? Here you go buddy. So don't worry if you can't find mysql in yum, just use mariadb instead and you'll be fine. Of course, make sure to run mysql_secure_installation after installing. yum install httpd mariadb mariadb-server httpd php


In Centos6 (re)starting services like httpd on reboot was done by using init scripts. In Centos7, managing services is now under control of systemd. Here are some shortcuts to get you started. systemctl status httpd will show you whether the service (in this example httpd) is enabled (en will launch on reboot) or not. It will also show you if a service is active or inactive. systemctl enable httpd will enable the service so that it will launch on reboot systemctl disable httpd will disable the service systemctl is-enabled httpd will show you whether a service is enabled or not systemctl start httpd will start the service (without enabling it) systemctl stop httpd will stop the service (without disabling it) systemctl restart httpd will restart the service

systemctl list-unit-files --type=serviceshows all your services and corresponding statuses in a glimpse If apache is running and your firewall isn't blocking connections (iptables has been replaced with firewalld), you should now be able to surf to your server's IP and see the apache test page. Apache on Centos7 If you can't surf to your server IP, stop firewalld for a minute or better, add the following rule to allow traffic on the http service: firewall-cmd --zone=public --add-port=http/tcp --permanent Restart firewalld after the command above to activate these changes and you should be all set. Good luck penguins!

No comments? But that’s like a Gin & Tonic without the ice?

I’ve removed the comments but you can shoot me a message on LinkedIn to keep the conversation going.