php7 hosting on Ubuntu Server with Nginx(LEMP stack)

Reading Time : ~ .

LEMP STACK:

PHP7 is the latest version with a lot of performance improvements and everyone wants to update their servers and code to it. Let's see how to configure one and host your code.

Here we see the combination of ubuntu, Nginx, PHP-fpm, php7, mysql, vsftpd

Configuring Ubuntu server:
The first step is to disable password authentication and enable ssh key based authentication as it will give some protection towards server hacks.

Install Requirements:

sudo apt-get install nginx
sudo apt-get install mysql
sudo apt-get install php7.0-cli php7.0-fpm php7.0-mysql


Copy your project to /usr/share/nginx/www/ directory, of course you can have your project location based on your requirement but remember to specify its location in nginx configuration.

Now that we have all setup lets create nginx configuration.

cd /etc/nginx/site-available/
vi my_project.conf
server {
    listen 80;
    root /usr/share/nginx/www;
    index index.php index.html;
    server_name your_ip_or_domain_name;
    location / {
        try_files $uri $uri/ /index.php;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php7-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
    }
}

 

The above configuration specifies that the project is served by port 80, the location / represents the root directory of your project, so any file that you request by specifying after your domain name will be search in / directory, here its your project root directory. The php7-fpm.sock file is genereted by php7-fpm which is used by nginx to communicate with your php project.

Now lets enable this project by linking it with sites-enable direcotry, run:

ln -s /etc/nginx/sites-available/my_project.conf /etc/nginx/sites-enabled/

Test your configuration, run:

nginx -t

if no errors, restart nginx

service nginx restart

By now your server server is deployed with LEMP stack.

    By Posted On
SENIOR DEVELOPER at MICROPYRAMID

Need any Help in your Project?Let's Talk

Latest Comments
Related Articles
Daemonizing any command with SUPERVISOR Ashwin Kumar

Daemonizing a command means to make it run as a background process.

so when we have a command that we want to daemonize there are ...

Continue Reading...
Configuring WordPress Blog as sub-directory alongside Django in Nginx Ashwin Kumar

Using regular expressions within Nginx we can bind urls to particular application servers, below we will configure wordpress blog and django site to be deployed ...

Continue Reading...
MySQL Setup and Security Jagadeesh V

In This Post you'll learn to install and secure your MYSQL Setup to interact with external applications.

Continue Reading...

Subscribe To our news letter

Subscribe to our news letter to receive latest blog posts into your inbox. Please fill your email address in the below form.
*We don't provide your email contact details to any third parties