Search code examples
phplaravelcpanel

How to solve Error 404 when deploying laravel project to Cpanel?


I'm trying to deploy my laravel (Laravel Framework 7.28.3) to Cpanel, but got a 404 error. I uploaded my project into /public_html, modified the index.php file to point to the correct files (as below). I think there must be some mistake in the index.php file but couldn't figure it out. This is my first time asking my question (after searching for it several times), so hope that I will get the answer!

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

this is my file structure in File Manager:

file structure in File Manager


Solution

  • Update (2023) easy way

    if you have access to terminal you can run this command

    ln -s /laravel/public/* public_html

    This is easy way i found in 2023


    Deploy laravel application in Cpanel

    • Setup 1 : - upload file to Cpanel the root directory – not the public_html.

    • Setup 2 : - Open the that folder and MOVE the CONTENTS of the public folder to your cpanel’s public_html .

    • Setup 3 : - Navigate to the public_html folder and locate the index.php file. Right click on it and select Code Editor from the menu.

    and change this line

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

    NOTE : - folderName here is in root where you laravel application stay

    that's it now all your request will come inside public_html folder index.php and this file will include require __DIR__.'/../folderName/vendor/autoload.php; and run laravel application


    Folder structure will look like

    /laravel
    /public_html/index.php
    

    indside index.php

    require __DIR__.'/../laravel/vendor/autoload.php';;
    $app = require_once __DIR__.'/../laravel/bootstrap/app.php'; // here laravel is folder name