Install TYPO3 CMS on Ubuntu 20.04

Updated on November 21, 2023
Install TYPO3 CMS on Ubuntu 20.04 header image

Introduction

TYPO3 is a free, open-source enterprise Content Management System (CMS) based on PHP. It's flexible, reliable, and scalable with a wide variety of possible customizations. In addition, it supports several different operating systems with easy installation. Some important features are:

  • Supports management of multiple sites.
  • Smart content management enables creating and delivering content across all digital channels.
  • Digital marketing to integrate digital marketing tools.
  • Provides multilingual installations for global use.

This article describes how to install TYPO3 CMS on Ubuntu 20.04 server.

Prerequisites

  • Deploy a fully updated Vultr Ubuntu 20.04 Server.
  • Create a non-root user with sudo access.
  • PHP >= 7.4.1 <= 8.0.99.
  • MySQL 5.7+ / MariaDB / Postgres / SQLite support.

1. Install Required Packages

  1. SSH to your server as a non-root user with sudo access.

  2. Update the system package list to update all packages to the latest available versions.

     $ sudo apt update
  3. Install PHP 7.4 and more modules.

     $ sudo apt install apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-json php7.4-common php7.4-gmp php7.4-curl php7.4-mysql php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-cli php7.4-xml php7.4-zip php7.4-imap wget unzip -y
  4. List available time zones and choose your preference.

     $ sudo timedatectl list-timezones
  5. Edit the PHP configuration file.

     $ sudo nano /etc/php/7.4/apache2/php.ini

    Change the following values, and replace Africa/Nairobi with your timezone save and close the file. To search for a specific line, use Control+W, enter search phrase then press Enter.

     max_execution_time = 240
     memory_limit = 256M
     upload_max_filesize = 100M
     post_max_size = 100M
     max_input_vars = 1500
     date.timezone = Africa/Nairobi
  6. Restart Apache2 service for all changes made to take effect.

     $ sudo systemctl restart apache2

2. Create TYPO3 Database

  1. Log in to MySQL shell. At the password prompt, just press Enter to continue.

     $ sudo mysql -u root -p
  2. Create a database called typo3.

     CREATE DATABASE typo3;
  3. Create a database user called typo3user with a password StrongPassword.

     CREATE USER 'typo3user'@'localhost' IDENTIFIED BY 'StrongPassword';
  4. Grant the user full access to the database.

     GRANT ALL ON typo3.* TO 'typo3user'@'localhost' WITH GRANT OPTION;
  5. Save the changes made to the database.

     FLUSH PRIVILEGES;
  6. Exit MySQL shell.

     exit;

3. Install TYPO3 CMS

  1. Install curl.

     $ sudo apt install curl -y
  2. Download the latest release version of TYPO3 CMS. To find the latest version, visit the official download page.

     $ sudo curl -L -o typo3_src.tgz https://get.typo3.org/11.5.1
  3. Extract the downloaded files.

     $ sudo tar -xvzf typo3_src.tgz
  4. Create the installation directory /var/www/html/typo3.

     $ sudo mkdir /var/www/html/typo3
  5. Move the extracted files into the installation directory.

     $ sudo mv typo3_src-11.5.1/* /var/www/html/typo3
  6. For a fresh TYPO3 CMS server install, create a file named FIRST_INSTALL on the web root directory.

     $ sudo touch /var/www/html/typo3/FIRST_INSTALL
  7. Change ownership of the installation directory.

     $ sudo chown -R www-data:www-data /var/www/html/typo3
  8. Change access permissions for the directory.

     $ sudo chmod -R 755 /var/www/html/typo3

4. Configure Apache2

  1. Create a new Apache configuration file called typo3.conf.

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

    Add the following code to the file. Save and close the file.

     <VirtualHost *:80>
    
         ServerAdmin admin@example.com
         DocumentRoot /var/www/html/typo3
         ServerName example.com
         ServerAlias www.example.com
    
          <Directory /var/www/html/typo3/>
              Options +FollowSymlinks
              AllowOverride All
              Require all granted
          </Directory>
    
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
    
     </VirtualHost>
  2. Disable Apache default configuration file.

     $ sudo a2dissite 000-default.conf
  3. Enable TYPO3 CMS Apache configuration file.

     $ sudo a2ensite typo3.conf
  4. Enable Apache rewrite mode.

     $ sudo a2enmod rewrite
  5. Restart Apache service.

     $ sudo systemctl restart apache2

5. Access TYPO3 CMS Web Interface

To access the TYPO3 CMS Web Interface, go to your browser and visit http://Server_IP/. For example:

http://192.0.2.11/

Conclusion

You have installed TYPO3 CMS on your server. Access the Installation Wizard screen to complete installation by connecting to the database you created, creating an administrator account. You can now access the Dashboard and add content to manage.

More Information

To learn more about using TYPO3 CMS, go to the official documentation page.