Jump to content

Je n'arrive pas à me connecter à ma boutique - pb de PS_ROOT_DIR ?


Recommended Posts

Bonjour,

 

J'ai installé prestashop sur un serveur pédagogique qui tourne sous WS7 pro et XAMPP.

 

J'ai téléchargé la dernière version (1.6.0.12), placé le dossier décompressé dans la racine de mes sites : C:/xampp/htdocs/.... J'ai ensuite créé la base de données dans Mysql puis lancé Prestashop/admin qui s'est déroulé correctement.

 

Mon problème est que je ne peux pas accéder à la boutique. J'ai un virtual host

 

VirtualHost *:80>

   DocumentRoot "c:/xampp/htdocs/..../prestashop"

   ServerName www.prestashop.org

    DirectoryIndex index.php

</VirtualHost

 

et lorsque j'essaye d'accéder à www.prestashop.org avec mon navigateur, je vois ceci dans la barre d'adresse :

 

http://www.prestashop.org/http:/www.prestashop.org/

 

J'ai regardé sur votre forum et n'ai pas trouvé d'explication.

 

J'ai ensuite cherché dans les fichiers de config et ai trouvé ceci :

 

C:/xampp/htdocs/..../prestashop/index.php :

               require(dirname(__FILE__).'/config/config.inc.php');

C:/xampp/htdocs/....../prestashop/config/config.inc.php :

               require_once(dirname(__FILE__).'/defines.inc.php');

C:/xampp/htdocs/......./prestashop/config/defines.inc.php :

 

    $currentDir = dirname(__FILE__);

 

    if (!defined('_PS_ROOT_DIR_') && (getenv('_PS_ROOT_DIR_') || getenv('REDIRECT__PS_ROOT_DIR_')))

        define('_PS_ROOT_DIR_', getenv('_PS_ROOT_DIR_') ? getenv('_PS_ROOT_DIR_') : getenv('REDIRECT__PS_ROOT_DIR_'));

 

    /* Directories */

    if (!defined('_PS_ROOT_DIR_'))

         define('_PS_ROOT_DIR_', realpath($currentDir.'/..'));

    if (!defined('_PS_CORE_DIR_'))

        define('_PS_CORE_DIR_', realpath($currentDir.'/..'));

 

________________________________________________________________

 

N'étant pas compétent en PhP, je voudrais comprendre où les variables _PS_ROOT_DIR_ et REDIRECT__PS_ROOT_DIR_ sont définies (je ne les ai pas trouvées dans settings.inc.php qui ne concerne que la base de données).

 

Merci d'avance de votre aide

Link to comment
Share on other sites

Je crois avoir trouvé l'explication du phénomène : la table "ps_shop_url" contenait un champ "physical_uri" qui se concaténait avec l'adresse du domaine. Je l'ai mis à blanc et le problème est résolu.

 

J'espère que ce post sera utile à d'autres.

Link to comment
Share on other sites

Je ré-ouvre ce post car si j'arrive à accéder à la boutique et à son administration, par contre la navigation interne ne marche pas et les images ne s'affichent pas.

 

Par exemple l'adresse qui s'affiche dans la barre d'adresse lorsque j'essaye d'accéder à la boutique "femme" est : www.prestashop.org3-femmes/  et correspond à une page inexistante.

 

Je pense que le problème est lié au fait que mon site ne se trouve pas à la racine C:/xampp/htdocs mais dans "C:/xampp/htdocs/DIR1/DIR2/DIR3".

 

J'aimerais donc bien comprendre où les variables _PS_ROOT_DIR_ et REDIRECT__PS_ROOT_DIR_ sont définies (je ne les ai pas trouvées dans settings.inc.php qui ne concerne que la base de données). Voir mon post initial

 

Merci d'avance de vos lumières.

Edited by kawa78 (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Cela me semble évident mais j'aimerais tout de même trouver une solution. Quelqu'un peut-il m'aider dans mes investigations et m'expliquer comment je peux faire en sorte que les variables _PS_ROOT_DIR_ et REDIRECT__PS_ROOT_DIR_ ou autres, contiennent les valeurs ad-hoc ?

 

Cordialement

Link to comment
Share on other sites

Merci de cette piste ... mais je n'arrive pas à trouver ce paramètre (SEO&URL). J'ai cherché dans le module d'administration, /préférences et /paramètres mais n'ai rien trouvé de tel. J'ai également cherché dans les fichiers de config et dans les tables sql mais sans succès. Merci de me m'en dire un peu plus.

Link to comment
Share on other sites

Bonjour,

 

le 8 mars, EOLIA me disait qu'il fallait mettre mon chemin d'accès dans PREFERENCES/SEO@URL.

 

J'ai trouvé cette rubrique et ai appliqué son conseil mais comme j'ai déjà indiqué ce chemin d'accès dans le fichier httpd_vhosts, cela n'a évidemment pas marché.

 

Je suis toujours à la recherche d'une piste.

Link to comment
Share on other sites

Bonjour

 

Je viens de lire et relire :

 

 


VirtualHost *:80>

   DocumentRoot "c:/xampp/htdocs/..../prestashop"

   ServerName www.prestashop.org

    DirectoryIndex index.php

</VirtualHost

 

Vous avez installer sur votre poste avec xampp  vous ne pouvez pas avoir : ServerName www.prestashop.org

www.prestashop.org n'est pas à vous donc vous ne pouvez pas l'avoir comme ServerName vous êtes sur votre poste pas chez prestashop :)

 

Comment faite vous pour avoir :

lorsque j'essaye d'accéder à la boutique "femme" est : www.prestashop.org3-femmes/

Vous avez rentrer dans ps_shop_url www.prestashop.org ?

 

 

 

ce chemin d'accès dans le fichier httpd_vhosts,

 

Pourquoi touchez vous à ce fichier ?

Link to comment
Share on other sites

Bonjour,

 

Comme je l'ai expliqué au début, il s'agit d'un outil pédagogique destiné à simuler les usages de l'internet dans un contexte où il n'y a pas d'accès à internet. Les sites sont donc tous sur un serveur, dans le dossier htdocs de xampp et on y accède à partir de postes connectés au serveur par un réseau local. Le catalogue des sites se trouve dans une page html et, les liens vers chacun de ces sites sont "virtuels" comme pour prestashop : www.prestashop.org (on aurait pu tout aussi bien mettre www.maboutique.org). Le fichier httpd_vthosts contient, pour chacun de ces sites, le chemin d'accès au répertoire dans lequel il se trouve.

 

Lorsque je saisis l'URL www.prestashop.org, Apache va chercher le index.php dans le chemin d'accès donné par le virtual host i.e c:/xampp/htdocs/..../prestashop/index.php (l'installation a été faite dans ce répertoire en utilisant le contenu de ......../prestashop/install.

 

Il n'y a pas de chemin d'accès dans Préférences/SEO&URL/URL de la boutique (j'ai mis à blanc le champ "physical_uri" de la table ps_shop_url) mais lorsque je regarde le source de la page d'accueil, je vois par exemple

 

<a href="http://www.prestashop.org" title="">
    <img class="img-responsive" src="http://www.prestashop.orgmodules/blockbanner/img/sale70.png" alt="" title="" width="1170" height="65" />
</a>

 

alors qu'il devrait y avoir prestashop.org/modules.

 

Cordialement

Link to comment
Share on other sites

Bonjour

 

 

 

Les sites sont donc tous sur un serveur, dans le dossier htdocs de xampp et on y accède à partir de postes connectés au serveur par un réseau local.

 

Xampp sur un serveur ? Si vous avez un serveur vous n'avez pas besoin de xampp, et pour accéder à un nom de domaine sur un serveur en local vous mettez dans le fichier hosts de votre poste l'adresse IP du serveur et le nom de domaine.

Edited by Oron (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Comme je l'ai expliqué au début, il s'agit d'un outil pédagogique destiné à simuler les usages de l'internet dans un contexte où il n'y a pas d'accès à internet. Les sites sont donc tous sur un serveur, dans le dossier htdocs de xampp et on y accède à partir de postes connectés au serveur par un réseau local. Le catalogue des sites se trouve dans une page html et, les liens vers chacun de ces sites sont "virtuels" comme pour prestashop : www.prestashop.org (on aurait pu tout aussi bien mettre www.maboutique.org). Le fichier httpd_vthosts contient, pour chacun de ces sites, le chemin d'accès au répertoire dans lequel il se trouve.

 

Lorsque je saisis l'URL www.prestashop.org, Apache va chercher le index.php dans le chemin d'accès donné par le virtual host i.e c:/xampp/htdocs/..../prestashop/index.php (l'installation a été faite dans ce répertoire en utilisant le contenu de ......../prestashop/install.

 

Il n'y a pas de chemin d'accès dans Préférences/SEO&URL/URL de la boutique (j'ai mis à blanc le champ "physical_uri" de la table ps_shop_url) mais lorsque je regarde le source de la page d'accueil, je vois par exemple

 

<a href="http://www.prestashop.org" title="">

    <img class="img-responsive" src="http://www.prestashop.orgmodules/blockbanner/img/sale70.png" alt="" title="" width="1170" height="65" />

</a>

 

alors qu'il devrait y avoir prestashop.org/modules.

 

Cordialement

Mettez juste un slash / dans le champ physical_uri ^^

Link to comment
Share on other sites

J'ai l'impression de rater des choses.

 

Vous parlez de Apache pour votre vhost, ok pas de problème, mais le navigateur que vous utilisez, lorsque vous lui demandez prestashop.org, il va résourdre ce nom sur internet et aller sur l'ip d'un serveur public a moins que vous n'ayez modifié le fichier hosts (%SystemRoot%\system32\drivers\etc\hosts.).

 

Vous pouvez également avoir un DNS privé lors de vos test sur votre LAN de test

 

A moins que vous n'ayez mis ce nom de domaine qu'ici en remplacement de son vrai nom - auquel cas ignorez ma question.

 

 

Vous citez Eolia, et ses recommandations. Comment les avez vous appliquées? Car si vous êtes dans votre Prestashop partie BO ma question est également sans objet.

 

@Oron, je pense qu'il a un PC avec XAMMP, il l'appelle server c'est juste la terminologie qui nous fait des croche pieds. :)

Edited by doekia (see edit history)
Link to comment
Share on other sites

Bonjour,

 

J'essaye de préciser mon installation.

  1. Comme l'a compris Doekia, mon serveur est un PC sur lequel est installé xampp,
  2. l'adresse IP de cette machine est forcée à 192.168.0.99,
  3. Ce serveur est intégré dans un réseau local et les postes "clients" y accèdent via un proxy dont l'adresse IP est 192.168.0.99,
  4. Tous les sites sont dans xampp/htdocs,
  5. ils sont répertoriés dans une page html, qui contient, des catégories avec des listes déroulantes et pour chaque site une ligne donnant l'URL virtuelle du site. Par exemple : <option value="http://www.prestashop.org/">Achats en ligne</option>,
  6. la résolution de cette adresse virtuelle se fait avec le fichier Apache/config/extra/httpd_vhosts qui donne le chemin d'accès (voir mon message du 23 février en haut de la pile).

J'ai fait plusieurs essais d'installation, dont une fois directement dans la racine de htdocs, et j’ai toujours le même symptôme à savoir que les liens internes ne marchent pas. Par exemple si je recopie le lien d’une image qui ne s’affiche pas sur la page d’accueil, j’ai http://www.prestashop.orgt-shirts/1-t-shirt-delave-manches-courtes.html.

 

Si je mets un / dans « physical_uri », j’ai un message qui me dit « Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas. ».

 

Si je ne mets rien, j’ai l’anomalie décrite ci-dessus.

Link to comment
Share on other sites

Bonjour

 

Vous vous cassez la tête avec xampp et un pc sous windows, vous auriez mieux fait d'installer un Debian wheezy sur un pc tout bête 2Go ou 4 Go de mémoire, fonction serveur web.

Et ispconfig pour gérer les domaines, vous auriez un vrai serveur, nul besoin de passer par des proxy.

 

En réseau local ça marche super bien. Et vous n'aurez pas les problèmes de la configuration xampp. Xampp et compagnie ne sont pas conçus pour servir de serveur web sur un poste et des postes externes qui s'y connecte.

Link to comment
Share on other sites

Xampp sous windows ? Qu'ouïe-je ! C'est WAMP pour le coup :P

 

Les 2 fonctionnent, xamp ou  Wamp en réseau local, faut pas dénigrer le bouzin non-plus^^

 

Evidemment un serveur isolé est préférable et plus "opérationnel" mais peut-être pas nécessaire pour l'usage qui en est fait.

 

A mon avis le problème vient surtout des urls fictives. www.prestashop.org existe vraiment et le browser risque de s’emmêler les pinceaux.

 

Proxy, bien compliqué pour pas grand chose. Le fichier host de chaque machine peut suffire si elles sont en réseau.

Link to comment
Share on other sites

Plus je lis plus j'ai l'impression qu'avant de vouloir faire fonctionner prestashop en réseau il faut avoir un minimum de compréhension réseau

La page où chaque pc de la classe arrive est en 192.168.0.99 - ok

Cette page donne des liens avec des noms ... je ne sais pas ce que les PC de la classe utilisent comme DNS puisqu'ils doivent taper une adresse sour forme ip,

mais c'est soit une passerelle qui va sur internet votre "prestashop.org" va sur le web, soit rien du tout auquel cas ils n'ont pas de résolution, ...

 

Maintenant si vous comprenez le réseau, soyez aimable d'expliquer clairement ce que vous faites parce que nous perdons tous notre temps à jouer les madame Irma.

 

Un vhost est un nom logique qui n'a de sens que pour le serveur apache je peux appeler mon vhost white-house.com si je veux mais pour que je vois la page de ce serveur il va falloir que je "résolve" white-house.com pour que cela me mène à ce serveur.

 

Faites une page index.html à la racine de votre PS_ROOT_DIR sur ce serveur ... mettez dedans 'BINGO!' essayez de faire que votre lien (dans la page de 192.168.0.99) mène sur le niveau le plus haut de votre vhosts (donc prestashop.org si j'ai bien compris) et affiche BINDGO. Tant que ce n'est pas le cas, le problème n'a rien a voir avec Prestashop c'est TCP/IP, DNS, routage - pur réseau votre problème.

Edited by doekia (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Après de multiples essais, je crois que je suis arrivé à faire fonctionner le bazar.

 

Dans SEO§URL,

  • url simplifiées = non
  • aucune redirection
  • Domain = www.prestashop.org/, et
  • rien dans physical_uri

dans mon fichier apache/config/extra/http_vhosts :

<VirtualHost *:80>
   DocumentRoot "c:/xampp/htdocs/...../prestashop/"
   ServerName www.prestashop.org
   DirectoryIndex index.php
</VirtualHost>

 

Ca marche dans mon environnement !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...