How to change public folder to public_html in Laravel

Quite easy to find this with a simple search.


In your index.php add the following 3 lines.

| Turn On The Lights
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.

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

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;


As Burak Erdem mentioned, another option (and more preferable) is to put this in the \App\Providers\AppServiceProvider register() method.

 * Register any application services.
 * @return void
public function register()
    // ...

    $this->app->bind('path.public', function() {
        return base_path('public_html');

Leave a Comment