• Get In Touch
June 5, 2016

Install and Setup Joomla on CentOS-7

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Introduction

Joomla is an immensely popular and award-winning open source Content Management System (CMS) that enables users to build websites and create potent online applications in an unperturbed manner.

Absolute user-friendliness and flexibility make Joomla amongst the most sought-after CMS software out there. It uses a PHP application, in addition to a back-end database – in this case, MySQL. Joomla was created in 2005, and boasts of more than 10,000 add-ons for customised functionality. No wonder then that it remains the second most popular virtual content management systems out there.

Joomla enables you to build Web sites and powerful online applications. Many aspects, including its ease-of-use and extensibility have made Joomla the most popular website build and management software available. Best of all, Joomla is an open source solution that is freely available to everyone. Since Joomla is based on PHP and MySQL, you’re building powerful applications on an open platform anyone can use, share, and support.

Joomla is written in PHP, uses object-oriented programming (OOP) techniques and software design patterns, stores data in a MySQL, or PostgreSQL database and includes features such as page caching, RSS feeds, printable versions of pages, news flashes, blogs, search, and support for language internationalization.

This tutorial explains the process of installing Joomla on CentOS 7 in the form of a simple-to-follow guide.

A content management system is software that keeps track of every piece of content on your Web site, much like your local public library keeps track of books and stores them. Content can be simple text, photos, music, video, documents, or just about anything you can think of. A major advantage of using a CMS is that it requires almost no technical skill or knowledge to manage. Since the CMS manages all your content, you don’t have to.

Features

The following are core features of the Joomla CMS –

  • Completely database driven site engines
  • News, products, or services sections fully editable and manageable
  • Topics sections can be added to by contributing Authors
  • Fully customisable layouts including left, center, and right Menu boxes
  • Browser upload of images to your own library for use anywhere in the site
  • Dynamic Forum/Poll/Voting booth for on-the-spot results
  • Runs on Linux, FreeBSD, MacOSX server, Solaris, and AIX

Requirements

  • A server running CentOS 7.
  • A static IP Address for your server.
  • A non-root user account with sudo privilege set up on your server.

Getting Started

Let’s start make sure that your Centos-7 server is fully up to date.

You can update your server by running the following command:

sudo yum update -y

Install LAMP Stack

To get started, first you will need to install the LAMP (Apache2, MariaDB and PHP) stack before installing joomla.

You can easily install it by running the following command:

sudo yum install httpd mariadb mariadb-server php php-mysql -y

The line above will install everything that Joomla requires and some. During the installation of the above packages, you’ll be prompted to create a root password for MySQL database.

Create and confirm a root password. Remember it, because you’ll need it to connect to the Database server later to create a database for Joomla application.

Install & Setup Joomla

Before starting, update the system by running the following command:

sudo yum -y update

Let’s download tar to decompress the installation file and some dependencies that we will need to install Joomla.

sudo yum install wget unzip

Creating a Database and User for Joomla

For Joomla to function correctly, we must create a database. This tutorial uses MariaDB, so let’s access MariaDB with the following command,

mysql -u root -p

Now, we must first begin creating the database that Joomla will use. This can be accomplished with the following command replacing yourdbname with your database name,

CREATE DATABASE yourdbname;

Output:

    Query OK, 1 row affected (0.00 sec)

With the database created we must now create a user so it can access the database. This can be accomplished with the following command replacing yourjoomlauser with your desired username and replace yourjoomlapassword with your desired password.

CREATE USER yourjoomlauser@localhost IDENTIFIED BY 'yourjoomlapassword';

Output:

    Query OK, 0 rows affected (0.00 sec)

Next, we grant database access to your recently created user with the following command,

GRANT ALL PRIVILEGES ON yourdbname.* TO yourjoomlauser@localhost;

Output:

    Query OK, 0 rows affected (0.00 sec)

Finally, we must refresh MariaDB so the system can flush the newly added privileges and for the changes to take effect, then exit your session. This can be accomplished with the following commands,

FLUSH PRIVILEGES;
exit;

Next, restart MariaDB service and auto enable at system startup:

sudo systemctl restart mariadb.service
sudo systemctl enable mariadb.service

Installing Joomla

Download the most recent stable Joomla release. For this tutorial, that’s version 3.4.5. You can check here to find the most recent release.

wget https://github.com/joomla/joomla-cms/releases/download/3.4.5/Joomla_3.4.5-Stable-Full_Package.zip

After we have downloaded the package, we must move the zip file to the html directory. This can be accomplished with the following command:

sudo mv Joomla_3.4.5-Stable-Full_Package.zip /var/www/html

Now, change to that directory and unzip the to get ready for the installation:

sudo cd /var/www/html

Finally, we can continue with the Joomla installation by unzipping the installation file with the following command:

sudo unzip Joomla_3.4.5-Stable-Full_Package.zip

Furthermore, with the following command, we can apply the appropriate permissions for the Joomla directory that was just created.

sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html

Next, start Apache service and enable it to start on boot:

sudo systemctl start httpd
sudo systemctl enable httpd

Next, You will need to allow access from outside to port 80 and 443 through your firewall.
You can do this by running the following commands:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Now, reload the firewall service for the changes to take effect.

sudo firewall-cmd --reload

Joomla’s Web Configuration

Your server is now configured correctly to run the web-based installation by going to the following:

http://your.server.IP.address/joomla

You will see the initial Joomla installation page. Insert your site details and then click “Next.”

On next tab insert your MariaDB database information within the forms. Insert your database information that was set up at the beginning of this guide. Once done click “Next.”

Take a look at the overview and make sure your information is correct. Once satisfied click “Install.”

Main Configuration

HP_NO_IMG/data/uploads/users/fd35bf73-10f3-43bf-b753-4edc26228307/1278027746.png” alt=”” />

Database Configuration

HP_NO_IMG/data/uploads/users/fd35bf73-10f3-43bf-b753-4edc26228307/1421042650.png” alt=”” />

Overview

HP_NO_IMG/data/uploads/users/fd35bf73-10f3-43bf-b753-4edc26228307/534209964.png” alt=”” />

Enjoy!!

Conclusion

In this tutotial you learned how to install & setup Joomla with Apache on CentOS 7 server. Joomla is designed to be easy to install and set up even if you’re not an advanced user. Since Joomla is so easy to use, as a Web designer or developer, you can quickly build sites for your clients. Then, with a minimal amount of instruction, you can empower your clients to easily manage their own sites themselves. Once you setup Joomla successfully, you can now start building your website content!.

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]