Domanda

Finora ho cercato in molti thread ma non riesco a trovare una soluzione. All'interno di uno dei miei script php sto cercando di ottenere una radice del documento del server ma il valore che ottengo non è completo, semplicemente manca la cartella del dominio. Credo che sia dovuto alla condivisione di hosting o altro.

Ecco il modo in cui sto usando attualmente:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);

e il percorso che ottengo è come:

/home/content/01/0151247/html

anche se so che dovrebbe essere come:

/home/content/01/0151247/html/mydomain

Lo so come l'ho confrontato con SCRIPT_NAME e vedo il miodominio nel percorso.

Spero che qualcuno possa dirigermi.

Grazie e scusa per aver probabilmente fatto un'altra domanda mille volte la stessa sulla community, ho davvero provato le cose da qui, niente mi aiuta finora.

<⇨UPDATE

sfortunatamente non posso semplicemente usare il mio file index con DIR poiché è una configurazione wordpress e sto lavorando su una cartella separata in cui includo alcune funzionalità wordpress ma per questo ho bisogno di document_root. Se questo aiutasse.

<⇨UPDATE

apparentemente il modo seguente ha risolto il mio caso, forse un giorno aiuterà qualcuno:

realpath($_SERVER["SUBDOMAIN_DOCUMENT_ROOT"]);

fondamentalmente a causa della configurazione del server e del dominio configurato come sottodominio.

Grazie a tutti coloro che hanno partecipato.

È stato utile?

Soluzione

Prima di PHP 5.3 è possibile inserire un file nella directory di cui si desidera il percorso e definire una costante:

define('ROOT_DIR', dirname( __FILE__ ));

Dopo la 5.3 puoi semplicemente fare:

define('ROOT_DIR', __DIR__);

L'idea è che questo sia in config.php di qualche tipo che viene incluso ogni volta che viene eseguita l'applicazione.

Documenti sulle costanti magiche

Altri suggerimenti

<⇨UPDATE

Nel file di configurazione, puoi semplicemente aggiungere la variabile DOCUMENT_ROOT:

$_SERVER['DOCUMENT_ROOT'] = $_SERVER['DOCUMENT_ROOT'] . '/mydomain';

E questo dovrebbe occuparsene per te.

Vecchia soluzione

Il DOCUMENT_ROOT è una variabile d'ambiente impostata dal server.Quindi, se questo è su hosting condiviso, non puoi cambiarlo.Un'alternativa è impostare una propria costante su di esso, quindi in un file di tipo config incluso nelle tue pagine puoi fare qualcosa come:

define('DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/mydomain');

E poi usa quella costante al posto di $_SERVER['DOCUMENT_ROOT'].L'altra opzione è contattare il tuo host e informarti, forse è stata una loro svista e lo risolveranno.

<”EDIT

Probabilmente usare il __DIR__ come altri hanno scritto è il modo migliore, poiché il DOCUMENT_ROOT può essere impostato su elementi diversi e almeno con il __DIR__ dovresti ottenere ogni volta una directory accurata.

Personalmente, per ottenere la radice di una cartella in PHP, lo uso nel file my index:

define('ROOT', dirname(__FILE__));     // __DIR__ will work under PHP 5.3
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top