The structure that works.
THE PROBLEM
cPanel serves a specific directory, and Laravel expects only its public folder to be served.
WHAT THE SAFE ARRANGEMENT IS
Place the application outside the served directory Place the contents of the public folder in the served directory Adjust the entry point to reference the application's new location
WHAT TO ADJUST IN THE ENTRY POINT
The paths it uses to find the framework and the application.
WHAT ELSE MOVES
The public assets: images, compiled styles and scripts.
WHAT TO VERIFY AFTERWARDS
That the application loads That configuration files cannot be requested directly That the storage link works
THE VERIFICATION THAT MATTERS MOST
Attempt to request your configuration file in a browser.
It must not be served.
WHAT TO DO FOR AN ADDITIONAL DOMAIN
The same arrangement, relative to that domain's document root.
WHAT TO AVOID
Symbolic links that break on deployment Arrangements nobody has documented
WHAT TO DOCUMENT
The layout, so redeployment reproduces it.