update repository and install nginx
sudo apt-get install update
sudo apt-get install nginx -y
sudo apt-get install mysql-server
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
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
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