为什么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。