Почему getcwd() возвращает каталог, отличный от локального pwd?

StackOverflow https://stackoverflow.com/questions/30307

  •  09-06-2019
  •  | 
  •  

Вопрос

Я занимаюсь PHP на сервере Ubuntu.

Путь, по которому я работаю, /mnt/dev-windows-data/Staging/mbiek/test_list но вызов PHP getcwd() возвращается /mnt/dev-windows/Staging/mbiek/test_list (обратите внимание, что это dev-windows вместо dev-windows-data).

Символических ссылок нигде нет.

Есть ли другие причины для getcwd() возвращение другого пути из локального pwd вызов?

Редактировать

Я понял.А ДОКУМЕНТ_ROOT в PHP установлено значение /mnt/dev-windows который сбрасывает все.

Это было полезно?

Решение

В каком файле вы вызываете getcwd() и включен ли этот файл в тот, который вы запускаете (например,запуск index.php, включая start.php, который содержит gwtcwd()).

Файл, который вы запускаете, находится в /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 не делает существуют, пока существует /mnt/dev-windows-data.

@Отметка

Ну это просто странно!Какой ваш include_path - это может быть путаница.Лично я отказался от этого в пользу констант, потому что это очень темпераментно (или я так и не научился отдавать этому должное).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top