2012-09-23 28 views
0

我在玩yii,我不确定在哪里放置框架文件。在我的共享主机中,我有/ home /用户名文件夹,当然包含public_html。 Yii应用程序文件应该进入public_html,但是框架呢?它是否应该放在public_html中,或者我应该把它放在/ home/username中?这甚至会工作吗?受保护的文件夹呢?我是否应该将其与public_html中的所有其他应用程序文件放在一起,还是应将它移动到其他位置?我应该在哪里放置yii框架和受保护的文件?

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

回答

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 

如果你的网站多使用相同的库,你也可以选择把它们放在一个公共位置,并添加符号链接到它,所以你不使用你的服务器配额多份。我认为你必须为此启用FollowSymlinks选项,尽管如果你使用的是Apache。

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是相当通用的,允许配置这个,配置文件被认为是在受保护的/配置文件夹下,无论哪个级别更高都被认为是模型/控制器的位置等等。 Roland之间的回答是将Yii包含在其他位置,并且修改了包含你的配置文件的内容,你应该很好。

+0

hm,我不完全相信我会遵循所有的细节..然后什么会驻留在我的/ home/user/public_html(您提到的第二个选项,因为这是我拥有的,为一个站点托管)。它会包含只有yii的index.php,它将链接到protected_html(这将有我的代码在代码里面? – pootzko

+0

准确地说,你的index.php,你想公开可用的任何javascript和css文件,通常是你的资产文件夹,这样Yii可以发布widgets等需要的文件。 – Blizz

+0

好的,谢谢!=) – pootzko

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中启用了override all,这也将确保没有人可以从浏览器访问目录。

所以徘徊无论有可能是你并不需要直接从浏览器访问的文件和文件夹,始终把他们的public_html文件夹之外更好的安全性假设覆盖所有在Apache中禁用

+0

是否意味着“protected”也应该移出public_html? – pootzko

+0

您的托管服务提供商为您添加的public_html和您的Web服务器将使用的实际文档根目录可能存在一些混淆。 public_html通常只是一个将所有网站置于子文件夹(www.mysite.com)中的惯例。然后你为该网站创建一个VHost。将该文件夹指定为web-root。对Yii来说,政策是在那里有另一个“公共”文件夹,这将是实际的网络根。如果你的主机只允许你一个站点,我肯定只会把Yii的公共文件夹内容放在那里,其他地方则放在其他地方。 – Blizz

相关问题