I’m using a shared hosting which uses cPanel as its control panel and within the cPanel public_html
is the default root directory, because of this I can’t get my Laravel application work properly.
Is there any way to make Laravel use public_html
instead of public folder?
Advertisement
Answer
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__; });
Edit:
As Burak Erdem mentioned, another option (and more preferable) is to put this in the AppProvidersAppServiceProvider
register()
method.
/** * Register any application services. * * @return void */ public function register() { // ... $this->app->bind('path.public', function() { return base_path('public_html'); }); }