Guide: what is LAMP and how to install it on Ubuntu and MacOS

BACK

November 25th, 2022, posted in tech_stuff
by Adelina, Corina

LAMP is an acronym for a widely used stack of software - Linux, Apache, MySQL, PHP/Perl/Python - in building web applications. There are different variations of the stack, depending on the operating system: on Windows it’s called WAMP and on Mac it’s called MAMP. Lately, the components of this stack tend to vary, but it’s still widely used across web apps.

 

The components of the bundle are open-source and they refer to:

  • An operating system: Linux or MacOS in this case
  • A web server: Apache
  • A relational database: MySQL
  • A programming language: PHP or Perl or Python

 

How to install LAMP on Ubuntu

Prerequisites: Ubuntu version 18.04 or later

 

Step 1. Install Apache

First make sure the package list on the system is up to date and then Apache can be installed and the traffic has to be enabled. In the terminal write the command:

sudo apt update - it might require your credentials for the execution of the command

sudo apt install apache2 - to install Apache

sudo service apache2 status  - to confirm that Apache is running

sudo ufw app list - this command will adjust the firewall to allow web traffic

sudo ufw app info "Apache Full" - to see the PORTs where the traffic is enabled

sudo ufw allow "Apache Full" - to allow the traffic

 

Step 2. Install MySQL

MySQL it’s a relational database management system where you can store the information for your application.

Here are commands you need to run to install it:

sudo apt  install mysql-server - for installation

sudo systemctl start mysql.service - to make sure the service is running

To configure and secure MySQL you should run:

sudo mysql_secure_installation - helps with setting a password and with setting up security

To use MySQL is a simple command of:

sudo mysql -u root -p

Also you can create a new user and grant privileges if you don’t want to use the default root user. For easier use of MySQL, phpMyAdmin can be used to create DB, add tables, edit tables and rows, edit/add/delete columns, and create views.

 

Step 3. Install PHP

Now we need to install PHP and the extensions needed:

sudo apt install php libapache2-mod-php php-mysql

Or if you want to install a specific PHP version, in this example version 8 of PHP:

sudo apt install php8.0 libapache2-mod-php8.0

Probably you will need more extensions for your project so you can search for them by using the command:

sudo apt install php8.0-[extname]

Some commonly used extensions are:

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

 

Optional. Install phpMyAdmin

After you install your LAMP bundle you can install phpMyAdmin to work easier with MySQL and see your data clearer.

For Ubuntu 18.04

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl 

The next step is to select Apache2 as server for your MySQL configuration and to add your password to access phpMyAdmin.

For Ubuntu 20

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

sudo phpenmod mbstring

sudo systemctl restart apache2

Set up a user and credentials

For the root user use the command sudo mysql -u root -p and after you hit enter you will need to add your password

Also to have full privileges, you will need to run this in the command line:

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

FLUSH PRIVILEGES;

EXIT

 Now you can access phpMyAdmin from your browser by going to: http://localhost/phpmyadmin.

 

How to install LAMP on MacOS

As with LAMP on Ubuntu, Mac users that work with PHP files and projects need to install the (L)AMP bundle for local testing.

 

Prerequisites: Have Homebrew installed.

 

Step 1. Install Apache

First, it’s a good idea to check if Apache is already installed because on some versions it is. To find if you already have Apache installed and which version, the command httpd -v will help you.

 

If Apache is already  installed, then you should check its status by running:

sudo apachectl configtest

 

To stop the services: sudo apachectl stop

 

To stop the services: sudo apachectl start

 

To restart the services: sudo apachectl restart

 

If the web server is not pre-installed you will need to run the following commands to install:

  • create in your root a new folder - mkdir ~/Sites
  • Also create an  index. html file for testing with - echo "Apache Testing" >~/Sites/index.html
  • brew update - to update the package installer
  • brew install httpd - to install the new version. Note that https is the same as Apache2.0.
  • brew services start httpd - it configures the Apache server to start automatically.

Now Apache is installed and running. To check if everything works as expected you should go to htpp://localhost:8080

 

Configuration

  • Open the following file in an editor: /usr/local/etc/httpd/httpd.conf 
  • You can change listen 8080 to listen 80
  • Make the following changes:

1. Change Document Root “/usr/local/www” to Document Root “/Users/YOUR_USERNAME/Sites”  (by typing the command whoami you can see your username)

2. Change <Directory “usr/local/www”  to <Directory “Users/YOUR_USERNAME/Sites”> and here also change from AllowOverride None to AllowOverride All

3. Uncomment  #LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

4. Change User _www to YOUR_USERNAME

5. Change Group _www to Group staff

6. Uncomment and change to update the PORT #ServerName www.example.com:8080 to ServerName www.example.com:80

Now you will need to restart Apache, go to your localhost and there you can find the documents from your Sites directory.

 

Step 2. Install PHP

PHP is also installed with the help of Homebrew

brew install [email protected] - to install PHP version 8 (you can also install different PHP versions and choose which version to use)

brew services start [email protected] - to start the services

php -v - check your PHP version you run

Configuration

  • Open the following file in an editor /usr/local/etc/httpd/httpd.conf 
  • After the LastModule in the file insert, depending on your version, add LoadModule php8_module /usr/local/opt/php/lib/httpd/modules/libphp8.so
  • Change DirectoryIndex index.html to DirectoryIndex index.html index.php 
  • Insert the following between previously update and htaccess/htpasswd:

<FilesMatch \.php$>

SetHandler application/x-httpd-php

</FilesMatch>

At this point you should restart Apache. You can also create a .php file in your Sites directory to make sure it’s working and test it by going to the http://localhost/your_file.php.

 

Step 3. Install MySQL

To work with stored data you need to install MySQL

brew install mysql - for installation

brew services start mysql - to start the server

mysql_secure_installation - run the command to follow the process of securing the server

mysql -u root -p - to connect to the server, the name is root; after this command you will need to add your password

Now you can connect your application to your MySQL Database.

 

And there it was, that’s how to install LAMP on Ubuntu and MacOS. Now you can freely use this package in your projects.

 


About the authors

Adelina

Artsy kid navigating the world of tech for the first time and trying to learn as much as possible about it. My biggest passions are video making, writing, and TV shows I can cry to at 2AM. I also really love IKEA.

See more articles by Adelina

Corina

I`m a junior full stack developer at UPDIVISION. I never thought I will get passionate about tech and development and now I can’t imagine a more interesting and challenging field. The new things that I get to learn on a daily basis just keep me wanting to learn more and wanting to share my knowledge with others. I always try to keep stuff fun and challenging!

See more articles by Corina