How to Install WonderCMS on Fedora 30

WonderCMS is a free and open supply flat file CMS, aimed to be extraordinarily small, mild and easy. It is constructed with PHP, jQuery, HTML/CSS and developed since 2008. No preliminary configuration required. The set up course of is fairly simple – unzip and add 5 recordsdata. All recordsdata might be simply moved, backed up and restored by copy/pasting all recordsdata to a different location. Shifting them to a different host doesn’t require any re-configuration. WonderCMS additionally would not require a standard/relational database like MySQL. The flat file know-how permits WonderCMS to avoid wasting all knowledge to a textual content file (flat file) referred to as database.js which is structured in JSON format. On this tutorial, we’ll undergo the WonderCMS set up and setup on Fedora 30 system by utilizing Nginx as an internet server, and optionally you may safe the transport layer by utilizing shopper and Let’s Encrypt certificates authority so as to add SSL help.


Necessities for putting in and working WonderCMS are:

  • PHP model 7.1 or larger with the curl, mbstring and zip extensions.
  • Web server (Apache with mod_rewrite module enabled, Nginx, IIS).


  • Fedora 30 working system.
  • A non-root consumer with sudo privileges.

Preliminary steps

Test your Fedora model:

cat /and so on/fedora-release
# Fedora launch 30 (Thirty)

Arrange the timezone:

timedatectl list-timezones
sudo timedatectl set-timezone 'Area/Metropolis'

Replace your working system packages (software program). This is a vital first step as a result of it ensures you may have the most recent updates and safety fixes in your working system’s default software program packages:

sudo dnf replace -y

Set up some important packages which might be needed for fundamental administration of the Fedora working system:

sudo dnf set up -y curl wget vim git unzip socat bash-completion

Step 1 – Set up PHP and needed PHP extensions

Set up PHP, in addition to the mandatory PHP extensions:

sudo dnf set up -y php-cli php-fpm php-common php-curl php-zip php-mbstring php-json

To point out PHP compiled in modules, you may run:

php -m

. . .
. . .

Test the PHP model:

php --version

# PHP 7.3.6 (cli) (constructed: Might 28 2019 09:32:59) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Applied sciences

Begin and allow PHP-FPM service:

sudo systemctl begin php-fpm.service
sudo systemctl allow php-fpm.service

Step 2 – Set up shopper and procure Let’s Encrypt certificates ( optionally available )

Securing your discussion board with HTTPS will not be needed, however it’s a good observe to safe your web site visitors. With the intention to get hold of a TLS certificates from Let’s Encrypt we’ll use shopper. is a pure UNIX shell software program for acquiring TLS certificates from Let’s Encrypt with zero dependencies.

Obtain and set up

sudo su - root
git clone
./ --install --accountemail [email protected]
supply ~/.bashrc
cd ~

Test model: --version
# v2.8.2

Get hold of RSA and ECC/ECDSA certificates in your area/hostname:

# RSA 2048 --issue --standalone -d --keylength 2048
# ECDSA --issue --standalone -d --keylength ec-256

If you’d like faux certificates for testing you may add --staging flag to the above instructions.

After working the above instructions, your certificates and keys shall be in:

  • For RSA: /dwelling/username/ listing.
  • For ECC/ECDSA: /dwelling/username/instance.com_ecc listing.

To listing your issued certs you may run: --list

Create a listing to retailer your certs. We’ll use /and so on/letsencrypt listing.

mkdir -p /and so on/letsecnrypt/
sudo mkdir -p /and so on/letsencrypt/instance.com_ecc

Set up/copy certificates to /and so on/letsencrypt listing.

# RSA --install-cert -d --cert-file /and so on/letsencrypt/ --key-file /and so on/letsencrypt/ --fullchain-file /and so on/letsencrypt/ --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA --install-cert -d --ecc --cert-file /and so on/letsencrypt/instance.com_ecc/cert.pem --key-file /and so on/letsencrypt/instance.com_ecc/personal.key --fullchain-file /and so on/letsencrypt/instance.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

All of the certificates shall be robotically renewed each 60 days.

After acquiring certs exit from root consumer and return again to regular sudo consumer:


Step 3 – Set up and configure NGINX

WonderCMS can work tremendous with many widespread internet server software program. On this tutorial, we chosen NGINX.

Set up NGINX:

sudo dnf set up -y nginx

Test the NGINX model:

nginx -v
# nginx model: nginx/1.16.0

Begin and allow NGINX service:

sudo systemctl begin nginx.service
sudo systemctl allow nginx.service

Subsequent, configure NGINX for WonderCMS. Run sudo vim /and so on/nginx/conf.d/wondercms.conf and add the next configuration:

server {
   hear 80;
hear 443 ssl;

ssl_certificate /and so on/letsencrypt/;
ssl_certificate_key /and so on/letsencrypt/;
ssl_certificate /and so on/letsencrypt/instance.com_ecc/fullchain.pem;
ssl_certificate_key /and so on/letsencrypt/instance.com_ecc/personal.key; server_name; root /var/www/wondercms; index index.php; location / { if (!-e $request_filename) { rewrite ^/(.+)$ /index.php?web page=$1 final; } } location ~ database.js { return 403; } location ~ .php(/|$) { embrace default.d/php.conf; fastcgi_pass unix:/run/php-fpm/www.sock; } }

Test NGINX configuration for syntax errors:

sudo nginx -t

Reload NGINX service:

sudo systemctl reload nginx.service

Step 4 – Set up WonderCMS

Create a doc root listing for WonderCMS.

sudo mkdir -p /var/www/wondercms

Change possession of the /var/www/wondercms listing to [your_username]:

sudo chown -R [your_username]:[your_username] /var/www/wondercms

Change [your_username] with the username that you're logged into the server.

Navigate to the doc root listing:

cd /var/www/wondercms

Obtain and unzip WonderCMS supply:


Transfer WonderCMS recordsdata to doc root listing.

mv wondercms/* .
mv wondercms/.* .
rmdir wondercms

Change possession of the /var/www/wondercms listing to nginx:

sudo chown -R nginx:nginx /var/www/wondercms

Run sudo vim /and so on/php-fpm.d/www.conf and set consumer and group to nginx. Initially, it is set to consumer and group apache:

sudo vim /and so on/php-fpm.d/www.conf
# consumer = nginx
# group = nginx

Create /var/lib/php/session/ listing and alter possession to nginx:

sudo mkdir -p /var/lib/php/session/ && sudo chown -R nginx:nginx /var/lib/php/session/

Restart the PHP-FPM service.

sudo systemctl restart php-fpm.service

Open your web site in an internet browser and log in with default password admin and alter the default password afterward.

WonderCMS with Nginx on Fedora


Official Galaxy Word 10 photographs leak, showcase the massive, boxy physique

Previous article

OurPact returns to App Retailer, reviving debates about Apple’s impartiality

Next article

You may also like


Leave a Reply

More in Apache