How to host a Laravel 5 site with cPanel

To set Laravel up to function in a shared hosting environment, you’ll need to split the installation. Instead of doing a normal installation into just your project folder, you’ll instead install Laravel into the project folder at the same level as the public_html folder.

$ composer create-project laravel/laravel project --prefer-dist

Once this is done, move all the files from the `project/public` folder into the `public_html` folder.

$ mv project/public/.* public_html

Edit `public_html/index.php`, changing

require __DIR__.'/../bootstrap/autoload.php'{semicolon}

$app = require_once __DIR__.'/../bootstrap/app.php'{semicolon}

to

require __DIR__.'/../project/bootstrap/autoload.php'{semicolon}

$app = require_once __DIR__.'/../project/bootstrap/app.php'{semicolon}

Set the permissions on your `storage` folder

$ chmod -R o+w project/storage

Create `project/app/SharedHostApplication.php` with

<?php namespace App{semicolon}

use IlluminateFoundationApplication{semicolon}

class SharedHostApplication extends Application
{
    public function publicPath()
    {
        return realpath($this->basePath . '/../public_html'){semicolon}
    }
}

Lastly, edit `project/bootstrap/app.php`, changing

$app = new IlluminateFoundationApplication(

    to

$app = new AppSharedHostApplication(

    That should do it!