In this tutorial we are going to provide you with step by step instructions on how to install Zikula on an Ubuntu 16.04 VPS. Zikula is an open-source web application framework written in PHP.
At the time of writing this tutorial, the latest stable version of Zikula is 2.0.1 and it requires:
- PHP 5.5.9 or higher (preferably the latest), with mbstring, JSON, curl, Intl, mysql and GD PHP extensions enabled.
- MySQL 5, MariaDB 5 or later
- Apache web server 2.0 or higher compiled with mod_rewrite module and AllowOverride set to ‘All’ (please note, the default setting for AllowOverride in Apache 2.3.9 and higher is ‘None’).
This install guide assumes that Apache is already installed and configured on your virtual server.
Let’s start with the installation.
Make sure your server OS packages are fully up-to-date:
apt-get update apt-get upgrade
Install the required packages:
apt-get install php7.0-curl php7.0-gd php7.0-mbstring php7.0-mysql php7.0-intl
Enable Apache rewrite module if it is not already done so:
Restart the Apache service for the changes to take effect:
service apache2 restart
Download the latest version of Zikula available at https://github.com/zikula/core/releases to the /opt/ directory on the server:
cd /opt/ wget https://github.com/zikula/core/releases/download/2.0.1/Zikula_Core-2.0.1.zip unzip Zikula_Core-2.0.1.zip mv 2.0 /var/www/html/zikula
All files have to be readable by the web server, so set a proper ownership:
chown www-data:www-data -R /var/www/html/zikula
Create a new MySQL database and user:
mysql -u root -p mysql> SET GLOBAL sql_mode=''; mysql> CREATE DATABASE zikuladb; mysql> CREATE USER 'zikulauser'@'localhost' IDENTIFIED BY 'y0uR-pa5sW0rd'; mysql> GRANT ALL PRIVILEGES ON zikuladb.* TO 'zikulauser'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit
Do not forget to replace ‘y0uR-pa5sW0rd’ with a strong password.
Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘zikula.conf’ on your virtual server:
touch /etc/apache2/sites-available/zikula.conf ln -s /etc/apache2/sites-available/zikula.conf /etc/apache2/sites-enabled/zikula.conf vi /etc/apache2/sites-available/zikula.conf
Then, add the following lines:
<VirtualHost *:80> ServerAdmin email@example.com DocumentRoot /var/www/html/zikula/ ServerName your-domain.com ServerAlias www.your-domain.com <Directory /var/www/html/zikula/> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/your-domain.com-error_log CustomLog /var/log/apache2/your-domain.com-access_log common </VirtualHost>
Remove the 000-default.conf file:
Restart the Apache web server for the changes to take effect:
service apache2 restart
Open http://your-domain.com in your favorite web browser and follow the easy instructions on the install screen inserting the necessary information as requested:
Database type: MySQL Storage Engine: InnoDB Database Host: localhost Database Username: zikulauser Database Password: y0uR-pa5sW0rd // change this password with your actual password Database Name: zikuladb
On the next page, create a new Zikula administrator account.
Click ‘Begin Installer’.
That is it. Zikula has been installed on your server.
Log in to the Zikula administration back-end and start creating new content, install new extensions, add new users and so on…
Of course you don’t have to do any of this if you use one of our Linux VPS Hosting services, in which case you can simply ask our expert Linux admins to install Zikula for you. They are available 24×7 and will take care of your request immediately.
PS. If you enjoy reading our blog, feel free to share it on social networks using the shortcuts below, or simply leave a comment.