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 Rcs 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
SSH to your server as a non-root user with sudo access.
Update the system package list to update all packages to the latest available versions.
$ sudo apt update
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
List available time zones and choose your preference.
$ sudo timedatectl list-timezones
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
Restart Apache2 service for all changes made to take effect.
$ sudo systemctl restart apache2
2. Create TYPO3 Database
Log in to MySQL shell. At the password prompt, just press Enter to continue.
$ sudo mysql -u root -p
Create a database called
typo3
.CREATE DATABASE typo3;
Create a database user called
typo3user
with a passwordStrongPassword
.CREATE USER 'typo3user'@'localhost' IDENTIFIED BY 'StrongPassword';
Grant the user full access to the database.
GRANT ALL ON typo3.* TO 'typo3user'@'localhost' WITH GRANT OPTION;
Save the changes made to the database.
FLUSH PRIVILEGES;
Exit MySQL shell.
exit;
3. Install TYPO3 CMS
Install
curl
.$ sudo apt install curl -y
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
Extract the downloaded files.
$ sudo tar -xvzf typo3_src.tgz
Create the installation directory
/var/www/html/typo3
.$ sudo mkdir /var/www/html/typo3
Move the extracted files into the installation directory.
$ sudo mv typo3_src-11.5.1/* /var/www/html/typo3
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
Change ownership of the installation directory.
$ sudo chown -R www-data:www-data /var/www/html/typo3
Change access permissions for the directory.
$ sudo chmod -R 755 /var/www/html/typo3
4. Configure Apache2
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>
Disable Apache default configuration file.
$ sudo a2dissite 000-default.conf
Enable TYPO3 CMS Apache configuration file.
$ sudo a2ensite typo3.conf
Enable Apache rewrite mode.
$ sudo a2enmod rewrite
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.