Deployment guide

ClassicPress

Overview

ClassicPress is a community-led, business-focused fork of WordPress. It keeps the stable content management experience that millions of sites rely on and stays fully compatible with the WordPress plugin and theme ecosystem.

This SecureAnyCloud image installs ClassicPress 2.7 on Apache 2.4, MySQL 8.0 and PHP 8.3, all from the Ubuntu 24.04 noble universe with no third-party APT repositories. WP-CLI completes the install headlessly, so the public install wizard is never exposed. The MySQL root, application database and administrator passwords are rotated per instance at first boot.

What you get:

  • ClassicPress 2.7.0 from the official release archive at /var/www/html/classicpress
  • Apache 2.4.x with mod_rewrite enabled, and a virtual host at /etc/apache2/sites-available/classicpress.conf
  • MySQL 8.0.x with a classicpress database and a cpuser application user, each with a per-VM password
  • PHP 8.3.x with the mysqli, gd, mbstring, xml, curl, zip and imagick extensions
  • WP-CLI 2.x at /usr/local/bin/wp for command-line administration
  • classicpress-firstboot.service, which rotates passwords and creates the SecureAnyCloud administrator
  • Host-agnostic URLs: the site renders on the VM public IP, on 127.0.0.1, or on any domain you point at it
  • Apache and MySQL enabled to start automatically on boot
  • 24/7 SecureAnyCloud support

Prerequisites

You need an active Azure subscription, an SSH key and a VNet with a subnet.

Standard_B2s (2 vCPU, 4 GB RAM) is a comfortable starting size for small to medium sites. Move up to a D2s or D4s size for higher traffic.

On the network security group, allow inbound ports 80 and 443, and port 22 from your management network.

1

Deploy and connect

Launch the image from the Azure Marketplace. When the VM is running, connect over SSH as azureuser:

ssh azureuser@<vm-ip>

The first-boot service generates the per-VM credentials within a few seconds of the instance starting.

2

Verify the services

Run the following to confirm that Apache and MySQL are active and listening:

sudo systemctl is-active apache2 mysql
sudo ss -tlnp | grep -E ':(80|3306) '
3

Check the versions

Run the commands below to print the installed versions. wp core version reports the WordPress-compatible base version that ClassicPress tracks. The ClassicPress release itself is the $cp_version value in the version file.

grep "cp_version = '" /var/www/html/classicpress/wp-includes/version.php
sudo -u www-data /usr/local/bin/wp core version --path=/var/www/html/classicpress --allow-root php -v | head -1 mysql --version
4

Inspect content and users with WP-CLI

List the users, posts and plugins. The image ships with the standard first post, the SecureAnyCloud administrator and the bundled ClassicPress plugin:

sudo -u www-data /usr/local/bin/wp user list --path=/var/www/html/classicpress --allow-root sudo -u www-data /usr/local/bin/wp post list --path=/var/www/html/classicpress --allow-root sudo -u www-data /usr/local/bin/wp plugin list --path=/var/www/html/classicpress --allow-root
5

Read the administrator password

The per-VM credentials are written to a root-only file. Read it to get the CP_ADMIN_USER and CP_ADMIN_PASSWORD values you need to sign in:

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

Keep this file secure. After your first sign-in, change the administrator password in the admin area.

6

Browse the public site

The site responds on whatever address you reach it on. Confirm that it serves locally, then browse to http://<vm-ip>/ in your browser:

curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/
7

Sign in to the admin area

Browse to http://<vm-ip>/wp-admin/ (or http://<vm-ip>/wp-login.php). Sign in as SecureAnyCloud with the password from Step 5.

8

Explore the admin dashboard

After you sign in, you land on the ClassicPress dashboard. The At a Glance panel confirms ClassicPress 2.7.0, and the classic, streamlined admin menu is on the left.

9

Manage content

Open Posts to create, edit and organise your content. Pages, Media, Appearance, Plugins and Users work as they do in the WordPress ecosystem, so existing themes and plugins install unchanged.

10

Know where components live

Component and path:

ClassicPress install /var/www/html/classicpress/

wp-config.php /var/www/html/classicpress/wp-config.php

Apache vhost /etc/apache2/sites-available/classicpress.conf

Apache logs /var/log/apache2/classicpress-{access,error}.log

MySQL data /var/lib/mysql/

WP-CLI /usr/local/bin/wp

First-boot script /usr/local/sbin/classicpress-firstboot.sh

Credentials /stage/scripts/classicpress-credentials.log (mode 0600 root:root)

11

Security and next steps

  • Change the administrator password. After your first sign-in, update it under Users in the admin area.
  • Enable HTTPS. Install certbot and request a certificate: sudo apt-get install -y certbot python3-certbot-apache then sudo certbot --apache.
  • Restrict the network security group. Open ports 80 and 443 only to your CDN or load balancer, and port 22 only to your management network.
  • Keep ClassicPress current. Update core, plugins and themes from the admin area, or run wp plugin update --all and wp theme update --all.
  • Point your domain at the instance. The image is host-agnostic, so no site URL rewrite is needed. The admin area follows the host you sign in on.
  • Patch the OS regularly. Run sudo apt-get update and sudo apt-get upgrade.

Licensing

ClassicPress is distributed under the GPL-2.0 licence and is free to use commercially. SecureAnyCloud packages and supports the image, with support available 24/7 at sales@secureanycloud.com.

All product and company names are trademarks or registered trademarks of their respective holders. Their use does not imply affiliation or endorsement.

Deploy on Azure

Launch ClassicPress on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure