CakePHP webroot 应该从 apache 配置中得到什么


Where should CakePHP webroot be from apache configuration?

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

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

然后我意识到我可能犯了一个错误,我将 apache 指向app/webroot它仍然按预期工作。

如果是这种情况,为什么 cakePHP 没有多个index.php文件并明确说明站点的根位置应该指向app/webroot,从而更清楚地说明它

如果是这样的话,什么不 cakePHP 通过不 具有多个索引.php文件,并明确说明该站点的 根位置应该指向应用程序/网站根?

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

见 http://book.cakephp.org/3.0/en/installation.html#production

但是,是的,我同意一些扩展,这可以更清楚地说明原因。您应该始终使用 webroot 文件夹,除了应用程序的 tmp 文件夹之外,系统的网络服务器用户不应写入任何内容。

对于某些托管服务提供商,不可能将任何内容放在"低于"public_html。在这些情况下,CakePHP 在 root、app 和 webroot 目录中同时提供索引.php和 .htaccess。这是为了让它在几个不同的托管环境中工作,而无需用户进行任何更改。

如果可能的话,你应该只公开网络根目录