This page contains instrucions on how to install php5,MySql and apache2 on ubuntu platform

In this guide I will show you how to install a LAMP system. LAMP stands for Linux, Apache, MySQL, PHP. The guide is intended to help those who have very little knowlegde of using Linux.

Install Apache

    To start the procedure, we will install Apache. 

    1. Open up the Terminal ( Applications > Accessories > Terminal).

    2. Copy/Paste the following line of code into Terminal and then press enter:

    sudo apt-get install apache2

    3. The Terminal will then ask you for you’re password, type it and then press enter.

Testing Apache

    To make sure everything installed correctly we will now test Apache to ensure it is working properly.
    1. Open up any web browser and then enter the following into the web address:

    You should see a folder entitled apache2-default/
    . Open it and you will see a message saying “It works!” , congrats to you!

Install PHP

    In this part we will install PHP 5. 

    Step 1. Again open up the Terminal ( Applications > Accessories > Terminal).

    Step 2. Copy/Paste the following line into Terminal and press enter:
    sudo apt-get install php5 libapache2-mod-php5

    Step 3. In order for PHP to work and be compatible with Apache we must restart it. Type the following code in Terminal to do this:
    sudo /etc/init.d/apache2 restart

Test PHP

    To ensure there are no issues with PHP let’s give it a quick test run. 

    Step 1. In the terminal copy/paste the following line:
    sudo gedit /var/www/testphp.php
    This will open up a file called testphp.php
    Step 2. Copy/Paste this line into the phptest file:
    <?php phpinfo(); ?>

    Step 3. Save and close the file.

    Step 4. Now open you’re web browser and type the following into the web address:
    The page should look like this:

    testing php

    Congrats you have now installed both Apache and PHP!

Install MySQL

    To finish this guide up we will install MySQL. (Note – Out of Apache and PHP, MySQL is the most difficult to set up. I will provide some great resources for anyone having trouble at the end of this guide.) 

    Step 1. Once again open up the amazing Terminal and then copy/paste this line: sudo apt-get install mysql-server

    Step 2 (optional). In order for other computers on your network to view the server you have created, you must first edit the “Bind Address”.
    Begin by opening up Terminal to edit the my.cnf file

    gksudo gedit /etc/mysql/my.cnf
    Change the line bind-address =
    And change the to your IP address.

    Step 3. This is where things may start to get tricky. Begin by typing the following into Terminal: mysql -u root
    Following that copy/paste this line: mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘yourpassword’);
    (Make sure to change yourpassword
    to a password of your choice.)

    Step 4. We are now going to install a program called phpMyAdmin which is an easy tool to edit your databases.
    Copy/paste the following line into Terminal: sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

    After that is installed our next task is to get PHP to work with MySQL.
    To do this we will need to open a file entitled gksudo gedit /etc/php5/apache2/php.ini
    Now we are going to have to uncomment the following line by taking out the semicolon (;).
    Change this line: ;
    To look like this:
    Now just restart Apache and you are all set! sudo /etc/init.d/apache2 restart

    Quick note to anyone who encountered problems with setting up the MySQL password, please refer to this page:MysqlPasswordReset



  1. Create your own file system which is basically a file filled with zeros
    dd if=/dev/zero of=/home/ruwan/Desktop/myHDD bs=1024 count=4096

    ♦  if=/dev/zero => select input file as /dev/zero to fill the file system with ‘0’ s(zeros).

    ♦ of=/home/ruwan/Desktop/myHDD => Output file or the destination of the file to be created.

    ♦  bs=1024 => block size of the device is 1024 bytes

    ♦  count=4096 => write this much of blocks (1024 bytes x 4096 =4194304 bytes[4.2MB]

    For the commands we use in step 2,3 and 5 ,  Super User permission is needed. So Its better to get it at this point.

    Type ‘sudo bash’ to get the root permission.


  2. Set your file into a blocked device using looped devices (I have used the loop0 here). There are eight loops available to use as looped devices( loop0 to loop7)
    losetup /dev/loop0 /home/ruwan/Desktop/myHDD
  3. Format your file into a file system. You can choose whatever file system you like ( here i have used ext3 file system)
    mkfs.ext3 /dev/loop0
  4. Create a directory on /media . This directory will be used (in step 5)to mount your file system
    mkdir /media/myDevice
  5. Mount your file system to the directory created earlier.
    mount -t ext3 /dev/loop0 /media/myDevice
  6. Now Create a file on /media/myDevice filled with the content.
  7. Delete the file you have Created.( use ‘rm’ to delete)
  8. And now you are going to recover the file content you have deleted.
    grep -i -a -A200 -B0 'some_text' /dev/loop0|strings >recoveredFile.txt

    Arguments used:
    ♦  -i: Ignore case distinctions in  both  the  PATTERN  and  the  input files.  (-i is specified by POSIX.)
    ♦ -a: Process a binary file as if it were text
    ♦ -A[Number]: print [Number] of lines ‘A’fter matching pattern
    ♦ -B[Number]:print [Number] of lines ‘B’efore matching point
    ♦ ‘some_text’: word or phrase within the content of the file deleted.

  9. After recovery is done you can unmount your device
    umount /media/myDevice             // Unmount the device
  10. And the last step is to detach the loop associated with your device.
    losetup -d /dev/loop0	      // Detach the loop device


This is an alternative method to recover a deleted file. In this method we will not use the losetup command and give the  freedom to operating system to  choose the random FREE loop at that moment. ( Remember last time we have specified the loop as loop0)

dd if=/dev/zero of=/home/ruwan/Desktop/myHDD bs=1024 count=4096

mke2fs /home/ruwan/Desktop/myHDD

mkdir /media/myDevice

mount -t ext2 -o loop /home/ruwan/Desktop/myHDD /media/myDevice/

#create a file on /media/myDevice (or the mounted device) .And then write some text to that file

Remove the file (rm /media/myDevice/file.txt)

grep -ia -A200 -B200 "hello.txt" myHDD |strings >recoveredFile.txt 


• mke2fs => Format device as a Linux Second Extended Filesystem( ext2)

• mkdir /media/myDevice => above file system will be mounted on to this folder later

• losetup =>


sudo losetup /dev/loop0 /home/ruwan/Desktop/myHDD

In Unix-like operating systems, a loop device is a pseudo-device that makes a file accessible as a block device.Before use, a loop device must be connected to an existing file in the filesystem. The association provides the user with an API that allows the file to be used in place of a block special file (cf. device file system). Thus, if the file contains an entire file system, the file may then be mounted as if it were a disk device. ( Source: wikipedia )

For More Details Click Here