为什么getcwd()返回与本地pwd不同的目录?

时间:2020-03-05 18:43:53  来源:igfitidea点击:

我在Ubuntu服务器上做一些php的事情。

我正在使用的路径是/ mnt / dev-windows-data / Staging / mbiek / test_list,但是PHP调用getcwd()返回/ mnt / dev-windows / Staging / mbiek / test_list(注意它的开发方式-windows,而不是dev-windows-data)。

任何地方都没有任何符号链接。

是否还有其他原因导致getcwd()返回与本地pwd调用不同的路径?

编辑

我想到了。 PHP中的DOCUMENT_ROOT设置为/ mnt / dev-windows,这一切都将被丢弃。

解决方案

回答

我们要在哪个文件中调用getcwd(),并且该文件包含在我们正在运行的文件中(例如,运行index.php,包括包含gwtcwd()的startup.php)。

我们正在/ dev-windows /或者/ dev-windows-data /中运行的文件吗?它适用于我们实际运行的文件。

这是我当前项目的一个示例:

index.php

<?php
    require_once('./includes/construct.php');
    //snip
?>

包括/construct.php

<?php
    //snip
    (!defined('DIR')) ? define('DIR', getcwd()) : NULL;

    require_once(DIR . '/includes/functions.php');
    //snip
?>

回答

罗斯

我以为getcwd()返回的是文件系统路径,而不是相对的URL路径。

无论哪种方式,事实都是/ mnt / dev-windows-data不存在/ mnt / dev-windows路径。

回答

@标记

好吧,这很奇怪!include_path是什么可能会引起混乱。我个人抛弃了它,而倾向于竞争者,因为它是如此的气质(或者我从来没有学过如何做到正义)。

回答

罗斯

我弄清楚了,并用解决方案更新了OP。