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
Setting Up Gitlab container Registry on own Domain. Jagadeesh V

GitLab Container Registry is a secure and private registry for Docker images integrated completely in Gitlab. In this tutorial we will setup and use GitLab ...

Continue Reading...
HTTP2 and SPDY Protocols - Make HTTP Faster and Safer Dinesh Deshmukh

HTTP/2, next version of HTTP/1, http/1 can not handle the present web which has become more resource intensive, it cannot processes multiple requests in an ...

Continue Reading...
Ansible Galaxy Introduction. Dinesh Deshmukh

Ansible Galaxy is the hub of ansible scripts contributed by users. To follow this article its important that you know about ansible. We have a ...

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