WonderCMS: A Lightweight Marvel in Content Management

02 December 2023

Introduction:

When it comes to content management systems (CMS), WonderCMS stands out as a lightweight yet powerful solution that has gained popularity for its simplicity, speed, and ease of use. This article will delve into the reasons behind WonderCMS's appeal, its licensing model, a glimpse into its history, an overview of available plugins, and a step-by-step guide on how to install and run WonderCMS on Debian GNU/Linux using Nginx as the web server.

Why WonderCMS?

WonderCMS distinguishes itself with a minimalist approach, providing a straightforward and user-friendly platform for website management. Unlike traditional CMS platforms that often come with a steep learning curve and unnecessary complexities*cough* *cough* GHOSTCMS *cough* *cough*, WonderCMS aims to streamline the content creation process. Its intuitive interface allows users, regardless of technical expertise, to build and maintain a website effortlessly.

One of the key advantages of WonderCMS is its lightweight nature, requiring minimal server resources. This results in faster loading times and better overall performance, making it an ideal choice for projects with resource constraints or those seeking a nimble CMS solution. In fact, JustANerds.Site's resources are capped at 1 vCPU, and 1GB of RAM - and has yet to peak over 15% usage due to the minimal requirements.

License Type:

WonderCMS is released under the MIT License, a permissive open-source license that allows users the freedom to use, modify, and distribute the software with very few restrictions. The MIT License aligns with WonderCMS's commitment to openness and flexibility, making it accessible to a wide range of users and developers.

A Glimpse into WonderCMS History:

WonderCMS was first introduced in 2008 by Robert Isoski. The project's primary goal was to create a CMS that was both simple to use and didn't rely on a database. Over the years, WonderCMS has evolved while retaining its core principles of simplicity and efficiency. Regular updates and a supportive community contribute to the ongoing success of the platform.

Plugins Galore:

Although WonderCMS prides itself on simplicity, it also recognizes the importance of extensibility. The platform supports a variety of plugins that users can easily integrate to enhance functionality. From SEO tools to image galleries and contact forms, the plugin ecosystem allows users to customize their WonderCMS experience without sacrificing the platform's lightweight nature.

Installation on Debian GNU/Linux with Nginx:

Getting WonderCMS up and running on Debian GNU/Linux with Nginx is a straightforward process. Here's a step-by-step guide:

  1. Install PHP and dependencies
    sudo apt install php8.2 php8.2-fpm php8.2-mbstring php8.2-bcmath php8.2-common php8.2-cli php8.2-curl php8.2-zip php8.2-xml
  2. Edit the PHP.ini File
    sudo nano /etc/php/{version}/fpm/php.ini

    Adjust the below settings in your PHP.ini file to help optimize your site

     ##increase upload max size recommend 50 to 100mb example only## 
     upload_max_filesize = 100MB
    
    ##increase post max size recommend 50 to 100mb  example only##
     post_max_size = 100MB
    
    ## increase max execution time recommend 120 to 300##
     max_execution_time = 120
    
    ## increase GET/POST/COOKIE input variables recommend 5000 to 10000##
    max_input_vars = 5000
    
    ## increase memory limit recommend 256mb or 512mb##
    memory_limit = 256M
  3. Restart php-fpm
    sudo systemctl restart php-fpm
  4. Install Nginx:
    sudo apt update && sudo apt install nginx
  5. Create a Virtual Host Configuration:
    sudo nano /etc/nginx/sites-available/wondercms
    server {
            listen 80;
            # adapt to your server name
            server_name www.wonder-example.com;
            # adapt the path
            root /var/www/wondercms; // This can be anywhere, for instance it could be /srv/www/wondercms instead
            index index.php;
            # prevent directory listing
            autoindex off;
    
            # rewrite url to make it pretty
            location / {
                try_files $uri $uri/ @rewrite;
            }
                location @rewrite {
                rewrite ^/(.+)$ /index.php?page=$1 last;
            }
    
            # prevent access to database.js
            location ~ database.js {
                return 403;
            }
    
            location ~ cache.json {
                return 403;
            }
    
            # use php-fpm for dealing with php files
            location ~ \.php(/|$) {
                # this could also be called fastcgi_params depending on your distribution
                include fastcgi.conf;
                # using unix socket
                fastcgi_pass unix:/run/php-fpm/php-fpm.sock; // Using PHP8.2? Use unix:/run/php/php8.2-fpm.sock;
                # uncomment (and comment the one above) if you are using the TCP port 9000 for php-fpm
                # fastcgi_pass 127.0.0.1:9000;
            }
    }
  6. Create WonderCMS Directory:
    sudo mkdir /var/www/wondercms // Make this match your Nginx wondercms.conf
  7. Download WonderCMS:
    sudo wget https://github.com/WonderCMS/wondercms/releases/download/3.4.3/wondercms-343.zip
    sudo unzip WonderCMS-343.zip -d /var/www/wondercms
  8. Set Permissions For Ngnix:
    sudo chown -R www-data:www-data /var/www/wondercms
  9. Enable the Site and Restart Nginx:
    sudo ln -s /etc/nginx/sites-available/wondercms /etc/nginx/sites-enabled
    sudo systemctl restart nginx
  10. Complete the Installation:

    Open your browser and navigate to http://yourdomainhere.com, following the on-screen instructions to complete the WonderCMS installation.

  11. Secure with LetsEncrypt's Certbot

    Digital Ocean has a simple and straight forward tutorial for this, follow it to install an SSL certificate for HTTPS access!

Conclusion:

WonderCMS is a testament to the idea that simplicity can coexist with powerful functionality. Whether you're a beginner looking for an easy-to-use CMS or an experienced developer seeking a lightweight solution, WonderCMS offers a compelling option. Its open-source nature, coupled with the MIT License, ensures that it remains accessible to all, fostering a community-driven approach to content management.

Donate to Keep A Nerd's Site Live!




Need a Website? Contact Me!