CakePHP webroot应该来自apache配置的哪里?

CakePHP webroot应该来自apache配置的哪里?,php,apache,cakephp,Php,Apache,Cakephp,我注意到在cakePHP文件夹的根目录下,app/和app/webroot下都有一个index.php文件 我的理解是apache配置应该指向app/webroot作为站点根,否则我可能会暴露我的代码和其他敏感数据(数据库连接凭据等)。在我的测试环境中,我曾经将它指向cakePHP文件夹的根文件夹,它按预期工作,我成功地完成了博客教程 然后我意识到我可能犯了一个错误,我将apache指向app/webroot,它仍然可以正常工作 如果是这样的话,为什么cakePHP不通过没有多个index.ph

我注意到在cakePHP文件夹的根目录下,
app/
app/webroot
下都有一个
index.php
文件

我的理解是apache配置应该指向
app/webroot
作为站点根,否则我可能会暴露我的代码和其他敏感数据(数据库连接凭据等)。在我的测试环境中,我曾经将它指向cakePHP文件夹的根文件夹,它按预期工作,我成功地完成了
博客
教程

然后我意识到我可能犯了一个错误,我将apache指向
app/webroot
,它仍然可以正常工作

如果是这样的话,为什么cakePHP不通过没有多个
index.php
文件并明确指出站点的根位置应该指向
app/webroot
来更清楚地说明这一点

如果是这样的话,cakePHP还有什么不让它变得更清楚的呢 拥有多个index.php文件,并清楚地说明网站的 根目录位置应指向app/webroot

猜测,因为它被认为是新手友好,但这很容易配置错误,并向公众公开整个应用程序,这不是一个好主意

但是,是的,我在某种程度上同意,这可能更清楚一点原因。
您应该始终使用webroot文件夹,并且除了您的应用程序tmp文件夹外,您系统的Web服务器用户不应写入任何内容。

对于某些托管提供商,不可能将任何内容放在“public\u html”下。在这些情况下,CakePHP在root、app和webroot目录中提供index.php和.htaccess。这是为了让它在几个不同的托管环境中工作,而用户无需更改任何内容

如果可能的话,您应该只公开webroot目录

,这非常清楚: