Derek Coleman & Associates Inc logoDerek Coleman & Associates Inc

Home / Support / LAMP Stack on Ubuntu 24.04 LTS

LAMP Stack on Ubuntu 24.04 LTS — Support & Quick Start

LAMP Stack on Ubuntu 24.04 LTS — The classic LAMP stack — Apache, MySQL, and PHP on Linux — ready to serve PHP applications the moment the VM boots. Published by Derek Coleman & Associates Inc on the Azure Marketplace, deployed in your own Azure subscription.

Fixed on image version 2026.916.1342 (published 2026-09-16)

Apache always served normally; the MySQL half is now correct too. First boot authenticates its own `FLUSH PRIVILEGES`, verifies `root` against the running server and only then writes /root/.mysql-initial-password and the completion marker, so the password survives reboots.

If you deployed this VM before 2026-09-16, it came from the older image and is not changed by the new publication — redeploy from the current Marketplace version, or apply the one-time repair below:

  1. On that image the MySQL root password in /root/.mysql-initial-password applies on the FIRST boot only. If this VM has never been rebooted the file still holds the live password: sign in now with `mysql -u root -p` and store it safely.
  2. Stop the old first-boot script from regenerating a password it can no longer apply, by writing the completion marker it failed to write (taken from the fixed script, not sweep-run).
  3. Already rebooted and the password was never stored? Reset root with MySQL's documented `--init-file` procedure, or email support. http://<VM-IP>/ answers 200 throughout — only the database credential was affected.
sudo mkdir -p /etc/app && sudo touch /etc/app/.firstboot-complete

Image change: see the pull request.

Source: the Marketplace live version set for this offer, read from Partner Center on 2026-09-16. New deployments take the newest version by default.

At a glance

Application ports80 (HTTP), 443 (HTTPS)
Admin credential filesudo cat /root/.mysql-initial-password
Sign in asMySQL root (root@localhost, caching_sha2_password)
Service(s)apache2, mysql
Configurationweb root /var/www/html/; /etc/apache2/sites-available/000-default.conf; /etc/mysql/mysql.conf.d/mysqld.cnf (bind-address = 127.0.0.1)
Logs/var/log/apache2/{access,error}.log; /var/log/mysql/error.log
VersionApache 2.4 + MySQL 8.0 + PHP 8.3 (Ubuntu 24.04 packages)
PlatformUbuntu 24.04 LTS

Quick start

  1. Deploy from the Azure Marketplace (Get It Now → Create), choosing your SSH key at the Administration step.
  2. Allow inbound SSH (22) for yourself plus the application port(s): 80 and 443 (HTTP/S) — restrict to your own IP where possible. The in-image firewall already allows them; only the Network Security Group (NSG) keeps them closed.
  3. Browse to http://<VM-IP>/ — Apache answers immediately; put your site in /var/www/html/.
  4. Connect to MySQL locally with `mysql -u root -p` using the generated password (see First login below) and create your application database.

First login / credentials

This image generates its admin credential on the VM at first boot — nothing is pre-set. SSH into the VM with the username + key you chose at deploy, then print the generated credential:

ssh <your-username>@<VM-IP>
sudo cat /root/.mysql-initial-password

Sign in as MySQL root (root@localhost, caching_sha2_password).

  1. Browse to http://<VM-IP>/ — Apache serves /var/www/html/ immediately; no web login exists.
  2. MySQL root has a generated password (plain `sudo mysql` is refused): mysql -u root -p with the password from the file.
  3. Create an application database and user, change the root password (ALTER USER), and delete the file. MySQL listens on 127.0.0.1 only.

This is the MySQL root password set at first boot (root@localhost uses caching_sha2_password). Connect with `mysql -u root -p`; MySQL listens on 127.0.0.1 only.

Still stuck?

Email support@dcassociatesgroup.com (response within 1 business day) or send a message via the contact form. Include the offer name, VM size, region, and any log output — sudo journalctl -u <service> -n 100 usually tells the story.