LAMP Stack Setup

Setup for Ubuntu 20.04 LTS or 22.04 LTS. Lifted from this resource on AWS.

Linux

WSL, Ubuntu Multipass, or equivalant.

Apache

Version: distribution

sudo apt update -y
sudo apt install apache2 -y

PHP FPM

Version: 8.2

Run the following commands to install PHP:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update -y
sudo apt install php8.2 php8.2-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.2 -y

Install PHP-FPM

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo a2dismod php8.2
sudo systemctl enable php8.2-fpm
sudo service apache2 restart;sudo service php8.2-fpm restart

MariaDB

Version: 11.1.2

Run the following command to add the MariaDB yum repository (For all Linux distributions):

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.1.2"

Install MariaDB Package

sudo apt install mariadb-server -y

MariaDB Secure Installation

sudo mysql_secure_installation

When prompted, set a password for the root account:

  • Enter the current root password. By default, the root account doesn’t have a password set.
  • Press Enter.
  • Press N to switch to unix_socket authentication.
  • Press Y to set a password, and then enter a secure password twice. Make sure to store this password in a safe place.
  • Press Y to remove the anonymous user accounts.
  • Press Y to disable the remote root login.
  • Press Y to remove the test database.
  • Press Y to reload the privilege tables and save your changes.

Permissions

The following command will add the ubuntu user to the www-data group:

sudo usermod -a -G www-data ubuntu

The following commands will set the correct permissions for the /var/www directory:

sudo chown -R ubuntu:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

Your site is ready!

Visit your website by entering your instance’s public IP address in your browser. You should see the default Apache page.