rss feed Twitter Page Facebook Page Github Page Stack Over Flow Page

Install a LAMP (Apache, PHP, Mysql) On Ubuntu


* PLEASE NOTE *
Consider using Docker instead!

This guide will help you to install a local web server using Apache, MySQL and PHP on Ubuntu.

Install apache2:

sudo aptitude install apache2

Edit the /etc/apache2/httpd.conf to setup your ServerName

ServerName <myhostname>

Start apache2 and test:

sudo /etc/init.d/apache2 start

* If everything is OK you should see an ordinary HTML page when you type: http://localhost in your Firefox browser

Stop apache to install other component:
sudo /etc/init.d/apache2 stop

Let's install PHP

sudo aptitude install php5 libapache2-mod-php5

Restart Apache

sudo /etc/init.d/apache2 start

To test the PHP installation, create a dummy file in /var/www/

<?php
    //file: test.php
    phpinfo();
?>

PDO (PHP Data Objects)

If PDO (PHP Data Objects) is not installed, this is how to install it:

First, install some needed modules:

sudo aptitude install php5-dev libmysqlclient15-dev

libmysqlclient15-dev is needed by PDO mysql driver

Next, install the PHP pear:

sudo aptitude install php-pear

Then, you can install the PDO itself and the database specific driver, for example mysql driver:

pecl install pdo
pecl install pdo_mysql

Check the php.ini: open the /etc/php5/apache2/php.ini and add check if these following lines are there

extension=pdo.so
extension=pdo_mysql.so

if not installed, you can simply add it

And don't forget to restart your web server.

sudo /etc/init.d/apache2 restart

Install MySQL

MySQL:

sudo aptitude install mysql-server

Set your root password

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');

Try running it

mysql -uroot -p

your password will be asked!

Now let's install mysql with apache

sudo aptitude install libapache2-mod-auth-mysql php5-mysql

Set the default engine

If you like to set the default engine to innodb or myisam you can easily change it using the default-storage-engine option in the /etc/mysql/my.cnf file.

default-storage-engine = innodb

Restart MySQL

/etc/init.d/mysql restart

Restart apache and test

sudo /etc/init.d/apache2 restart

(optional) you can set up your /etc/mysql/my.cnf file regarding your needs

Installation done! enjoy!

Once everything is installed, you might need some useful PHP extensions like:

sudo aptitude install php5-cli php5-curl php5-gd php5-imap php5-mcrypt