Cm
Applications Azure

CMS Made Simple on Ubuntu 24.04 on Azure User Guide

| Product: CMS Made Simple on Ubuntu 24.04 LTS on Azure

Overview

CMS Made Simple (CMSMS) is a mature open-source content management system for building and running websites: page and template management, a full admin console, and a large module ecosystem, all on the classic LAMP stack. The cloudimg image installs CMS Made Simple 2.2.22 on a full LAMP stack from the Ubuntu 24.04 repositories (nginx, PHP 8.3-FPM and MariaDB), drives the entire installation at build time so there is no web setup wizard for you to complete, ships the default sample site so a fresh VM serves a real rendered site immediately, stores the MariaDB database and uploaded media on a dedicated Azure data disk, and rotates the database password and the administrator account on the first boot of every VM. Backed by 24/7 cloudimg support.

What is included:

  • CMS Made Simple 2.2.22 served on port 80 by nginx via the PHP 8.3-FPM FastCGI socket
  • The default sample site and templates so the front end renders immediately
  • MariaDB on loopback with its data directory on a dedicated Azure data disk
  • A dedicated Azure data disk at /var/lib/cmsms for the MariaDB database and uploaded media
  • A per-VM database password and a unique administrator account generated on first boot
  • nginx.service, php8.3-fpm.service and mariadb.service as systemd units, enabled and active
  • 24/7 cloudimg support

Prerequisites

An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a good starting point. NSG inbound: allow 22/tcp from your management network and 80/tcp for the CMS Made Simple web interface (front with TLS for public exposure - see Enabling HTTPS).

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for CMS Made Simple by cloudimg, and select Create. On Basics pick your subscription, resource group, region and size; under Administrator account choose SSH public key and paste your key; under Inbound port rules allow SSH (22) and HTTP (80). Review the dedicated data disk on the Disks tab, then Review + create -> Create.

Step 2 - Deploy with the Azure CLI

az vm create \
  --resource-group <your-rg> --name cms-made-simple \
  --image <cloudimg-cms-made-simple-image-urn> \
  --size Standard_B2s \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_ed25519.pub \
  --vnet-name <your-vnet> --subnet <your-subnet> \
  --public-ip-sku Standard

az vm open-port --resource-group <your-rg> --name cms-made-simple --port 80 --priority 1010

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the LAMP stack is running

On first boot CMS Made Simple rotates its database password, resets the administrator account to a fresh per-VM password, clears the cache and starts the stack.

systemctl is-active nginx php8.3-fpm mariadb

All three report active.

You can confirm the component versions and that the site answers on port 80:

php -v | head -1
mariadb --version
curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/

The site home returns HTTP 200.

Step 5 - Retrieve the administrator password

The administrator account is unique to your VM and is generated on first boot. Read it as root:

sudo cat /root/cms-made-simple-credentials.txt

The file contains the login (admin), the admin console URL and a unique password, plus the database name, user and password. Change the email and password from the admin console after your first sign-in.

Step 6 - Browse to your site

Browse to http://<vm-public-ip>/. The image ships with the default sample site and templates, so you see a complete, rendered site immediately and can start editing rather than facing a blank page.

CMS Made Simple sample site home page

Step 7 - Sign in to the admin console

Browse to http://<vm-public-ip>/admin/ and sign in with admin and the password from the credentials file.

CMS Made Simple admin sign-in page

After signing in you land on the admin dashboard, the control centre for your site - content and pages, layout and design, extensions and modules, users and groups, and site settings.

CMS Made Simple admin dashboard

Step 8 - Manage content, pages and templates

Open Content -> Pages to see your page tree. From here you can add, move, copy and delete pages, and edit page content in the built-in WYSIWYG editor.

Layout is managed under Layout -> Design Manager, where templates and stylesheets are defined and assigned to pages. Additional functionality is installed and configured under Extensions -> Module Manager.

Step 9 - The dedicated data disk

The MariaDB database and CMS Made Simple's uploaded media live on a dedicated Azure data disk mounted at /var/lib/cmsms, separate from the OS disk. This keeps your content independent of the OS image and lets you resize the disk as your site grows.

df -h /var/lib/cmsms
findmnt /var/lib/cmsms

Step 10 - Enabling HTTPS

For any public deployment, front CMS Made Simple with TLS. Point a DNS A record at your VM's public IP, then install a certificate with Certbot and the nginx plugin. Run the following as prose-driven steps on your VM (replace the placeholders with your real values; do not paste them verbatim):

  • Install Certbot: sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
  • Obtain and install a certificate for your domain, supplying your contact email when prompted, by running certbot with the nginx plugin for your-domain.example.com.
  • CMS Made Simple derives its base URL from the request, so it automatically switches generated links to https:// once TLS is terminated in front of it. No configuration change is required.

Certbot installs a renewal timer automatically; certificates renew without further action.

Step 11 - Maintenance

  • Updates: the OS continues to receive unattended security updates. CMS Made Simple itself can be updated from the admin console under Site Admin -> System Maintenance, or with the upstream installation assistant.
  • Backups: back up the MariaDB cmsms database (for example with mysqldump) and the /var/lib/cmsms/uploads directory, which together hold your content and uploaded media.
  • Logs: web server logs are under /var/log/nginx/; PHP-FPM logs are under /var/log/php8.3-fpm.log.

Support

This image is maintained by cloudimg and backed by 24/7 support. If you need help deploying or operating CMS Made Simple on Azure, contact the cloudimg team through the cloudimg website.