Laravel on Bluehost Shared Hosting

Project Code

Create new directory at root called “laravel” and put entire project minus the public folder there. Create a new .env file and call it .env.production. Change the values inside that file to reflect the production environment. Upload that file to the production server and rename it to .env.

Public Code: Subdomain

Do this if you want to put the public folder into a subdomain (like for testing). Create your subdomain through cPanel and your directory structure will be /public_html/subdomain. Clear out the “subdomain” folder.

In the public folder, create a new file and call it bluehost.index.php or whatever – just so you know it’s the index file only for the live site. Copy the contents of index.php into it.

Then, change

`require __DIR__.'/../bootstrap/autoload.php';`

to

`require __DIR__.'/../../laravel/bootstrap/autoload.php';`

Change

`$app = require_once __DIR__.'/../bootstrap/app.php';`

to

`$app = require_once __DIR__.'/../../laravel/bootstrap/app.php';

// set the public path to this directory
// so that public_path() still works
$app->bind('path.public', function() {
    return __DIR__;
});`

Now upload the contents of your public folder to the subdomain directory. Rename bluehost.index.php to index.php.

1 comment

  1. “Create a new .env file and call it .env.production. Change the values inside that file to reflect the production environment. Upload that file to the production server and rename it to .env. ”

    Where to create the .env file ? bluehost or my pc ?
    ‘call it .env.production’… is that meaning rename the `.env` file to `.env.production` ?
    Then where to upload the `.env` file after renaming?

    Please clarify these issues

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.