[PHP] Notes on Installing LAMP stack with Ubuntu 26.04 LTS Linux Server

Subject: Notes on Installing LAMP stack with Ubuntu 26.04 LTS Linux Server

Good day from Singapore,

Author: Mr. Turritopsis Dohrnii Teo En Ming
Date: 29 Aug 2026 Saturday
Country: Singapore

Download Ubuntu Server 26.04 LTS ISO.

In our example, we will be installing Ubuntu Server 26.04 LTS ISO as a virtual machine in Windows Server 2025 Datacenter Evaluation Hyper-V Hypervisor.

Hyper-V Manager

New Virtual Machine Wizard

Before You Begin: click Next

Specify Name and Location:

Name: Service Record - Ubuntu
Click Store the virtual machine in a different location
Location: F:\Virtual Hard Disks\Service Record - Ubuntu
Click Next

Specify Generation: Click Generation 2. Click Next

Assign Memory: Startup memory: 8192 MB. Click Next

Configure Networking: Connection: Broadcom NetXtreme Gigabit Ethernet - Virtual Switch. Click Next

Connect Virtual Hard Disk:

Click Create a virtual hard disk

Name: Service Record - Ubuntu.vhdx
Location: F:\Virtual Hard Disks\Service Record - Ubuntu\Service Record -Ubu...
Size: 2048 GB

Click Next

Installation Options:

Click Install an operating system from a bootable image file

Image file (.iso): C:\Users\Administrator\Documents\ubuntu-26.04-live-server-amd64.iso

Click Next

Summary: Click Finish

Power on the virtual machine.

If you encounter the following ERROR:

The signed image's hash is not allowed (DB)

Go to Secure Boot

Click Enable Secure Boot

Change the Template to: Microsoft UEFI Certificate Authority

Power on the virtual machine again.

Installing Ubuntu Server 26.04 LTS

On the GNU GRUB page, select "Try or Install Ubuntu Server"

Welcome!: English

Keyboard configuration:

Layout: English (US)

Variant: English (US)

Choose the type of installation:

Click Ubuntu Server

Network configuration:

Choose Manual / Static

Enter the following:

Subnet:

Address:

Gateway:

Name Servers:

Search domains:

Proxy configuration: leave blank

Ubuntu archive mirror configuration:

Click Done

Guided storage configuration:

Click Use an entire disk

Uncheck Set up this disk as an LVM group

Storage configuration: Click Done

Confirm destructive action: Click Continue

Profile configuration:

Your name: Teo En Ming
Your servers name: servicerecord
Pick a username: teo-en-ming
Choose a password:
Confirm your password:

Upgrade to Ubuntu Pro: Click Skip for now

SSH configuration:

Click Install OpenSSH server

Click Allow password authentication over SSH

Click Done

Featured server snaps: Click Done

Installing system

Installation complete! Click Reboot Now

sudo nano /etc/ssh/sshd_config

Port 2222

Save and exit

sudo systemctl disable --now ssh.socket

sudo systemctl enable ssh.service

sudo systemctl restart ssh.service

netstat -anp | grep 22

You should see port 2222

Installing Apache Web Server

sudo apt install apache2

You should now be able to see your default HTTP web page.

sudo a2enmod ssl

sudo mkdir -p /etc/apache2/ssl

sudo openssl req -x509 -nodes -days 3650 \
  -newkey rsa:2048 \
  -keyout /etc/apache2/ssl/apache-selfsigned.key \
  -out /etc/apache2/ssl/apache-selfsigned.crt
  
sudo nano /etc/apache2/sites-available/selfsigned-ssl.conf

<VirtualHost *:443>
    ServerAdmin ceo@teo-en-ming-corp.com

    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache-selfsigned.key

    ErrorLog ${APACHE_LOG_DIR}/ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-access.log combined
</VirtualHost>

sudo a2ensite selfsigned-ssl.conf

sudo apache2ctl configtest
Syntax OK

sudo systemctl reload apache2

You should now see your default HTTPS web page.

Installing MariaDB Database Server

sudo apt update

sudo apt install mariadb-server mariadb-client

sudo mariadb

CREATE USER 'mysqlroot'@'localhost'
IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO
'mysqlroot'@'localhost'
WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT

mariadb -u mysqlroot -p

Installing phpMyAdmin

sudo apt-get update

sudo apt install phpmyadmin

Web server to reconfigure automatically: apache2

Configure database for phpmyadmin with dbconfig-common? Yes

MySQL application password for phpmyadmin:

Password confirmation:

Password of the database's administrative user:

sudo apt install php-mysql

sudo systemctl restart apache2

sudo phpenmod mbstring

sudo systemctl restart apache2

sudo apt update && sudo apt install -y software-properties-common

Installing PHP 8.5

sudo apt install -y php php-cli php-fpm

sudo apt install -y php-{curl,mbstring,xml,zip,mysql,intl}

sudo apt install libapache2-mod-php8.5

sudo a2enmod php8.5

sudo systemctl restart apache2

You should now be able to access phpMyAdmin at

https://IP_address/phpmyadmin/

Turning on Software Firewall in Ubuntu Server 26.04 LTS

sudo ufw allow 2222/tcp

sudo ufw allow 443/tcp

sudo ufw enable

sudo ufw status

Miscellaneous

cat /etc/os-release

PRETTY_NAME="Ubuntu 26.04 LTS"

That's all.

Regards,

Mr. Turritopsis Dohrnii Teo En Ming
Diehard hardcore PAP government supporter
29 Aug 2026 Saturday 11.14 am Singapore Time