How to Install Zikula on Ubuntu 20.04
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
- Install a LAMP stack on a new Ubuntu 20.04 cloud server, or use a Vultr Marketplace LAMP server.
- Create a non-root user with sudo access.
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.