更改公用文件夹名称后使用artisan服务

Sty*_*hon 5 php laravel laravel-5 artisan

与许多主机一样,我们的公用文件夹被调用public_html.这是在共享主机上,所以无法更改.我已经将public文件夹更改public_html为反映这一点,但是当我artisan serve停止工作时.每当我尝试启动它时,我得到:

[ErrorException]
chdir(): No such file or directory (errno 2)
Run Code Online (Sandbox Code Playgroud)

如果我将文件夹重命名为public,则artisan serve再次开始工作.

我试过在laracasts上关注这篇文章,并且帖子中的用户报告工匠为他们工作,但它对我没有任何影响.如何更改文件夹并artisan serve有效?

cee*_*yoz 7

Dipesh 的回答实际上是一个非常糟糕的主意——只要您进行 Composer 安装/更新/要求,这些更改就会被吹走。切勿直接编辑vendor目录中的任何内容。

相反,在 中bootstrap/app.php,您应该添加:

$app->bind('path.public', function() {
    return __DIR__;
});
Run Code Online (Sandbox Code Playgroud)

紧接着

$app = new Illuminate\Foundation\Application(
    realpath(__DIR__ . '/../')
);
Run Code Online (Sandbox Code Playgroud)

请参阅https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5以了解进一步讨论和以安全方式执行此操作的替代方法。

您也可以扩展Illuminate\Foundation\Application. 这对于 Laravel CLI(任何以 开头的东西php artisan)来说似乎是必需的。