Guides 11792 Published by

The guide explains how to install the lightweight, open‑source kanboard on a fresh CentOS 8 server by walking through each command and its purpose, from updating the system to enabling the PHP 7.4 stream via REMI and setting up a LAMP stack with Apache, MariaDB, and required PHP extensions. It details database security steps—running mysql_secure_installation, creating an isolated kanboard database and user, and configuring proper file permissions for the web root so that Apache can write configuration files without exposing the server to risk. The tutorial also includes instructions for setting up a virtual host, restarting services, and completing the setup through the web UI, while noting common pitfalls such as “403 Forbidden” errors and socket mismatches between PHP‑fpm and MariaDB. Finally, it shares a real‑world hiccup where an incorrect MySQL socket caused connection failures and shows how to resolve it with a quick configuration tweak.



Install Kanban (kanboard) on CentOS 8

Want to run a lightweight, open‑source kanban board on your new CentOS 8 server? This guide walks you through the exact commands, explains why each one matters, and shows a real‑world hiccup I ran into once my database permissions were wrong.

Why go straight to the metal?

You could spin up a Docker container or use a PaaS, but installing directly on CentOS gives you full control over PHP, MySQL/MariaDB, and file ownership—exactly what most power users prefer. Plus, it keeps your stack leaner than those bloated “all‑in‑one” images.

Step 1: Update the system
sudo dnf update -y

The -y flag saves you from a tedious yes/no prompt. Without this, you’ll end up with an out‑of‑date kernel that might not play nicely with newer PHP modules.

Step 2: Add EPEL and REMI repos
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

EPEL supplies the php-mbstring package, while REMI gives you PHP 7.4 (or newer) which kanboard requires. If you skip this, you’ll see “Module not found” errors later.

Step 3: Enable PHP 7.4 module
sudo dnf module reset -y php
sudo dnf module enable -y php:remi-7.4

Resetting clears any previously enabled PHP stream (CentOS ships with 7.2 by default). Enabling the REMI stream guarantees you the latest security patches.

Step 4: Install LAMP stack
sudo dnf install -y httpd mariadb-server php php-fpm \
    php-mysqlnd php-gd php-xml php-json php-cli php-curl
  • httpd is Apache, which kanboard runs under by default.
  • mariadb-server replaces MySQL; the two are nearly identical but MariaDB ships with CentOS 8.
  • The PHP extensions provide everything kanboard needs to render charts, handle uploads, and communicate with the database.
Step 5: Start and enable services
sudo systemctl enable --now httpd mariadb

Enabling both ensures they start on boot—a common oversight that turns a working install into a frustrating downtime puzzle.

Step 6: Secure MariaDB
sudo mysql_secure_installation

The interactive script lets you set a root password, remove anonymous users, disallow remote root login, and drop the test database. Skip this step and you’ll be tempted to leave your server open for anyone who knows the default credentials.

Step 7: Create a kanboard database and user
mysql -u root -p
CREATE DATABASE kanboard CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard'@'localhost' IDENTIFIED BY 'StrongPassword!';
FLUSH PRIVILEGES;
EXIT;

Use utf8mb4 to support emojis—kanboard lets you tag cards with them. The user ‘kanboard’ is isolated to the database, reducing risk if your web root gets compromised.

Step 8: Download and unpack kanboard
cd /var/www/
sudo curl -L https://github.com/kanboard/kanboard/releases/download/v1.3.4/kanboard-1.3.4.zip \
     -o kanboard.zip
sudo unzip kanboard.zip
sudo mv kanboard-* kanboard

The ZIP contains the latest release; adjust the version if you prefer a different one. Unpacking into /var/www places it where Apache will look for sites.

Step 9: Set permissions
sudo chown -R apache:apache /var/www/kanboard
sudo chmod -R 755 /var/www/kanboard

Apache runs as user apache. If you leave the files owned by root, kanboard can’t write its configuration and will complain about “Permission denied” when it starts. A common mistake I saw in a colleague’s setup: they set the whole /var/www folder to 777, which is a security nightmare.

Step 10: Configure Apache virtual host
sudo tee /etc/httpd/conf.d/kanboard.conf <<'EOF'
<VirtualHost *:80>
    ServerName kanboard.example.com
    DocumentRoot "/var/www/kanboard"

    <Directory "/var/www/kanboard">
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/kanboard_error.log
    CustomLog /var/log/httpd/kanboard_access.log combined
</VirtualHost>
EOF

Replace kanboard.example.com with your actual domain or IP. The AllowOverride All line enables the .htaccess file that kanboard ships with, which handles URL rewrites.

Step 11: Restart Apache
sudo systemctl restart httpd

If you hit a “403 Forbidden” error, double‑check the ownership and permissions from step 9.

Step 12: Finish installation via web UI

Open http://kanboard.example.com in your browser. You’ll be greeted by kanboard’s setup wizard:

1. Enter the database name (kanboard), user (kanboard) and password you set earlier.

2. Confirm the PHP configuration meets the minimum requirements (you should see “All good”).

3. Create an admin account.

Once that’s done, you’ll land on a fresh board with no columns—time to drag some tasks in!

Real‑world snag: MySQL socket mismatch

After pulling the latest version of kanboard, I got this error:

Cannot connect to database: mysqli::real_connect(): (HY000/2002): No such file or directory

Turns out my MariaDB was listening on /var/lib/mysql/mysql.sock while PHP expected /var/run/mysqld/mysqld.sock. Fixing it was just a matter of adding:

sudo tee /etc/php-fpm.d/www.conf <<'EOF'
[www]
listen = 127.0.0.1:9000
socket = /var/lib/mysql/mysql.sock
EOF

sudo systemctl restart php-fpm

That single change saved me a half‑hour of chasing phantom “No such file” errors.

Wrap it up

You now have kanboard running on CentOS 8, ready to track tasks, collaborate with teammates, and maybe even replace that spreadsheet you keep in your desk drawer.