As with a lot of hosts our public folder is called public_html
. This is on shared hosting so can't be changed. I've changed the public
folder to public_html
to reflect this, but when I do artisan serve
stops working. Every time I try to start it I get:
[ErrorException]
chdir(): No such file or directory (errno 2)
If I rename the folder back to public then artisan serve
starts working again.
I've tried following this post on laracasts, and the user in the post reports artisan works for them, but it made no difference to me. How can I change the folder and have artisan serve
work?
find
/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
this fileand change on following function
Dipesh's answer is actually a very bad idea - those changes will be blown away anytime you do a Composer install/update/require. Never directly edit anything in the
vendor
directory.Instead, in
bootstrap/app.php
, you should add:right after
See https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5 for further discussion and alternate ways of doing this in a safe manner.
You could also extend
Illuminate\Foundation\Application
. This appears to be necessary for the Laravel CLI (anything starting withphp artisan
) to pick it up.