User Tools

Site Tools


projects:gertie:lemp:install_lemp_linux_nginx_mariadb_and_php_in_ubuntu_15.10

Install LEMP (Linux, Nginx, MariaDB and PHP) in Ubuntu 15.10

by Marin Todorov October 26, 2015

Download Your Free eBooks NOW - 10 Free Linux eBooks for Administrators | 4 Free Shell Scripting eBooks

Ubuntu 15.10 Wily Werewolf has been released a few days back and you can now easily install LEMP on it.

For those of you who don't know what LEMP is - this is a combination of software packages - Linux, Nginx (pronounced EngineX), MariaDB and PHP. You can use LEMP for both testing purposes or in a real production environment to deploy web applications.

image1

Install LEMP on Ubuntu 15.10

You may wonder what's the different between LAMP and LEMP. Well the only different is the web server that is included - Apache (in LAMP) and Nginx (in LEMP). Both web servers are pretty good and while Apache is the most frequently used one, Nginx doesn't back down in any way.

If you looking for a LAMP setup for your Ubuntu 15.10, then you should follow our LAMP setup guide here:

Install LAMP Stack on Ubuntu 15.10


Prerequisites:

Step 1: Installing Nginx Web Server

1. Nginx is a fast modern web server designed to server many concurrent connections without consuming too much server resources. This is why it's often the preferred choice in enterprise environments.

You can setup Nginx on your Ubuntu 15.10 desktop or server by running the following command:

$ sudo apt-get install nginx

image2

Install Nginx in Ubuntu 15.10

2. Now it's time to check if the Nginx installation was successful by calling the Nginx page via browser using server IP Address.

If you don't know your Server IP address, you can find using ip command as shown.

$ ip addr show

image3

Find Server IP Address

3. Now copy that IP address and paste it in the address bar of your browser. You should see the default Nginx page:

http://server-ip-address

image4

Confirm Nginx Installation

If you need to modify the Nginx settings, you can find its configuration file in:

/etc/nginx/nginx.conf

Step 2: Installing MariaDB Database

4. MariaDB is relatively new relational database management system which was designed as community fork of MySQL after it's Oracle acquisition.

The installation of MariaDB is simple and can be started with command as:

$ sudo apt-get install mariadb-server mariadb-client

image5

Install MariaDB in Ubuntu 15.10

5. If you wish to improve the MariaDB security, you can run the mysql_secure_installation command, which will provide some basic, yet important options to configure:

$ sudo mysql_secure_intallation

image6

Secure MySQL Installation

6. You will be asked to enter the MySQL/MariaDB root password. The default one is empty so you may simply press enter. After that you will be asked if you wish to setup new password for MariaDB root user:

image7

Set MySQL root Password

7. By default MariaDB allows connections from anonymous users. You should disable anonymous logins as well as disable remote root access to the databases on your database server.

Usually you will be creating separate users who have privileged users to each database. This is why anonymous and remote root connections should be disabled:

image8

Remove MySQL Anonymous User

8. When installing MariaDB it creates a “test” database. You will be asked if you wish to remove it. The recommended answer is yes:

image9

Remove MySQL test Database

9. Finally to implement the changes you just made, you will need to reload the privilege table. Simply use “y” as answer:

Your MariaDB installation is now complete and secured. To start and check the service status, use the following commands:

$ sudo service mysql start
$ sudo service mysql status

image10

Start MariaDB Service

10. If you wish to modify the configuration settings of MariaDB you will need to edit the following file:

/etc/my.cnf

Keep in mind that each time you modify the file, you will need to restart the MariaDB service with:

$ sudo service mysql restart

Step 3: Installing PHP Language

11. PHP is programming language designed for building dynamic web applications. You can easily install it on your Ubuntu 15.10 by using:

$ sudo apt-get install php5-fpm php5-mysql

image11

Install PHP and PHP-FPM in Ubuntu 15.10

12. As php5-fpm runs as service you will need to start it with the following command:

$ sudo service php5-fpm start
$ sudo service php5-fpm status

image12

Start PHP-FPM Service

Step 4: Configure Nginx Web Server

13. Next we need to configure Nginx so that it can use PHP that we just installed. To do that, we need to modify the server blocks.

Server blocks are similar to Apache vhosts. To edit the server blocks, you need to modify the following file with root privileges:

$ sudo vi /etc/nginx/sites-available/default

The uncommented part of the code in that file looks like this:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
 
    root /usr/share/nginx/html;
    index index.html index.htm;
 
    server_name localhost;
 
    location / {
        try_files $uri $uri/ =404;
    }
}

You will need to edit it so it looks like this:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
 
    root /usr/share/nginx/html;
    index index.php index.html index.htm;
 
    server_name server_domain_name_or_IP;
 
    location / {
        try_files $uri $uri/ =404;
    }
 
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Make sure to change server_domain_name_or_IP with your actual domain or IP address. Once you have finished editing the file restart Nginx with:

$ sudo service nginx restart
$ sudo service nginx status

14. Now let's test if PHP is working as intended. Create an info.php file like this:

$ sudo vi /usr/share/nginx/html/info.php

Press “i” and insert the following code:

<?php phpinfo() ?>

Now press “Esc” and then “:wq” so the file is saved. Now open your browser and navigate to:

http://your-ip-address/info.php

You should see a PHP info page like this:

image13

Check PHP and PHP-FPM Info

Congratulations! Your LEMP setup on Ubuntu 15.10 is now complete!

Conclusion

projects/gertie/lemp/install_lemp_linux_nginx_mariadb_and_php_in_ubuntu_15.10.txt · Last modified: 2017/06/27 15:41 by 127.0.0.1