gbert1 Posted October 7, 2011 Share Posted October 7, 2011 Mes webservice fonctionnent en local avec MAMP. Je lis, crée, met à jour des produits. Quand j'installe sur OVH mutualisé (90plan), ça ne marche pas. J'ai une erreur 401 : HTTP REQUEST HEADER GET //api/product_features HTTP/1.1 Authorization: Basic ******** Host: www.******.com Accept: */* HTTP RESPONSE HEADER HTTP/1.1 401 Unauthorized Set-Cookie: 90plan=R4114022451; path=/; expires=Sun, 09-Oct-2011 17:38:08 GMT Date: Fri, 07 Oct 2011 05:28:32 GMT Server: Apache/2.2.X (OVH) X-Powered-By: PHP/5.2.17 WWW-Authenticate: Basic realm="Welcome to PrestaShop Webservice, please enter the authentication key as the login. No password required." Vary: Accept-Encoding Content-Length: 0 Content-Type: text/html; charset=utf-8 Ma version : PS 1.4.4.1 ce qui me trouble est qu'en local la ligne X-Powered-By (ci-dessous) est différente de la ligne X-Powered-By (ci-dessus) sur OVH HTTP/1.1 200 OK Date: Fri, 07 Oct 2011 05:37:38 GMT Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 PHP/5.3.6 X-Powered-By: PrestaShop Webservice Ma réécriture d'URL est bien activée (mais pas détectée par le BO dans Outils/Service web) PHP 5 est bien activé (comme on peut le voir dans l'entête http) J'ai désactivé et rééactivé smarty 3 (voir ce post). J'ai vidé les caches de Firefox et Chrome. Je sèche..... Merci de votre aide. Link to comment Share on other sites More sharing options...
gbert1 Posted October 10, 2011 Author Share Posted October 10, 2011 J'ai progressé (grâce à ce post sur le forum ovh) mais sans avoir encore trouvé la solution. C'est un problème lié à l'hébergement OVH mutualisé. Il est dû à l'utilisation de FCGI au lieu de CGI par OVH. Les variables d'authentification sont rendues vides avec FCGI. Donc dispatcher.php n'a rien à se mettre sous la dent et redemande donc ad libitum. Il faut donc faire une petite pirouette pour récupérer ces variables (nous avons besoin seulement de l'identifiant, pas du mot de passe). Il faut pour cela combiner (ou autre solution ?) deux règles de réécriture : 1/ une qui place HTTP Authorization dans $_SERVER['REMOTE_USER'] RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] il faut ensuite modifier dispatcher.php pour parser la variable REMOTE_USER au lieu d'aller chercher l'id dans $_SERVER['PHP_AUTH_USER'] (ou dans $_GET['ws_key'] ?) 2/ celle de Prestashop qui redirige l'appel www.monsite.com/api/?requete vers le sous-répertoire contenant le script d'aiguillage, cette règle est la suivante : RewriteRule ^api/?(.*)$ /webservice/dispatcher.php?url=$1 [QSA,L] Et ça (vu mon niveau en url rewriting) je ne sais pas faire, ni si c'est possible. Une seule règle ? Deux ? Dans quel ordre ? J'ai essayé mais sans trouver. Merci de votre aide. Link to comment Share on other sites More sharing options...
Ether Création Posted March 5, 2012 Share Posted March 5, 2012 Bonjour, En suivant le contenu du post, ca fonctionne parfaitement Merci pour l'info Arthur Link to comment Share on other sites More sharing options...
guix Posted May 7, 2012 Share Posted May 7, 2012 Bonsoir, je viens de tester la règle de ré-écriture du post OVH à savoir RewriteRule ^api/?(.*)$ /webservice/dispatcher.php?url=$1 [E=REMOTE_USER:%{HTTP:Authorization},QSA,L] mais ma clé est toujours refusée. Comment avez vous fait ??? Link to comment Share on other sites More sharing options...
N.Do Posted June 7, 2012 Share Posted June 7, 2012 Bonjour, c'est confirmé par ce ticket : http://forge.prestas...owse/PSCFI-4330 Le problème est lié à PHP en mode CGI ou FCGI plutôt qu'en module Apache. Link to comment Share on other sites More sharing options...
guix Posted June 7, 2012 Share Posted June 7, 2012 (edited) yep exactement, pour contourner temporairement j'ai mis la clé de mon webservice en dur dans le dispatcher.php je vais donc voir le fix proposé... -- EDIT Et bien ça fonctionne ! Merci à Antoine Edited June 7, 2012 by guix (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now