Applications Azure

WordPress 6.9 on Ubuntu 24.04 on Azure User Guide

| Product: WordPress 6.9 on Ubuntu 24.04 LTS on Azure

Overview

WordPress is the world's most-deployed content management system, powering 43%+ of the public web. The cloudimg image installs the latest WordPress 6.9 from wordpress.org alongside Apache 2.4, MySQL 8.0, and PHP 8.3 — all from Ubuntu 24.04 noble universe (no third-party APT repositories). Per-VM MySQL root, WP database, and WP admin passwords are rotated at first boot via openssl rand -hex 16.

What is included:

  • WordPress 6.9 from official wordpress.org tarball at /var/www/html/wordpress
  • Apache 2.4.x with mod_rewrite enabled, vhost at /etc/apache2/sites-available/wordpress.conf
  • MySQL 8.0.x with wordpress DB and wpuser MySQL user (per-VM password)
  • PHP 8.3.x with mysqli, gd, mbstring, xml, curl, zip, imagick extensions
  • WP-CLI 2.x at /usr/local/bin/wp
  • wordpress-firstboot.service rotating passwords + creating cloudimg admin user
  • Apache + MySQL enabled and auto-starting on boot
  • 24/7 cloudimg support

Prerequisites

Active Azure subscription, SSH key, VNet + subnet. Standard_B2s (4 GB RAM) is plenty for small-to-medium sites; bump to D2s/D4s for high-traffic blogs or WooCommerce stores.

Step 1-3: Deploy + SSH (standard pattern)

ssh azureuser@<vm-ip>

Step 4: Verify Services

sudo systemctl status apache2 --no-pager | head -10
sudo ss -tlnp | grep -E ':(80|3306) '
sudo /usr/local/bin/wp --info --allow-root --path=/var/www/html/wordpress | head -10

apache2 + mysql active, listening on :80 and :3306, PHP 8.3.6, MySQL 8.0.45, WP-CLI 2.x

Step 5: WP CLI Status

sudo -u www-data /usr/local/bin/wp core version --path=/var/www/html/wordpress
sudo -u www-data /usr/local/bin/wp post list --path=/var/www/html/wordpress
sudo -u www-data /usr/local/bin/wp user list --path=/var/www/html/wordpress

WordPress 6.9 core, Hello world! sample post, cloudimg administrator user

Step 6: Read Admin Password

sudo cat /stage/scripts/wordpress-credentials.log

Pick up the WP_ADMIN_PASSWORD and WP_ADMIN_URL from the file.

Step 7: Front-End

Browse to http://<vm-ip>/ to see the WordPress front-end with the default Hello World post.

WordPress 6.9 front-end with Hello World sample post — Twenty Twenty-Five default theme

Step 8: Login to wp-admin

Browse to http://<vm-ip>/wp-admin/ (or /wp-login.php) and authenticate as cloudimg with the password from Step 6.

WordPress login screen at /wp-login.php

Step 9: Dashboard

The dashboard shows site activity, recent comments, drafts, and quick-publish.

WordPress 6.9 dashboard for the cloudimg admin — site health, activity, quick draft

Step 10: Installed Plugins

Default WordPress install ships with two bundled plugins (Akismet, Hello Dolly). Add more via Plugins → Add New.

Plugins page showing Akismet + Hello Dolly bundled plugins, both inactive by default

Step 11: Components

Component Path
WordPress install /var/www/html/wordpress/
wp-config.php /var/www/html/wordpress/wp-config.php
Apache vhost /etc/apache2/sites-available/wordpress.conf
Apache logs /var/log/apache2/wordpress-{access,error}.log
MySQL data /var/lib/mysql/
WP-CLI /usr/local/bin/wp
Firstboot script /usr/local/sbin/wordpress-firstboot.sh
Credentials /stage/scripts/wordpress-credentials.log (mode 0600 root:root)

Step 12: Security

  • HTTPS: install certbot and obtain a Let's Encrypt cert: sudo apt-get install -y certbot python3-certbot-apache && sudo certbot --apache
  • Restrict NSG so port 80 is only open to your CDN / load balancer / cloudflare; keep 22 to your management CIDR only
  • Update plugins/themes monthly via wp plugin update --all and wp theme update --all
  • Enable two-factor auth via the Wordfence or Two Factor Authentication plugin
  • Patch monthly: apt-get update && apt-get upgrade && reboot

Licensing

WordPress is GPL-2.0+ — free to use commercially. cloudimg provides commercial support separately. support@cloudimg.co.uk.