【问题标题】:PHP is looking for a file in the wrong placePHP 在错误的位置寻找文件
【发布时间】:2013-02-19 00:56:31
【问题描述】:

我是一名业余网络开发人员,我正在尝试让我的网站第一次上线。该站点正在运行并且所有文件都已上传,但该站点未加载我的 PHP 包含。

这是错误信息:

警告:include(includes/header.php) [function.include]:无法打开流:/home4/myUsername/public_html/index.php 第 3 行中没有此类文件或目录

如何让 PHP 在 public_html/ 而不是 public_html/index.php 中查找?

编辑:我尝试编辑包含路径。它似乎并没有改变 php 在哪里寻找文件。此外,我的包含在 localhost 中正常工作。

【问题讨论】:

  • 这意味着你没有给include()提供正确的路径,我们需要code plz...
  • 使用相对路径更容易部署
  • 我已经尝试编辑包含路径(抱歉,我的问题应该有这个)。它似乎并没有改变 php 在哪里寻找文件。此外,我的包含在 localhost 中正常工作。
  • 尝试将路径更改为:“require_once('./includes/header.php')”

标签: php file path directory


【解决方案1】:

我假设这是您的文件夹结构:

  • public_html/index.php
  • public_html/includes/header.php

通常(并非总是),$_SERVER['DOCUMENT_ROOT'] 现在将反映基本 public_html 目录的路径(我假设这是基于您的消息的上下文)。这意味着您可以始终以这种方式指向根。 - 不管你有 /index.php 还是 /my/deep/file/structure.php

用 index.php 上的 include 语句试试这个

<?php
include($_SERVER['DOCUMENT_ROOT'] . '/includes/header.php');

【讨论】:

    【解决方案2】:

    您可能需要更改 php.ini 文件中的包含路径或使用set_include_path() 更改包含路径。

    这里是函数调用的manual 条目,如果您想了解更多信息。

    【讨论】:

    • 感谢您的帮助。我在 php.ini 文件中找到了包含路径。在这种情况下应该设置什么目录?
    • 这是我顺便看的:;;;;;;;;;;;;;;;;;;;;;;;; ;路径和目录; ;;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ; ; PHP 对 include_path 的默认设置是 ".;/path/to/php/pear" ; php.net/include-path
    • 您可以将其设置为您需要的任何内容,即您打算包含的 PHP 文件的位置。这会更改包含的基本路径,换句话说,它会将 include() 调用中的路径附加到您在此处设置为包含路径的任何内容。
    • 好的,我已经尝试过了,但它并没有改变错误信息。感谢您的帮助,但似乎这是一个不同的问题,否则我无法正确解释发生了什么。
    • 你的header.php文件真的在includes目录下吗?
    【解决方案3】:

    您是否已经检查过包含文件?

    在给定的。包含(文件夹包含/file_header.php);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 2018-05-23
      • 2016-12-02
      • 2015-05-01
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多