0

我正在玩 yii,但我不确定将框架文件放在哪里。在我的共享主机上,我有 /home/username 文件夹,其中当然包含 public_html。Yii 应用程序文件应该进入 public_html,但是框架呢?它也应该放在 public_html 中还是应该放在 /home/username 中?那还能用吗?受保护的文件夹呢?我应该将它与 public_html 中的所有其他应用程序文件一起保留,还是应该将它也移到其他地方?

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

4

2 回答 2

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/ 文件夹公开可用的内容是一件好事。考虑到您的实际代码文件夹无法从外部世界访问,它增加了一点额外的保护。

编辑:正如我在上面的评论中提到的:如果您的主机只允许一个站点并且它预先链接到 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 和修改包含您的配置文件之间应该没问题。

于 2012-09-24T05:48:42.313 回答
1

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

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

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

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

于 2012-09-23T19:18:26.453 回答