【问题标题】:Codeigniter files on web host/serverWeb 主机/服务器上的 Codeigniter 文件
【发布时间】:2013-02-15 15:35:45
【问题描述】:

我无法理解 CI 安装说明中的这一行,web root 是什么意思?它说为了更好的安全性,系统和应用程序应该在 web 根目录之上,这是否意味着,就像在 web 主机中一样,这应该在 public_html 之上?还是在public_html里面?例如 public_html/system 和 public_html/application.. 或者在像 XAMPP 这样的本地服务器的情况下,在 htdocs 内?像 htdocs/system 和 htdocs/application?当它在 web root 上面说时,我真的很困惑。因为如果我想到它,它将在 public_html 或 htdocs 之外。请赐教

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:
    . /
    .. /
    public_ftp /
    public_html /
    application /
    system /
    

    这会将applicationsystem 放在public_html 的webroot 之上

    【讨论】:

    • 所以你的意思是说应用程序和系统与 public_ftp / 和 public_html / 处于同一级别??
    • 是的,public_html 是 webroot,因为它是浏览器可以访问的,因为 / 用户不能遍历高于 /,因此它们仅限于 public_html 内的内容,因此无法访问其上方或其所在文件夹中的内容。
    • 话虽如此,实际上 public_html 是您的根目录时,我如何访问 CI,将其与 example.com = public_html 之类的域名相关联,那么我如何访问 CI?
    • 你应该通过访问index.php来访问CI,如果你打开那个文件,你可以看到配置选项来指定systemapplication的位置设置它们到您将它们移动到的位置(public_html 之外),一切顺利。
    • 哦,喜欢 ../system 和 ../application?你是这个意思吗?
    【解决方案2】:

    如果你认为目录和子目录的表示是一棵树,我们很快就会看到它指的是以下内容:

    . /
    .. /
    public_ftp /
    public_html /
    | - Application /
    | - System /
    etc.
    

    Soon Aplicattion 和 System 文件夹应该在 public_html 中。

    【讨论】:

    • 这不会将应用程序和系统置于 webroot 之上,而是将其置于其中,这会破坏安全性。
    【解决方案3】:

    在网络服务器中,根是 public_html/system 和 public_html/application 这意味着 public_html 是指您的域名。

    在本地 htdocs/domain/system 和 htdocs/domain/applications 中

    【讨论】:

    • 总之系统和应用都放在public_html下? public_html 是您的网络根目录吗?那么为什么 CI 要求我把它放在 web 根目录之上呢?这是否意味着它在 public_html 之外???
    • CI 询问 Web 根目录的目的是什么?
    【解决方案4】:

    具有单个网站的网络服务器: 这些文件应该放在服务器告诉您 Web 根目录的任何位置,在大多数服务器场景中,这是 public_html,如 Arthur Barros 所示。

    具有多个站点的网络服务器: 在这种情况下,常见的处理方式是让每个站点在 public_html 中都有自己的文件夹。在这种情况下,为每个域设置了 Web 服务器以拥有自己的文件夹,因此该域文件夹成为 Web 根目录。所以如下

    public_html
    ...WebSite1
    ...WebSite2
    ......Application
    ......System
    ...WebSite3
    

    XAMPP: 我强烈建议按照我解释的方式在 XAMPP 中设置 CI,您将在具有多个站点的网络服务器中设置它。虽然它在技术上可以直接在 htdocs 文件夹中工作,但我认为这不是一个好主意。在 htdocs 中为您的网站创建一个文件夹,然后通过网络浏览器中的该文件夹访问它。

    htdocs
    ...myWebsite
    ......Application
    ......System
    
    http://localhost/myWebsite would be your base url.
    

    即使在具有单个网站的网络主机上,在其自己的文件夹中包含 CI 仍然有意义,调整您的 htaccess、配置和路由文件以指向该文件夹。因此,您的网站实际上可以驻留在 www.example.com/my_website 中,但您将文件设置为指向 www.example.com 或 www.example.com/contact。

    这只是将东西分开,并允许您在服务器上安装其他东西、其他 CI 应用程序等,而不会与您的原始安装冲突。

    【讨论】:

    • 嗯我明白你的意思,但为什么 CI 告诉我把它放在网络根目录之外?它说高于网络根?出于安全原因,我知道它,但是将它放在您的 webroot 上方没有人可以访问您的网站有什么意义?
    • 老实说,我从未在 CI 的文档中读过这一点。作为记录,如果您的虚拟主机支持符号链接,它将起作用。您在 Public_html 外部创建了一个文件夹,并从 public_html 内部对其进行符号链接,但我们发现这让我们的主机感到头疼,因为我们无法将特定域指向符号链接。
    【解决方案5】:

    不,高于 public_html,

    因此,如果 /home/lemoncodes/public_html 是您的 WWW 文件夹,您应该将文件放入: /home/lemoncodes。

    【讨论】:

    • 你在自相矛盾。你说在public_html下,然后告诉他把文件放在和public_html同级
    • @RickCalder 如果你看一棵树,根在树的底部,所以如果向下一个文件夹,你向下,所以文件夹在另一个文件夹下。嗯,这就是我的看法,我想我的例子很好地讲述了这个故事。
    • 你的例子是错误的。它应该是 /users/lemoncodes/public_html
    • @rickcalder 不,它是正确的,/home/lemoncodes/public_html 是您要避免放入系统文件夹的文件夹。它应该上一层,所以在 /home/lemoncodes 中。您对文件夹结构的看法是正确的,它应该被称为 UP 一个文件夹,我对树的看法不正确,它应该是一棵倒置的树 ;-))
    • 完全取决于主机,我的主机不允许我指向 public_html 之外的文件夹
    猜你喜欢
    • 2014-02-18
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多