【问题标题】:linux lamp require fileslinux灯需要文件
【发布时间】:2015-03-02 00:31:57
【问题描述】:

不久前,我开始使用 linux 作为操作系统主体。但是我在包含文件时遇到了问题。 当我尝试包含一个又包含第三个文件的文件时,我最终得到一个错误:“无法打开流:/var/www/html/...中没有这样的文件或目录... "

比如我的文件是这样分布的:

三个文件的代码是:

primero.php

require_once '../B/c/segundo.php';

segundo.php

require_once '../d/tercero.php';

tercero.php

echo '成功';

错误:

有人可以向我解释会发生什么吗?这在 Windows 中有效。事实是我会避免使用“dirname(FILE)”

PD:抱歉,我无法发布图片

【问题讨论】:

  • 您能否附上问题中的文件> 我在从 URL 打开它们时遇到了一些问题,将文件内联是一个好习惯。问题是什么?为什么不能发图片?
  • 我不能发图片,因为我的声誉低于 10。我是新人。现在可以看到链接了吗?

标签: php linux include require


【解决方案1】:

使用相对路径,有时会很痛苦。因此,我开始做的是创建一个settings.inc.php 文件,我保留我的重要路径。例如:

试试这个: settings.inc.php

<?php
define("ROOT_PATH" , dirname(__FILE__) . "/");
define("CLASS_PATH", ROOT_PATH . "class/");
?>

然后,我需要header.php 中的设置文件(这样我就可以在每个页面上都有它)

require_once("settings.inc.php");

我喜欢使用它

require_once(ROOT_PATH . 'B/c/segundo.php');

require_once(ROOT_PATH . 'd/tercero.php');

【讨论】:

  • 谢谢。这是一个有趣的解决方案。 但为什么它在 wamp 上工作而不在灯上工作?
  • xampp 默认隐藏错误,而 LAMP 不会。我的意思是,在 XAMP 上 display_errors 的值是 0 和 LAMP 中的 1 error_reporting(E_ALL); ini_set('display_errors', 1); 但如果您检查错误日志,我 100% 肯定您会看到错误。 (c:\xampp\apache\logs\error.log)
  • 不,不代表error_reporting。我的意思是如果我在 wamp 中运行primero.php,这将包括没有问题的文件(这有效)。在灯中,给我错误...为什么?
  • 老实说,我从未见过 XAMPP 对待相对路径的方式与 LAMP 不同。我可能必须检查您的代码才能亲眼看到它。我将设置一台 Windows 机器来检查代码并通知您。
  • 获得文件。这可能需要一段时间。我必须安装 Windows 并使用 Virtualbox 安装它。我已经有几年没有运行 Windows 机器了:-S 感谢您分享您的代码
【解决方案2】:

在 require 前使用 __DIR__ 使所需的路径相对于定义它的文件。例如:

  require_once __DIR__.'/../d/tercero.php';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-14
    • 2021-12-25
    • 2015-12-03
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多