How to Install Zikula on Ubuntu 20.04

Updated on September 16, 2021
How to Install Zikula on Ubuntu 20.04 header image


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.


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';           

If you use MariaDB:

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

Log out of the database server.


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.

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

$ wget         

Unzip the archive.

$ unzip

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 with the correct domain name or public IP address of your server.

<VirtualHost *:80>


    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

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


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.