Perché getcwd() dovrebbe restituire una directory diversa da una pwd locale?

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

  •  09-06-2019
  •  | 
  •  

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.

È stato utile?

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

@Ross

L'ho capito e ho aggiornato l'OP con la soluzione.

@Ross

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top