How to Install Bludit CMS with NGINX on Ubuntu 18.04 LTS

screenshot 2019 03 26 at 18

How to Install Bludit CMS with NGINX on Ubuntu 18.04 LTS

Bludit is a simple, fast, secure, flat-file CMS that allows you to create your own website or blog in seconds. It’s completely free and open source. You can browse its source code on Github. Bludit uses files in JSON format to store the content, you don’t need to install or configure a database. You only need a web server with PHP support. Bludit incorporates all the SEO tools to improve your ranking in all the search engines and social networks. It has a rich themes and plugins system that you can use to change the look and feel of your site. In this tutorial, we will go through the Bludit CMS installation and setup on Ubuntu 18.04 LTS system by using NGINX as a web server.


Make sure your system meets the following requirements:

  • PHP version 5.3 or greater with the following extensions:mbstring,gd,dom,json
  • A web server with PHP support like Nginx, Apache, Lighttpd, H2O. This tutorial will use NGINX.


  • An operating system running Ubuntu 18.04 LTS.
  • A non-root user with sudo privileges.

Initial steps

Check your Ubuntu version:
lsb_release -ds
# Ubuntu 18.04.1 LTS

Set up the timezone:
sudo dpkg-reconfigure tzdata

Update your operating system packages (software). This is an important first step because it ensures you have the latest updates and security fixes for your operating system’s default software packages:
sudo apt update && sudo apt upgrade -y

Install some essential packages that are necessary for basic administration of Ubuntu operating system:
sudo apt install -y curl wget vim git unzip socat bash-completion

Step 1 – Install PHP

Install PHP, as well as the necessary PHP extensions:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mysql php7.2-intl php7.2-json php7.2-opcache php7.2-xml

To show PHP compiled in modules, you can run:
php -m

. . .
. . .

Check the PHP version:
php --version

# PHP 7.2.15-0ubuntu0.18.04.1 (cli) (built: Feb  8 2019 14:54:22) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.15-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

PHP-FPM service is automatically started and enabled on reboot on Ubuntu 18.04 system, so there is no need to start and enable it manually. We can move on to the next step, which is the database installation and setup.

Step 2 – Install Acme.sh client and obtain Let’s Encrypt certificate (optional)

Securing your website with HTTPS is not necessary, but it is a good practice to secure your site traffic. In order to obtain a TLS certificate from Let’s Encrypt we will use acme.sh client. Acme.sh is a pure Unix shell software for obtaining TLS certificates from Let’s Encrypt with zero dependencies. 

Download and install acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Check acme.sh version:
acme.sh --version
# v2.8.1

Obtain RSA and ECC/ECDSA certificates for your domain/hostname:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
acme.sh --issue --standalone -d example.com --keylength ec-256

If you want fake certificates for testing you can add --staging flag to the above commands.

After running the above commands, your certificates and keys will be in:

  • For RSA: /home/username/example.com directory.
  • For ECC/ECDSA: /home/username/example.com_ecc directory.

To list your issued certs you can run:
acme.sh --list

Create a directory to store your certs. We will use a directory /etc/letsencrypt.
mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Install/copy certificates to /etc/letsencrypt directory.
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

All the certificates will be automatically renewed every 60 days.

After obtaining certs exit from root user and return back to normal sudo user:

Step 3 – Install and configure NGINX

Download and install NGINX from the Ubuntu repository:
sudo apt install -y nginx

Check the NGINX version:
sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)

Run sudo vim /etc/nginx/sites-available/bludit.conf and configure NGINX for Bludit.
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
server_name example.com;
root /var/www/bludit;

index index.php;

location ~ .php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;

location / {
try_files $uri $uri/ /index.php?$args;

location ^~ /bl-content/tmp/ { deny all; }
location ^~ /bl-content/pages/ { deny all; }
location ^~ /bl-content/databases/ { deny all; }

Activate new bludit.conf configuration by linking the file to the sites-enabled directory:
sudo ln -s /etc/nginx/sites-available/bludit.conf /etc/nginx/sites-enabled/

Test NGINX configuration:
sudo nginx -t

Reload NGINX:
sudo systemctl reload nginx.service

Step 4 – Install Bludit

Create a document root directory where Bludit should reside in:
sudo mkdir -p /var/www/bludit

Change the ownership of the /var/www/bludit directory to {jour_user}:
sudo chown -R {your_user}:{your_user} /var/www/bludit

Navigate to the document root directory:
cd /var/www/bludit

Download the latest version from the official page and extract the zip file:
wget https://www.bludit.com/releases/bludit-3-8-1.zip
unzip bludit-3-8-1.zip
rm bludit-3-8-1.zip
mv bludit-3-8-1/* . && mv bludit-3-8-1/.* .
rmdir bludit-3-8-1

NOTE: Update download URL if there is a newer release.

Change ownership of the /var/www/bludit directory to www-data:
sudo chown -R www-data:www-data /var/www/bludit

Step 5 – Complete the Bludit installation wizard

Open your site in a web browser. After opening your site in a web browser, you should be redirected to the following page, to choose your language:

Bludit Installer

Next, create a password for the user admin, and click “Install”:

Set Admin password

After creating admin password, you will be redirected to the Bludit frontend:

Welcome to Bludit

To access Bludit admin area, append /admin to your site IP or URL. This is how Bludit admin looks like:

Bludit CMS Dashboard

Installation is complete. Happy blogging with Bludit CMS.

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !