【问题标题】:root path for php files in Linux apacheLinux apache中php文件的根路径
【发布时间】:2012-09-05 22:36:39
【问题描述】:

我在 Ubuntu 服务器上使用 php include 定位文件时遇到问题。

网站结构

/var/www/
     home/index.php
     include/header.php

当我尝试在文件 home/index.php 中插入以下 include_once('/include/header.php') 时,它不起作用。

但是,如果我将其更改为 include_once('../include/header.php'),它可以正常工作,但要在我的网站上保持一致性,我不能允许这样做

解决此问题的最佳方法是什么?

【问题讨论】:

  • 绝对路径将永远有效include_once('/var/www/include/header.php')
  • @Dagon 如果我这样做,我将无法在 xampp 中对其进行测试
  • 现在你告诉我你想要那个,我看起来很通灵吗:-)

标签: php linux apache ubuntu root


【解决方案1】:

前导斜杠表示绝对路径。大多数应用程序会在周期的早期定义一个APP_ROOT 常量或类似的东西来解决这些问题。

define('APP_ROOT', dirname(__FILE__));

稍后您可以包含以下文件:

include(APP_ROOT . '/includes/header.php');

【讨论】:

    【解决方案2】:

    如果您的文档根目录是/var/www/,那么您可以使用:

    include $_SERVER['DOCUMENT_ROOT'] . '/include/header.php';
    

    通常,PHP 会正确获取 DOCUMENT_ROOT,因此您通常可以依赖它。

    如果您想包含相对于正在执行包含的脚本的文件,您可以这样做:

    include dirname(__FILE__) . '/../include/header.php';
    

    【讨论】:

    • 感谢这项工作,可惜没有 Dreamweaver 用户友好的解决方案
    • 为什么 Dreamweaver 不喜欢?
    • 它不允许您从顶部文件导航预览 php 文件,但我想这没什么大不了的
    【解决方案3】:

    我会尝试以下方法

    include_once($_SERVER['DOCUMENT_ROOT'].'/include/header.php');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 2012-05-09
      • 1970-01-01
      • 2013-11-27
      • 2012-07-26
      • 2013-02-25
      • 2017-07-08
      相关资源
      最近更新 更多