Linux, Apache, MySQL, PHP (LAMP) For Scalable Web Applications Training

Training Description:

Linux, Apache, MySQL and PHP (known as LAMP for short) has been the best technology stack of choice of millions of dynamic web sites and applications.

This training focuses on using LAMP and also on how to do so in a way where the applications developed are massively scalable. We focus on read only clustering, horizontal clustering, session management in a distributed environment and load balancing.

Training Objectives:

  1. To install and configure all the software used (Linux, Apache, MySQL and PHP).
  2. To perform Linux administrative functions.
  3. To write PHP web sites/applications.
  4. To debug PHP code
  5. To use MySQL and access using PHP.
  6. To implement a read only MySQL cluster.
  7. To design and implement horizontally scalable web applications.
  8. To manage sessions in a clustered environment.
  9. To balance the load across servers using software load balancers.

Target Groups:

  1. Those who are interested in using Linux, Apache, MySQL and PHP to develop dynamic web sites and applications also with scalability in mind.

Prerequisites:

  1. General computer literacy
  2. Familiarity with a computer programming language will be advantageous.
  3. Familiarity with using a relational database will also be advantageous.

Communication Language:

English

Duration:

3 days (24 hours)

Facilitator:

Kamal Wickramanayake (Profile)

Notes:

  1. This training is done with hands-on lab exercises.
  2. This training does not cover all the features found in LAMP stack. The training focuses on the most useful features.

Training Content:

  1. Introduction To Linux
    • What is Linux and a GNU/Linux distribution?
    • Selecting a distribution
    • Installation of Linux
  2. Linux File System Overview
    • Home directory
    • Typical locations of executables (/bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, /usr/local/sbin)
    • Typical locations of configuration files (Dot files, /etc)
    • Other important files and locations (/boot, /proc, /dev, /var, /tmp)
  3. Some System Administration
    • Managing user accounts and user groups
    • Package management
    • Starting/stopping services
    • Switching between users
  4. File Editing
    • GUI based editors
    • Console based editors
  5. Useful Linux Tools
    • Telnet
    • Secure Shell (SSH)
    • VNC
    • FTP
    • SCP
    • ping
    • traceroute
    • telnet
    • nmap
  6. Installation and Administration Of MySQL
    • General overview
    • Managing databases
    • User management
    • Getting familiar with the mysql command line
    • Table types
    • Transaction related options
    • Operational administration of MySQL (Backups, recovery,...)
  7. Getting Started With Apache Web Server
    • Installation
    • Configurations
  8. PHP
    • Basics of PHP
    • PHP API documentation
    • Writing object oriented code
    • Session management
    • Interacting with a MySQL database
    • Using database transactional features
    • Working with XML
    • Debugging PHP code
  9. Implementing Scalability
    • Implementing a MySQL read only cluster
    • Implementing a software load balancer using Apache
    • Partitioning an application horizontally
    • Session management in a horizontally scaled cluster
    • Do's and dont's in a scalable application

Trainings over the Internet