Question

J'ai recherché de nombreux fils jusqu'à présent, mais je ne semble pas trouver une solution. À l'intérieur de l'un de mes scripts PHP, j'essaie d'obtenir une racine de document de serveur mais la valeur que je reçois n'est pas complète, il manque simplement le dossier de domaine. Je crois que cela est dû au partage d'hébergement ou de SMTH d'autre.

Voici la manière actuelle que j'utilise:

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

Et le chemin que j'obtiens est comme:

/home/content/01/0151247/html

Bien que je sache que cela devrait être comme:

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

Je sais que je l'ai comparé à Script_name et je vois le mydomain là-bas dans le chemin.

J'espère que quelqu'un pourrait me diriger.

Merci et désolé d'avoir probablement posé une autre question de la même question sur la communauté, j'ai vraiment essayé des choses d'ici, rien ne m'aide jusqu'à présent.

METTRE À JOUR

Malheureusement, je ne peux pas simplement utiliser mon fichier d'index avec Diron Comme c'est une configuration WordPress et je travaille sur un dossier séparé où j'inclus des fonctionnalités WordPress, mais pour cela, j'ai besoin d'un document_root. Si cela aiderait.

METTRE À JOUR

Apparemment, la manière suivante a résolu mon cas, cela aidera peut-être quelqu'un un jour:

realpath($_SERVER["SUBDOMAIN_DOCUMENT_ROOT"]);

Fondamentalement, en raison de la configuration du serveur et du domaine configuré comme sous-domaine.

Merci à tous ceux qui ont participé.

Était-ce utile?

La solution

Avant PHP 5.3, vous pouvez mettre un fichier dans le répertoire dont vous souhaitez le chemin et définir une constante:

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

Après 5.3, vous pouvez simplement faire:

define('ROOT_DIR', __DIR__);

L'idée étant que ce serait config.php d'une sorte qui est inclus à chaque fois que l'application s'exécute.

Docs des constantes magiques

Autres conseils

METTRE À JOUR

Dans le fichier de configuration, vous pouvez simplement ajouter le DOCUMENT_ROOT variable:

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

Et cela devrait s'en occuper pour vous.

Ancienne solution

La DOCUMENT_ROOT est une variable d'environnement définie par le serveur. Donc, si cela est sur l'hébergement partagé, vous ne pouvez pas changer. Une alternative consiste à y mettre votre propre constante, donc dans un config Tapez le fichier inclus sur vos pages, vous pouvez faire quelque chose comme:

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

Et puis utilisez simplement cette constante à la place de $_SERVER['DOCUMENT_ROOT']. L'autre option consiste à contacter votre hôte et à s'en demander, peut-être que c'était une surveillance de leur part et ils le répareront.

ÉDITER

Probablement en utilisant le __DIR__ Comme d'autres l'ont publié est le meilleur moyen, comme le DOCUMENT_ROOT peut être réglé sur différents articles et au moins avec le __DIR__ Vous devez obtenir un répertoire précis à chaque fois.

Personnellement, pour obtenir la racine d'un dossier dans PHP, je l'utilise dans le fichier My Index:

define('ROOT', dirname(__FILE__));     // __DIR__ will work under PHP 5.3
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top