در لاراول شما برای تغییر پیش فرض پوشه ی public به public_html شما نیاز دارید که در دو فایل تغییراتی ایجاد کنید تا لاراول متوجه شود که اطلاعات را از پوشه ی public_html بخواند.

همانطور که می دانید بصورت پیش فرض در لاراول روت پروژه پوشه ی public می باشد. اما در برخی مواقع مثلا در هنگام استفاده از cpanel و directAdmin باید روت پیش فرض برنامه پوشه ی public_html باشد.

در لاراول شما برای تغییر پیش فرض پوشه ی public به public_html شما نیاز دارید که در دو فایل تغییراتی ایجاد کنید تا لاراول متوجه شود که اطلاعات را از پوشه ی public_html بخواند.

برای اینکار ابتدا پوشه ی index.php موجود در فایل public پروژه ی خود را باز نمایید خط زیر را پیدا کنید:

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

پس از خط بالا کد زیر را قرار دهید و قایل مربوطه را ذخیره کنید:

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

 

حال فایل \App\Providers\AppServiceProvider.php را باز کنید و کد زیر را در متد register بصورت زیر قرار دهید:

public function register()
{
    // ...

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

 

فایل را ذخیره و لاراول را در سرور خود اجرا نمایید. متوجه خواهید شد که مشکل رفع شده است.