我应该在哪里放置yii框架和受保护的文件?

时间:2012-09-23 19:12:55

标签: yii

我正在玩yii,我不知道在哪里放置框架文件。在我的共享主机上,我有/ home / username文件夹,当然包含public_html。 Yii aplication文件应该进入public_html,但框架呢?它是否应该放在public_html中,还是应该放在/ home / username中?那甚至会起作用吗?保护文件夹怎么样?我应该将它与public_html中的所有其他应用程序文件一起保留,还是应该将其移动到其他地方?

解决这个问题的常用方法是什么?

2 个答案:

答案 0 :(得分:3)

大多数网络服务器的一个很酷的事情是,让您的实际代码比公共代码高一级并不是问题。我使用的通常是这样的:

   pubic_html/        <- your /home/user/public_html
     mysite.com/
       public/        <- The web site root (for apache config)
       protected/     <- Your actual code
       dependencies/  <- Framework and other libraries you use
       db/            <- All database delta scripts

如果您的多个网站使用相同的库,您也可以选择将它们放在一个公共位置并为其添加符号链接,这样您就不会使用多个副本来耗尽服务器配额。如果你使用Apache,我认为你必须为此启用FollowSymlinks选项。

IMO限制公众/文件夹公开可用的内容是一件好事。鉴于您无法从外部访问您的实际代码文件夹,它会增加一些额外的保护。

编辑:正如我在上面的评论中提到的:如果您的主机只允许一个网站并且它预先链接到public_html,您可以考虑使用另一种结构来拆分所有内容:

   protected_html/
       code/          <- Your actual code
       dependencies/  <- Framework and other libraries you use
       db/            <- All database delta scripts

   pubic_html/        <- your /home/user/public_html and website root.

Yii是非常通用的,允许配置,配置文件假定在protected / config文件夹下,任何更高级别被认为是模型/控制器的位置等等。在Rolands之间回答包括来自其他位置的Yii以及修改后的配置文件包括你应该没问题。

答案 1 :(得分:1)

我通常将它们放在/ home / username中,这可以确保没有人可以直接访问框架。然后放置在那里编辑public_html中的index.php文件以指向框架目录

$yii=dirname(__FILE__).'/../../yii-1.1.12.b600af/framework/yii.php';

您也可以将框架放在public_html文件夹中,然后在包含以下deny from all的框架文件夹中添加.htaccess文件,假设在apache中启用了覆盖全部,这也将确保没有人可以从浏览器访问该目录。

因此,如果可能的话,您不需要直接从浏览器访问的文件和文件夹总是将它们放在public_html文件夹之外,以提高安全性,假设禁用覆盖apache中的所有内容