Deployment guide

Drupal 11

Overview

Drupal is an enterprise-grade, open-source content management framework that powers some of the most demanding sites on the web, including gov.uk, NASA and Tesla.

This SecureAnyCloud image installs Drupal 11.3 from drupal.org alongside Apache 2.4, MySQL 8.0, PHP 8.3 and Drush 13. All packages come from Ubuntu 24.04 noble universe, with no third-party APT repositories. At first boot, drush site:install bootstraps the standard install profile with a per-VM SecureAnyCloud administrator account.

What you get:

  • Drupal 11.3 from the official ftp.drupal.org tarball at /var/www/html/drupal
  • Apache 2.4.x with mod_rewrite enabled and a vhost at /etc/apache2/sites-available/drupal.conf
  • MySQL 8.0.x with a drupal database and a drupal MySQL user (per-VM password)
  • PHP 8.3.x with the mysql, gd, mbstring, xml, curl, zip and intl extensions
  • Drush 13 at /var/www/html/drupal/vendor/bin/drush, symlinked to /usr/local/bin/drush
  • drupal-firstboot.service, which rotates the MySQL root, database and administrator passwords and bootstraps the site
  • The Olivero front-end theme and Claro admin theme (the Drupal 11 defaults)
  • 24/7 SecureAnyCloud support

Prerequisites

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

Standard_B2s (4 GB RAM) is sufficient for low-to-medium traffic sites. Move up to D2s or D4s for high-traffic Drupal sites that use caching modules and many contributed modules.

Step 1-3: Deploy and connect over SSH

ssh azureuser@<vm-ip>
4

Check Drush status

cd /var/www/html/drupal && sudo -u www-data vendor/bin/drush status | head -20
5

Check services and versions

sudo ss -tlnp | grep -E ':(80|3306) ' php -v mysql --version
6

Read the administrator password

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

Copy DRUPAL_ADMIN_PASSWORD and DRUPAL_ADMIN_URL from the file.

7

Open the front end

Browse to http://<vm-ip>/. The default Drupal 11 Welcome page appears in the Olivero theme.

8

Sign in at /user/login

Browse to http://<vm-ip>/user/login and sign in as the SecureAnyCloud administrator with the password from Step 6.

9

Review the Status Report

Open the Status Report (/admin/reports/status). It shows site health, PHP version, database connectivity, file system permissions and update advisories.

10

Extend with modules

Drupal's strength is its module ecosystem, with 45,000+ contributed modules. Browse /admin/modules to see the bundled core modules. Add more with drush pm:install <module> or Composer.

11

Know where components live

Use this list to find the main files and directories on the VM:

  • Drupal install: /var/www/html/drupal/
  • settings.php: /var/www/html/drupal/sites/default/settings.php
  • Apache vhost: /etc/apache2/sites-available/drupal.conf
  • Apache logs: /var/log/apache2/drupal-{access,error}.log
  • MySQL data: /var/lib/mysql/
  • Drush: /var/www/html/drupal/vendor/bin/drush, symlinked to /usr/local/bin/drush
  • First-boot script: /usr/local/sbin/drupal-firstboot.sh
  • Credentials: /stage/scripts/drupal-credentials.log (mode 0600 root:root)
12

Secure the deployment

  • Enable HTTPS. Install Certbot and obtain a Let's Encrypt certificate: sudo apt-get install -y certbot python3-certbot-apache && sudo certbot --apache
  • Restrict the NSG. Open port 80 only to your CDN or load balancer, and limit port 22 to your management CIDR.
  • Update modules monthly with drush pm:update --security-only.
  • Update Drupal core with Composer: cd /var/www/html/drupal && composer update drupal/core --with-dependencies
  • Patch the OS monthly: apt-get update && apt-get upgrade && reboot

Licensing

Drupal is licensed under GPL-2.0+ and is free to use commercially. SecureAnyCloud provides commercial support separately: contact sales@secureanycloud.com.

Deploy on Azure

Launch Drupal 11 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