Avoid public folder of laravel and open directly the root in web server

前端 未结 9 2133
礼貌的吻别
礼貌的吻别 2020-11-29 16:45

I was going through all possible sample on internet to solve this. Still it is an headache.

I just want to avoid the \'public\' in www.mylaravelsite.com/public

9条回答
  •  误落风尘
    2020-11-29 17:45

    Let's assume you have this folder structure in your server

    .cpanel/
    public_html/
    public_ftp/
    ..
    

    And the laravel folder structure is

    app/
    bootstrap/
    public/
    vendor/
    composer.json
    artisan
    ..
    

    You can create a folder name mylaravelsite on your server inline with public_html and public_ftp folder, and copy to it the whole laravel application except the public folder because you will paste all of it contents on the public_html, so you have now:

    .cpanel/
    public_html/
    public_html/packages
    public_html/vendor
    public_html/index.php
    public_html/.htaccess
    ...
    public_ftp/
    mylaravelsite/
    mylaravelsite/app
    mylaravelsite/bootstrap
    ...
    

    On your public_html/index.php change the following line:

    require __DIR__.'/../bootstrap/autoload.php';
    
    $app = require_once __DIR__.'/../bootstrap/start.php';
    

    to

    require __DIR__.'/../mylaravelsite/bootstrap/autoload.php';
    
    $app = require_once __DIR__.'/../mylaravelsite/bootstrap/start.php';
    

    and also don't forget to change /mylaravelsite/bootstrap/paths.php public path, you might use it.

    'public' => __DIR__.'/../public',
    

    to

    'public' => __DIR__.'/../../public_html',
    

    Your site should be running.

提交回复
热议问题