How to Install Zikula on Ubuntu 20.04

Updated on November 21, 2023
How to Install Zikula on Ubuntu 20.04 header image

Introduction

Zikula is a free open-source Content Management System (CMS) that allows you to build websites and cloud-based applications. Zikula uses the Symfony 3 framework and features jQuery, Bootstrap, and Font Awesome on the front-end. You can enhance your Zikula site with modules and customizable themes maintained by a community of active developers. Zikula's API allows you to integrate third-party applications.

This guide explains how to install Zikula CMS with a LAMP stack on Ubuntu 20.04.

Prerequisites

1. Install Dependencies

SSH to your Linux server and update the package information index.

$ sudo apt update

Install the required PHP libraries.

$ sudo apt install -y libapache2-mod-php

Enable the Apache mod_rewrite module to allow Zikula to use user-friendly URLs.

$ sudo a2enmod rewrite

Restart Apache to load the new configurations.

$ sudo systemctl restart apache2

Install the unzip utility.

$ sudo apt install -y unzip

2. Create a Database and User Account

Zikula supports multiple database management systems. This guide explains how to use MySQL or MariaDB.

Log in to your database server as root.

$ sudo mysql -u root -p

Create a zikula_cms database and a privileged zikula_cms_user account. Replace EXAMPLE_PASSWORD with a strong value for security.

If you use MySQL:

mysql> CREATE DATABASE zikula_cms;
        CREATE USER 'zikula_cms_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'EXAMPLE_PASSWORD';
        GRANT ALL PRIVILEGES ON zikula_cms.* TO 'zikula_cms_user'@'localhost';           
        FLUSH PRIVILEGES;

If you use MariaDB:

MariaDB> CREATE DATABASE zikula_cms;
            GRANT ALL PRIVILEGES on zikula_cms.* TO 'zikula_cms_user'@'localhost' identified by 'EXAMPLE_PASSWORD';
            FLUSH PRIVILEGES;

Log out of the database server.

> QUIT;

3. Download Zikula

Create a directory for Zikula under the root of your web server.

$ sudo mkdir -p /var/www/zikula_cms

Change to the /tmp directory.

$ cd /tmp

Navigate to the Zikula release page in a web browser to find the download URL of the latest stable version.

https://github.com/zikula/core/releases/

Return to your SSH session and download the release file from GitHub. Use the URL you found in the previous step.

$ wget https://github.com/zikula/core/releases/download/3.0.3/zikula.zip         

Unzip the archive.

$ unzip zikula.zip

Copy the files to /var/www/zikula_cms/.

$ sudo rsync -avu zikula/ /var/www/zikula_cms/

Give www-data ownership of the files.

$ sudo chown -R www-data:www-data /var/www/zikula_cms

4. Create a Virtual Host File

Disable the default virtual host, it's not required for Zikula.

$ sudo a2dissite 000-default.conf

Create a new virtual host file for Zikula.

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

Paste the information below to the configuration file. Replace example.com with the correct domain name or public IP address of your server.

<VirtualHost *:80>

    ServerName example.com

    DocumentRoot "/var/www/zikula_cms/public"

    <Directory "/var/www/zikula_cms/public">
        Require all granted
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Save and close the file.

Enable the new virtual host.

$ sudo a2ensite zikula_cms.conf

Restart Apache to load the new virtual host.

$ sudo systemctl restart apache2

5 - Complete the Zikula Installation

Visit your server's public IP address or domain name in a web browser.

Click Install Zikula! and follow the on-screen wizard to complete the installation process.

More Information

For more information, please see the official documentation.