Setup Laravel 4 to a web host subfolder
Suppose you a domain, http://domain.com. Here’s an example of the structure you might be using:
domain.com/ (the root of your web hosting)
-->yourlaravel4_base/
-->[some other folders...]
-->public_html/ (where your html files and such go)
-->[some other folders...]
-->yourlaravel4/
/public_html/ is the root of the publicly accesible part of your web hosting files. You wanna make a subfolder in /public_html/ (in this case /public_html/yourlaravel4/). In this subfolder you will store all the contents of the Laravel 4 “public/” folder.
Now, for the rest of the files. You have to go to the root of your web hosting files, that is, you wanna be at domain.com/ level, therefore being able to see public_html/ and some other folders. Then, we need to create a folder here, where Laravel 4’s base files will be stored. In this case, it’s domain.com/yourlaravel4_base/. Inside yourlaravel4_base/ we need to store every file and folder that exists in the base Laravel 4 directory. That would be app/, bootstrap/, vendor/, server.php, etc etc. Everything EXCEPT the /public/ folder, whose contents you already stored in public_html/yourlaravel4/.
Finally, we need to edit 2 files: Laravel’s /bootstrap/paths.php and /public/index.php.
In the paths.php file, replace:
'app' => __DIR__.'/../app',
with:
'app' => __DIR__.'/../../yourlaravel4_base/app',
In the paths.php file, replace:
'public' => __DIR__.'/../public',
with:
'public' => __DIR__,
In the paths.php file, replace:
'base' => __DIR__.'/..',
with:
'base' => __DIR__.'/../../yourlaravel4_base',
In paths.php, replace:
'storage' => __DIR__.'/../app/storage',
with:
'storage' => __DIR__.'/../../yourlaravel4_base/app/storage',
In index.php, replace:
require __DIR__.'/../bootstrap/autoload.php';
with:
require __DIR__.'/../../yourlaravel4_base/bootstrap/autoload.php';
In index.php, replace:
$app = require_once __DIR__.'/../bootstrap/start.php';
with:
$app = require_once __DIR__.'/../../yourlaravel4_base/bootstrap/start.php';