我正在玩yii,我不知道在哪里放置框架文件。在我的共享主机上,我有/ home / username文件夹,当然包含public_html。 Yii aplication文件应该进入public_html,但框架呢?它是否应该放在public_html中,还是应该放在/ home / username中?那甚至会起作用吗?保护文件夹怎么样?我应该将它与public_html中的所有其他应用程序文件一起保留,还是应该将其移动到其他地方?
解决这个问题的常用方法是什么?
答案 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中的所有内容