top of page

Setting Up a LAMP Stack on Linux

  • Writer: CloudCastHub
    CloudCastHub
  • Aug 13, 2024
  • 3 min read

A LAMP stack is a common setup for web applications. It includes Linux, Apache, MySQL/MariaDB, and PHP. These parts work together to host dynamic websites. This guide will show you how to set up a LAMP stack on Linux, using Debian as the example.


Introduction to LAMP

The LAMP stack is a powerful tool for web applications. It includes:


  • Linux: The operating system.

  • Apache: The web server that handles HTTP requests.

  • MySQL/MariaDB: The database management system (DBMS) for storing data.

  • PHP: The scripting language for dynamic content.


Together, these components create a stable environment for web applications.


Step 1: Installing Apache Web Server

Apache is the most used web server software. It serves web pages to users.


Start by updating your package list with `sudo apt update`.

updating packages

Then, install Apache using `sudo apt install apache2`.

installing apache2

Run `sudo systemctl enable apache2 && sudo systemctl start apache2`. This command starts Apache automatically at boot time and starts it now.

starting and enabling apache2 service

To check Apache is running, open a web browser and enter your server’s IP address(localhost). You should see the Apache default welcome page, showing the server is working.

apache2 default web page

Step 2: Installing MySQL/MariaDB

MySQL and MariaDB are DBMSs for storing and managing data. MariaDB is a drop-in replacement for MySQL, and both can be used.


Install MariaDB with `sudo apt install mariadb-server`.

installing maria db

Run `sudo systemctl enable mariadb && sudo systemctl start mariadb`. This command starts MariaDB automatically at boot time and now.

starting and enabling maria db service

Secure your MySQL/MariaDB installation by running `sudo mysql_secure_installation`. Follow the prompts to set the root password and remove insecure defaults.

doing a secure installation for maria db

Step 3: Installing PHP

PHP is the scripting language for web applications. It works with Apache and MySQL/MariaDB to deliver dynamic content.


Install PHP and modules with `sudo apt install php libapache2-mod-php php-mysql`. The libapache2-mod-php package lets Apache handle PHP files, and php-mysql lets PHP talk to MySQL/MariaDB databases.

installing php and it's modules

To test PHP, create a simple PHP file in Apache’s default root directory using `echo “<?php phpinfo(); ?>” | sudo tee /var/www/html/info.php`.

phpinfo function

Then, visit “http://server_ip/info.php” in your web browser. You should see a page with your PHP configuration, showing PHP is working.

testing php

Step 5: Testing the LAMP Stack on Localhost

Now, let’s test the LAMP stack by creating a simple PHP file and accessing it via localhost.


1. Creating a PHP Test File

Create a PHP file in the default web root directory (/var/www/html/). Use the command `echo “<?php echo ‘Hello, World’; ?>” | sudo tee /var/www/html/index.php`. This writes the PHP code to a file named index.php in the /var/www/html/ directory.

creating php hello world file

2. Accessing the Test File

Open your web browser and visit http://localhost/index.php. If everything is set up right, you should see “Hello, World” on the page.

php successfully rendered

This shows Apache is serving PHP files correctly, and your LAMP stack is working.


Step 6: Managing Permissions and Security

It’s important to manage file permissions and implement security for your LAMP stack.


Setting Directory Permissions

Use `sudo chown -R www-data:www-data /var/www/html` to set the right ownership and permissions for your web root directory.

changing directory ownership

Next, run `sudo chmod -R 755 /var/www/html`. This lets the Apache user (www-data) manage the files.

changing directory permissions

Securing MySQL/MariaDB

Make your database safe by setting strong passwords and limiting remote access. It’s also smart to create separate database users for each app to reduce risks.


Conclusion

Setting up a LAMP stack on Linux is easy and makes a great environment for web apps. Follow this guide to get a LAMP server ready for your sites. Don’t forget to update your server and check your security often to keep things safe.


FAQ

What is a LAMP stack?

A LAMP stack is a set of open source tools. They work together to make dynamic websites and web apps. It includes the Linux OS, Apache web server, MySQL database, and PHP programming language.


What are the benefits of using a LAMP stack?

Using a LAMP stack has many benefits. It offers a stable and secure platform. It's easy to set up and manage. Plus, it has a big community of users and developers.

It also uses PHP and MySQL for building strong web apps.


How do I check my Linux distribution?

Check your Linux distribution with the command "grep -E '^(VERSION|NAME)=' /etc/os-release".


How do I update and upgrade my Linux system?

Update and upgrade your system with the right package manager. For Ubuntu/Debian, use "apt". For Fedora, use "dnf". For RHEL, use "yum".


How do I install the Apache web server?

Install Apache with the right command. For Ubuntu/Debian, use "sudo apt install apache2 -y". For Fedora, use "sudo dnf install httpd -y". For RHEL, use "sudo yum install httpd -y".

Comments


Cloud Cast Hub

Explore the ever-evolving world of cloud computing with Cloud Cast Hub, your premier resource for in-depth articles and expert insights on AWS and GCP

SUBSCRIBE 

Thanks for submitting!

© 2024 CloudCast Hub.

bottom of page