How to setup Apache Web Server + MySQL (LAMP Stack) on Linux in Azure/AWS/GCP

To setup and install Apache Web Server with the LAMP Stack on any of the cloud platforms, the recommended way is to use the available image on the cloud marketplace. It comes pre-configured with the full LAMP Stack – Apache Web Server, MySQL Server, PHP,  PHPMyadmin and Let’s Encrypt. Check out the links below to deploy to your preferred cloud provider.

Getting Started


Once your Apache web server has been deployed, the following links explain how to connect to a Linux VM:



Once connected and logged in, the following section explains how to start using Apache, MySQL and phpmyadmin. 

Using Apache Web Server


The default directories used by Apache are as follows:


Apache LocationPath
Install prefix/usr/local/apache
Web root location/data/www/default
Main configuration File/usr/local/apache/conf/httpd.conf
Default virtual host conf/usr/local/apache/conf/vhost/default.conf
Virtual host conf/usr/local/apache/conf/vhost/your_virtual_host.conf
Virtual host SSL location/usr/local/apache/conf/ssl/your_virtual_host
Virtual host location/data/www/your_virtual_host_names
Virtual host log location/data/wwwlog/your_virtual_host_names


Apache Documentation:

Using MySQL Server


Once logged in via your ssh terminal, the first thing to do is to set a new password for the MySQL root user account by running the following commands. Replace the text ‘your_pass_here‘ with your new password.

mysql --user=root --password

Enter password: mysql1234

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';


Using phpMyadmin to manage MySQL databases


To login to phpmyadmin, browse to the following URL on your web browser:




You can login using your root account or you can create a new user account by running the following commands from your ssh terminal:

sudo mysql

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'some_very_complex_password';

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Adding a new Website / Virtual Host


The Apache server uses Lamp


lamp addCreate a new Apache virtual host
lamp delDelete a Apache virtual host
lamp listList all of Apache virtual hosts
lamp versionPrint version and exit


To add a new website simply run the following command:


sudo lamp add


This will then add a new directory for your website.


In the following screenshot i have 3 sites setup


Support / Documentation


If you experience any issues on getting this Apache web server setup on any of the cloud platforms, please contact us and we will assist


For documentation, please refer to the following links:


Using MySQL:


Using phpMyadmin:


Using Apache:

Apache Firewall Ports


Default MySQL port is: TCP 3306

Apache HTTP : TCP 80

Apache TLS: TCP 443


The links below explain how to modify / create firewall rules depending on which cloud platform you are using.


To setup AWS firewall rules refer to – AWS Security Groups

To setup Azure firewall rules refer to – Azure Network Security Groups

To setup Google GCP firewall rules refer to – Creating GCP Firewalls

Avatar for Andrew Fitzgerald
Andrew Fitzgerald

Cloud Solution Architect. Helping customers transform their business to the cloud. 20 years experience working in complex infrastructure environments and a Microsoft Certified Solutions Expert on everything Cloud

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x