How to Install TYPO3 CMS on CentOS 7

Updated on August 4, 2017
How to Install TYPO3 CMS on CentOS 7 header image

TYPO3 is a free and open source enterprise content management system. It is written in PHP and uses MySQL to store its data. TYPO3 is a responsive, mobile ready, multilingual and secure CMS. It can be easily customized and extended without writing any code.

In this tutorial, you will learn to install TYPO3 CMS on CentOS 7.

Prerequisites

  • A Vultr CentOS 7 server instance.
  • A sudo user.

Step 1: System update

Before installing any packages on the CentOS server instance, it is recommended to update the system. Log in using the sudo user and run the following commands to update the system.

sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now

Once the system has rebooted, log in again as the sudo user and proceed to the next step.

Step 2: Install Apache web server

Install the Apache web server.

sudo yum -y install httpd

Start Apache and enable it to automatically run at boot time.

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Step 3: Install PHP 7.1

TYPO3 requires PHP greater than 7. In this tutorial, we will use PHP 7.1 to obtain maximum security and stability. First, add and enable the Remi repository.

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71

Install the latest version of PHP along with the modules required by TYPO3.

sudo yum -y install php php-gd php-json php-mysqli php-curl php-cli php-apcu php-soap php-xml php-zip php-mbstring freetype php-bcmath php-fileinfo ImageMagick

Configure php.ini using any text editor of your choice.

sudo nano /etc/php.ini

Find the following lines and change their values according to the instructions provided.

max_execution_time = 30  // change it to 240
max_input_vars = 1000  // Uncomment and change the value to 1500

Step 4: Install MariaDB

MariaDB is a fork of the MySQL database server. Install MariaDB.

sudo yum -y install mariadb mariadb-server

Start MariaDB and enable it to automatically start at boot time.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Before configuring the database, you will need to secure MariaDB first. You can secure it by running the mysql_secure_installation script:

sudo mysql_secure_installation

You will be asked for the current MariaDB root password. By default, there is no root password on a fresh MariaDB installation. Press the "enter" key to proceed. Set a strong password for the root user of your MariaDB server and answer "Y" to all of the other questions. The questions asked are self-explanatory.

Step 5: Create database for TYPO3

Log into the MySQL shell as the root user by running the following command.

mysql -u root -p

Provide the password for the MariaDB root user to log in.

Run the following queries to create a database and a database user for TYPO3 installation.

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

You can replace the database name typo3_data and username typo3_user according to your choice. Be sure to change StrongPassword to a very strong password.

Step 6: Install TYPO3

Switch to the Apache web root directory by running:

cd /var/www 

Download the TYPO3 archive using:

sudo wget https://get.typo3.org/8.7.3 -O typo3.tar.gz

You can always find the link to the latest version of software on the TYPO3 download page.

Extract the archive:

sudo tar xzf typo3.tar.gz

Rename the extracted directory for convenience.

sudo mv typo3*/ typo3/

Rename the .htaccess file by running:

sudo mv typo3/_.htaccess typo3/.htaccess

Create an empty file with filename FIRST_INSTALL. The web installer checks for this file before starting the installation.

sudo touch /var/www/typo3/FIRST_INSTALL

Provide the appropriate ownership by running:

sudo chown -R apache:apache /var/www/typo3

Allow HTTP traffic on port 80 through the firewall.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Step 7: Create virtual host

Run the following command to create a virtual host for your TYPO3 site.

sudo nano /etc/httpd/conf.d/cms.example.com.conf

Populate the file with:

<VirtualHost *:80>
    ServerName cms.example.com
    DocumentRoot /var/www/typo3
    <Directory /var/www/typo3>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Restart Apache.

sudo systemctl restart httpd

Step 8: Finish installation

Your TYPO3 CMS installation is now complete. You can finish configuring TYPO3 through your web browser. Open your web browser and navigate to the URL http://cms.example.com with the actual domain name pointed towards your Vultr VPS.