CMS Made Simple on Ubuntu 24.04 on Azure User Guide
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/cmsmsfor 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.serviceandmariadb.serviceas 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.

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.

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.

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
cmsmsdatabase (for example withmysqldump) and the/var/lib/cmsms/uploadsdirectory, 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.