If you’re looking for a new Content Management System (CMS) that is flexible, user-friendly, powerful, and (best of all) mobile-friendly, look no further than Typo3. This particular CMS’s focus is on extensions. The installation gives you a base from, which you can install thousands of extensions to create the exact CMS to fit your data center needs. Typo3’s flexibility is hard to beat by any other CMS tool of its kind.

I want to show you how to install this system so that you can have an on-premises Content Management System perfectly tooled to serve your business. I’ll demonstrate the process on Ubuntu Server 16.04 (as the install on Ubuntu 18.04 isn’t viable at the moment, thanks to PHP dependencies).

SEE: Quick glossary: Storage (Tech Pro Research)

What you need

The only things you will need are a working Ubuntu Server 16.04 and a user account with sudo privileges. With those in check, let’s install.


The first thing to do is update and upgrade your server. Know that, should your kernel be upgraded during this process, you will need to reboot the server (for the updates to take effect). Because of this, I highly recommend you run these commands during a time when a reboot can be taken care of, without a stoppage of work.

To run the update/upgrade, open a terminal window and issue the following two commands:

sudo apt-get update
sudo apt-get upgrade

Install Apache and MySQL

Let’s assume you do not have either Apache or MySQL installed on the server (both of which are necessary). To install Apache, issue the following command:

sudo apt-get -y install apache2

Next, install MySQL with the command:

sudo apt-get -y install mysql-server

During the installation of MySQL, you will be asked to create an admin password. Make that a strong password.

Start and enable both services with the following commands:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

Install and configure PHP

Next we need to install PHP and a number of modules. This is accomplished with the following command:

sudo apt-get -y install php php-gd php-json php-mysqli php-curl php-cli php-apcu php-soap php-xml php-zip php-mbstring libfreetype6 php-bcmath php-fileinfo imagemagick libapache2-mod-php7.0

Before we move on, there’s a quick configuration that must be done in the php.ini file. Issue the command:

sudo nano /etc/php/7.0/apache2/php.ini

In that file, look for the following lines:

max_execution_time = 30
; max_input_vars = 1000

Change the above lines to:

max_execution_time = 240
max_input_vars = 1500

Save and close that file.

Create the database

Now we must create a database for Typo3. Gain access to the MySQL prompt with the command:

mysql -u root -p

Once at the MySQL prompt, issue the following commands:

CREATE DATABASE typo3_data CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'typo3_user'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON typo3_data.* TO 'typo3_user'@'localhost';

where PASSWORD is a unique, strong password.

Install Typo3

We’ve finally reached the installation portion. Change into the Apache web root with the command:

cd /var/www/html

Download the Typo3 installer with the command:

wget --content-disposition get.typo3.org/8

Unpack the archive with the command:

sudo tar xvzf typo3*.tar.gz

Rename the newly created file with the command:

sudo mv typo3_src-XXX typo3

Where XXX is the release number.

Rename the .htaccess file with the command:

sudo mv typo3/_.htaccess typo3/.htaccess

Create a blank FIRST_INSTALL file with the command:

sudo touch typo3/FIRST_INSTALL

Create the proper ownership with the following command:

sudo chown -R www-data:www-data typo3

Configure Apache

We now must create our virtual host. Create an empty configuration file with the command:

sudo nano /etc/apache2/sites-available/typo3.conf

Paste the following content into that new file:

ServerName cms.example.com
DocumentRoot /var/www/html/typo3

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Save and close that file. Activate the new configuration with the command:

sudo a2ensite typo3.conf

Finally, restart Apache with the command:

sudo systemctl restart apache2

Finish the installation

Finally, you can point your browser to http://SERVER_IP/typo3 (where SERVER_IP is the IP address of your server). You will be greeted by a user-friendly web installer where you can complete the installation.

The Typo3 web installer is a simple-to-use wizard.

For the web installer, you will be asked to configure the following:

  • Database connection
  • Select the database
  • Create an admin user
  • If you want to create a pre-configured site

That’s it. When this completes, you can log in and set up your Typo3 CMS. Congratulations, you now have an incredibly powerful Content Management System ready to serve your business.