Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par
14 messages • Page 1 sur 1
Pb $DOCUMENT_ROOT sur Apache 2.0/PHP 4.3.1 à remplacer par
Salut,
J'ai pas mal galèré avec RobotStats....
Le message d'erreur était le suivant :
J'ai testé la variable $DOCUMENT_ROOT avec :
Et $DOCUMENT_ROOT ne renvoie rien dans mon cas, d'ailleurs "phpinfo()" n'en parle pas, il faut alors remplacer $DOCUMENT_ROOT par $_SERVER["DOCUMENT_ROOT"] dans le code inséré sur les pages HTML et dans le fichier robotstats.inc.php.
Est-ce normal doc ? Je dis des conneries ou pas ?
Ca vient d'Apache 2.0 à votre avis ou plutôt de ma version ou install PHP ?
En tout cas maintenant ça marche et c bien cool.
(Robot de test Ok !)
Sauf le graphe...
sic je suis passé à RoboStats et Mandrake 9.1/Apache 2.0 et j'ai même pas les graphs. je suis un peu deg. Vs z'avez une idée : LibGD installée et visible ds phpinfo() !
Sinon j'aimerais bien un peu de feedback là dessus par pure curiosité et pour savoir ce que mon serveur peut bien avoir de particulier pour fonctionner de cette manière, car je n'ai vu aucun post la dessus...
Merci et bonne continuation.
J'ai pas mal galèré avec RobotStats....
Le message d'erreur était le suivant :
Warning: main(/robotstats/robotstats.inc.php) [function.main]: failed to create stream: No such file or directory in /var/www/html/index.htm on line 285
Warning: main() [function.main]: Failed opening '/robotstats/robotstats.inc.php' for inclusion (include_path='.:/usr/share/pear') in /var/www/html/index.htm on line 285
J'ai testé la variable $DOCUMENT_ROOT avec :
<?php
echo ($DOCUMENT_ROOT.'/robotstats/robotstats.inc.php');
?>
Et $DOCUMENT_ROOT ne renvoie rien dans mon cas, d'ailleurs "phpinfo()" n'en parle pas, il faut alors remplacer $DOCUMENT_ROOT par $_SERVER["DOCUMENT_ROOT"] dans le code inséré sur les pages HTML et dans le fichier robotstats.inc.php.
Est-ce normal doc ? Je dis des conneries ou pas ?
Ca vient d'Apache 2.0 à votre avis ou plutôt de ma version ou install PHP ?
En tout cas maintenant ça marche et c bien cool.
Sauf le graphe...
Sinon j'aimerais bien un peu de feedback là dessus par pure curiosité et pour savoir ce que mon serveur peut bien avoir de particulier pour fonctionner de cette manière, car je n'ai vu aucun post la dessus...
Merci et bonne continuation.
Moi c'est pareil impossible de faire fonctionner le graph, et comme je n'y connait rien je m'en passe. L'important c'est de pouvoir constater le passage des robots et puis je ne désepère pas, notre grand spécialiste va bien trouver la solution pour régler ce problème.
Paul
Paul
-

WebRankInfo - Administrateur du site

- Messages: 15883
- Inscription: Ven Avr 19, 2002 19:51
apparemment la variable $DOCUMENT_ROOT n'est plus accessible de cette façon mais via $_SERVER["DOCUMENT_ROOT"] ?
si ça se confirme, il faudra que je mette à jour l'appli. je vais me renseigner...
si ça se confirme, il faudra que je mette à jour l'appli. je vais me renseigner...
-

WebRankInfo - Administrateur du site

- Messages: 15883
- Inscription: Ven Avr 19, 2002 19:51
non en fait c'est depuis la 4.1.0 semble-t-il
mais on ne peut pas être sûr que $_SERVER["DOCUMENT_ROOT"] existe sur tous les serveurs...
il faudrait trouver un système qui marche partout, quitte à devoir écrire un répertoire en dur à un seul endroit, dans le fichier de config
mais on ne peut pas être sûr que $_SERVER["DOCUMENT_ROOT"] existe sur tous les serveurs...
il faudrait trouver un système qui marche partout, quitte à devoir écrire un répertoire en dur à un seul endroit, dans le fichier de config
-

George Abitbol - WRInaute accro

- Messages: 1923
- Inscription: Ven Juin 06, 2003 7:57
Et avec un truc dans ce style ?
En utilisant ensuite $servertab à la place.
Fred
- Code: Tout sélectionner
<?php
if (isset($_SERVER)) {
$servertab = $_SERVER;
}
else {
$servertab = $HTTP_SERVER_VARS;
}
?>
En utilisant ensuite $servertab à la place.
Fred
- Invité
Effectivement depuis la 4.1, toutes les variables php ont changé. Pour fonctionner avec n'importe quelle version de php, il faut inclure le code suivant :
... et changer toutes les variables dans son code
.
- Code: Tout sélectionner
<?php
if(!isset($_SERVER))
{
$_SERVER = $HTTP_SERVER_VARS;
$_ENV = $HTTP_ENV_VARS;
$_COOKIE = $HTTP_COOKIE_VARS;
$_GET = $HTTP_GET_VARS;
$_POST = $HTTP_POST_VARS;
$_FILES = $HTTP_POST_FILES;
$_SESSION = $HTTP_SESSION_VARS;
$_REQUEST = $_POST;
for($i=0;$i<count($_GET);$i++)
{
$v=each($_GET);
$_REQUEST[$v[key]]=$v[value];
}
unset($i);
unset($v);
}
?>
... et changer toutes les variables dans son code
-

George Abitbol - WRInaute accro

- Messages: 1923
- Inscription: Ven Juin 06, 2003 7:57
BatMats a écrit:Ca veut dire que pour que ton code soit portable tu dois inclure ce bout de code pour chaque pge php ?
Ouaip, un ptit coup de require et le tour est joué.
N'oublions pas que cette histoire de register globals et de tableaux superglobaux ne tombe pas non plus d'un coup, ça fait un moment qu'on est prévenu et qu'on a pu modifier son code en conséquence.
Fred
-

WebRankInfo - Administrateur du site

- Messages: 15883
- Inscription: Ven Avr 19, 2002 19:51
j'ai déjà utilisé un système de ce genre, mais pas pour DOCUMENT_ROOT
ma question est surtout comment trouver un système qui fonctionne meme si DOCUMENT_ROOT n'est pas disponible ?
ma question est surtout comment trouver un système qui fonctionne meme si DOCUMENT_ROOT n'est pas disponible ?
- Invité
Attention, la variable _SERVER["DOCUMENT_ROOT"] représente la racine par défaut définie dans le httpd.conf d'Apache.
Dans le cas ou votre site est placé sous ce répertoire (accessible par http://localhost), la variable renverra bien "C:/Apache2/htdocs".
Or, lors de l'utilisation d'alias dans le httpd.conf,
un acces sur une page à l'URL http://localhost/myweb renverra la variable _SERVER["DOCUMENT_ROOT"] renseigné également avec "C:/Apache2/htdocs".
De plus si la définition DocumentRoot est omise dans le httpd.conf (aucun accés possible à l'URL http://localhost), la variable est remplie avec la valeur par défaut (/apache/htdocs).
Une solution pour connaitre le répertoire racine de son site serait soit de récupérer la variable _ENV["DOCUMENT_ROOT"] (si définie), soit de récupérer la variable _SERVER["SCRIPT_FILENAME"] et dans extraire le chemin (pas trés jolie mais...).
- Code: Tout sélectionner
DocumentRoot "C:/Apache2/htdocs"
Dans le cas ou votre site est placé sous ce répertoire (accessible par http://localhost), la variable renverra bien "C:/Apache2/htdocs".
Or, lors de l'utilisation d'alias dans le httpd.conf,
- Code: Tout sélectionner
Alias /myweb "D:/myweb"
un acces sur une page à l'URL http://localhost/myweb renverra la variable _SERVER["DOCUMENT_ROOT"] renseigné également avec "C:/Apache2/htdocs".
De plus si la définition DocumentRoot est omise dans le httpd.conf (aucun accés possible à l'URL http://localhost), la variable est remplie avec la valeur par défaut (/apache/htdocs).
Une solution pour connaitre le répertoire racine de son site serait soit de récupérer la variable _ENV["DOCUMENT_ROOT"] (si définie), soit de récupérer la variable _SERVER["SCRIPT_FILENAME"] et dans extraire le chemin (pas trés jolie mais...).
- Invité
Ah, un truc, afin de connaitre toutes les variables PHP, placer sur son site une page contenant le code suivant:
et tester...
- Code: Tout sélectionner
<?php
phpinfo();
?>
et tester...
Pour le problème des graphs et robot test ce post peût vous interesser
http://www.webrankinfo.com/forums/viewtopic_5453.htm
http://www.webrankinfo.com/forums/viewtopic_5453.htm
14 messages • Page 1 sur 1
Lectures recommandées sur ce thème :
- X-Robots-Tag : directive pour bloquer les robots dans l'entête HTTP : explications
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- La calculatrice de Google
- Google s'empare de Writely, un traitement de texte en ligne
- Séminaire URL Rewriting et sites dynamiques
- Article sur le fichier .htaccess
- Google Presently : le concurrent de Powerpoint
- Hébergement de projets open source sur Google Code
- Google Web Toolkit, pour créer des applications en AJAX
- AOL pourrait remplacer son partenaire Google par MSN
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit, Google Writely
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum