WordPress 6.9 on Ubuntu 24.04 on Azure User Guide
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
wordpressDB andwpuserMySQL 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.servicerotating passwords + creatingcloudimgadmin user- Apache + MySQL
enabledand 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

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

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.

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.

Step 9: Dashboard
The dashboard shows site activity, recent comments, drafts, and quick-publish.

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

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 --allandwp 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.