In this tutorial, we will show you how to install Kanboard on a Debian 9 Server.
Prerequisites
- A computer or server running Debian 9
- SSH access with a root-privileged account, or access to the root user itself
Step 1 – Install Package Updates
Log in to your Debian 9 VPS
ssh root@IP_Address -p Port_number
You can check whether you have the proper Debian version installed on your server with the following command:
# lsb_release -a
You should get this output:
Distributor ID: Debian Description: Debian GNU/Linux 9.9 (Stretch) Release: 9.9 Codename: stretch
Then, run the following command to make sure that all installed packages on the server are updated to the latest available version. This maximizes compatibility and gives you all of the latest features.
# apt update && apt upgrade
Step 2 – Install the Apache Web Server
Kanboard supports Apache, Nginx, Microsoft IIS, and Caddy Server web servers. If you choose Apache, make sure you have the mod_version
module installed. Make sure that you do not have the mod_security
module installed, because Kanboard is not compatible with mod_security
. In this tutorial, we will install and use Apache as a web server.
Let’s install Apache by issuing this command:
# apt install apache2 -y
We would also want to enable it to run on server boot:
# systemctl enable apache2 # systemctl start apache2
2.1. Create an Apache VirtualHost
We can now create our virtual host files. The virtual host configuration files usually end with the .conf
extension.
Run the following command to create the virtual host configuration file for our web domain, yourdomain.com
:
Make sure you replace all instances of yourdomain.com
with your registered domain name in order for the configuration file to work.
# nano /etc/apache2/sites-available/yourdomain.com.conf
And add the following content to the file:
<VirtualHost *:80> ServerAdmin admin@yourdomain.com ServerName yourdomain.com ServerAlias www.yourdomain.com DocumentRoot /var/www/html/kanboard ErrorLog ${APACHE_LOG_DIR}/yourdomain.com_error.log CustomLog ${APACHE_LOG_DIR}/yourdomain.com_access.log combined <Directory /var/www/html/kanboard/> AllowOverride FileInfo Options=All,MultiViews AuthConfig </Directory> </VirtualHost>
Once added and saved, we can enable the virtual host by running this command:
# a2ensite yourdomain.com
# systemctl restart apache2
Step 3 – Install a Database Server
Kanboard supports the following types of databases
- SQLite
- MySQL
- PostgreSQL
In this tutorial, we will use MySQL/MariaDB as the database storage engine.
# apt install mariadb-server
To start the MariaDB service and enable it to start on boot, execute the following commands:
# systemctl start mariadb # systemctl enable mariadb
Now, you can skip the following step if you prefer not to have a MySQL root password.
# mysql_secure_installation
When prompted, answer the questions below by following the guide.
Enter current password for root (enter for none): Just press the [Enter] key, there is no password set by default Set root password? [Y/n]: Y New password: Enter password Re-enter new password: Repeat password Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
If you followed the above step, then you will have a password set for your MySQL root user, so you can run this command to access the MySQL shell:
# mysql -u root -p
3.1 Create a Database
Let’s proceed with creating a database for Kanboard. Run these commands one by one to log into the MySQL shell, create a database, create a user and grant access to the new database, and save the changes:
# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE kanboard; MariaDB [(none)]> GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard'@'localhost' IDENTIFIED BY 'M0d1fyth15'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Make sure you replace the phrase M0d1fyth15
with a unique and strong password.
After that is done, run the following command to import the database schema to the newly created Kanboard database.
# mysql -u root -p kanboard < /var/www/html/kanboard/app/Schema/Sql/mysql.sql
Step 4 – Install PHP and all Necessary PHP Modules
Since version 1.2, Kanboard requires at least PHP 5.6, and a later or the latest version of PHP is recommended. We will use PHP 7.0 in this tutorial. This command will install PHP and all of the required packages for it to function with Kanboard:
# apt install php php-mbstring php-imap php-mysql libapache2-mod-php7.0 php-gd php-json php-xml php-opcache php-fpm
Now that PHP 7.2 is installed, let’s check and verify it.
# php -v
Here’s the output we expect to see:
PHP 7.0.33-0+deb9u3 (cli) (built: Mar 8 2019 10:01:24) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies
Step 5 – Install Kanboard
In this step, we will download and install Kanboard from GitHub. First, let’s make sure that we have the git package installed:
# apt install git -y
From there, let’s switch into the Apache web server directory and clone the Kanboard GitHub project into it:
# cd /var/www/html/ # git clone https://github.com/kanboard/kanboard.git
After that, create a configuration file by copying the example that was included.
# cp kanboard/config.default.php kanboard/config.php
Let’s also make sure that all of the files in the directory are owned by the www-data
user, which is the user that belongs to Apache:
# chown -R www-data: /var/www/html/
Now, it is time to modify the database configuration file to match with the database credentials.
# nano /var/www/html/kanboard/config.php
Modify the values as follows (change the values as needed if you used values different from the ones in the tutorial):
// Database driver: sqlite, mysql or postgres (sqlite by default) define('DB_DRIVER', 'mysql'); // Mysql/Postgres username define('DB_USERNAME', 'kanboard'); // Mysql/Postgres password define('DB_PASSWORD', 'M0d1fyth15'); // Mysql/Postgres hostname define('DB_HOSTNAME', 'localhost'); // Mysql/Postgres database name define('DB_NAME', 'kanboard');
At this point, Kanboard has been successfully installed – you can navigate to your http://yourdomain.com
to start using it. You can use the following credentials to access the Kanboard backend.
Username: admin Password: admin
You will want to update the default password as soon as possible.
Additionally, if you want your Kanboard installation to use pretty permalinks, you can enable it by enabling the feature in your config.php
file
define('ENABLE_URL_REWRITE', true);
Make sure that your Apache mod rewrite is also enabled. You can do so by running this command:
# a2enmod rewrite # systemctl restart apache2
That’s all there is to it – you should be able to access your Kanboard application at http://yourdomain.com
now.
PS. If you liked this post on how to install Kanboard on Debian 9, please share it with your friends on the social networks using the buttons below or simply leave a reply in the comments sections. Thanks.