Problem

The default Nginx web page shows for your project.

You have Nginx installed and have created a Laravel project, but the web page returned by your browser is the default Nginx web page.

Solution

Create a Nginx Virtual Host for your project.

laravel:~$ cd /etc/nginx/sitesavailable


laravel:/etc/nginx/sitesavailable$ sudo vi myapp

Have the contents of the file match what’s below.

server {


    listen 80;


    server_name myapp.localhost.com;


    root /home/vagrant/projects/myapp/public;


   


    index index.html index.htm index.php;


   


    charset utf8;

    location / {


        try_files $uri $uri/ /index.php$is_args$args;


    }


   


    location = /favicon.ico { access_log off; log_not_found off; }


    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;


    error_log  /var/log/nginx/myapperror.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ .php$ {


        fastcgi_split_path_info ^(. .php)(/. )$;


        fastcgi_pass unix:/var/run/php5fpm.sock;


        fastcgi_index index.php;


        include fastcgi_params;


        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


        fastcgi_intercept_errors off;


        fastcgi_buffer_size 16k;


        fastcgi_buffers 4 16k;


    }

    location ~ /.ht {


        deny all;


    }

}




Save the file, then continue below.

laravel:/etc/nginx/sitesavailable$ cd ../sitesenabled


laravel:/etc/nginx/sitesenabled$ sudo ln s /etc/nginx/sitesavailable/myapp


laravel:/etc/apache2/sitesenabled$ sudo service nginx restart

Fixing Permissions

If you’re running a virtual machine under Vagrant, you may want to change the user and group to avoid permission issues.

To do this:

laravel:~$ cd /etc/php5/fpm/pool.d


laravel:/etc/php5/fpm/pool.d$ sudo vi www.conf

Change the user and group lines to your user and group.

user = vagrant


group = vagrant




Save the file and restart the PHP FastCGI Process Manager.

laravel:/etc/php5/fpm/pool.d$ sudo service php5fpm restart

Discussion

Nginx has many configuration options.

The configuration above is a basic configuration which works with Laravel. Nginx provides great power and flexibility with it’s configuration. Check out the Nginx Website for more information.