Skip to content

Instantly share code, notes, and snippets.

@oudam-meas
Last active December 12, 2017 08:53
Show Gist options
  • Save oudam-meas/a9354d41d3cd2c25e92400b6ede5f7ec to your computer and use it in GitHub Desktop.
Save oudam-meas/a9354d41d3cd2c25e92400b6ede5f7ec to your computer and use it in GitHub Desktop.

Install nginx

update repository and install nginx

sudo apt-get install update
sudo apt-get install nginx -y

Install Mysql Server

sudo apt-get install mysql-server

Install PHP for Processing - fpm

First, install php package

sudo apt-get install -y php7.0 php7.0-fpm php7.0-mysql php7.0-zip php7.0-gd

Second, import package for laravel

sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get install -y php7.0-mbstring php7.0-xml --force-yes

Then enable cgi.fix_pathinfo=0 in php.ini

sudo vim /etc/php/7.0/fpm/php.ini

Uncomment

cgi.fix_pathinfo=0

Restart PHP 7.0 FPM

sudo service php7.0-fpm restart

Config Nginx for Laravel

Create a new site config Eg. Create Source folder for laravel project

sudo mkdir -p /var/www/laravel

Then, we config default Nginx site avaialble for PHP Processing

Backup the existing /etc/nginx/sites-available/default

sudo mkdir ~/Backups
sudo cp /etc/nginx/sites-available/default ~/Backups/default

Create new site-available from /etc/nginx/sites-available/default with

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/laravel 

Edit newly created /etc/nginx/sites-available/laravel

sudo vim /etc/nginx/sites-available/laravel

Originally it is:

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;
        }
}

Now, Modify it to:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/laravel/public;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name <Your Domain name / Public IP Address>;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                ttry_files $uri $uri/ /index.php$is_args$args;$query_string;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

Save the file:

Press key [ESC] then type [:wq!]

Link /etc/nginx/sites-available/laravel to sites-enable

sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/

Restart Nginx

sudo service nginx restart

Create Sample LaravelProject

Install Composer

cd ~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Create Project

sudo composer create-project laravel/laravel /var/www/laravel

Set the right permission on the file

sudo chown -R :www-data /var/www/laravel
sudo chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment