Perché getcwd() dovrebbe restituire una directory diversa da una pwd locale?
Domanda
Sto facendo alcune cose PHP su un server Ubuntu.
Il percorso su cui sto lavorando è /mnt/dev-windows-data/Staging/mbiek/test_list ma la chiamata PHP getcwd()
sta tornando /mnt/dev-windows/Staging/mbiek/test_list (nota come è dev-windows invece di dev-windows-data).
Non ci sono collegamenti simbolici da nessuna parte.
Ci sono altre cause per getcwd()
restituendo un percorso diverso da quello locale pwd
chiamata?
Modificare
L'avevo capito.IL DOCUMENT_ROOT in PHP è impostato su /mnt/dev-windows che manda tutto all'aria.
Soluzione
In quale file stai chiamando getcwd() e quel file è incluso in quello che stai eseguendo (ad es.eseguendo index.php, incluso startup.php che contiene gwtcwd()).
Il file in esecuzione è /dev-windows/ o /dev-windows-data/?Funziona sul file che stai effettivamente eseguendo.
Ecco un esempio del mio progetto attuale:
indice.php
<?php
require_once('./includes/construct.php');
//snip
?>
include/costruisci.php
<?php
//snip
(!defined('DIR')) ? define('DIR', getcwd()) : NULL;
require_once(DIR . '/includes/functions.php');
//snip
?>
Altri suggerimenti
L'ho capito e ho aggiornato l'OP con la soluzione.
Pensavo che getcwd() restituisse un percorso del filesystem anziché un percorso URL relativo.
In ogni caso, resta il fatto che il percorso /mnt/dev-windows no esiste mentre /mnt/dev-windows-data esiste.
@Segno
Beh, è semplicemente strano!Qual è il tuo include_path
- potrebbe creare confusione.Personalmente l'ho abbandonato a favore dei costanti perché è così capriccioso (o non ho mai imparato a rendergli giustizia).