2008-08-27 4 views
-1

Я делаю некоторые php-файлы на сервере Ubuntu.Почему getcwd() возвращает другую директорию, чем локальный pwd?

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

В любом месте нет никаких символических ссылок.

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

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

Я понял это. DOCUMENT_ROOT в PHP установлен в /mnt/dev-windows, который отбрасывает все.

ответ

1

В каком файле вы вызываете getcwd(), и этот файл включен в тот, который вы используете (например, работает index.php, включая startup.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 
?> 
0

@Ross

Я думал, что getcwd() возвращает путь к файловой системе, а не относительный URL-адрес.

В любом случае, факт остается фактом: путь/mnt/dev-windows не существует в то время как/mnt/dev-windows-data.

0

@Mark

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

0

@Ross

Я понял это и обновленный ОП с раствором.