405 Method Not Allowed

Bonjour

Je teste sur localhost une application développée en Php qui accède à la base de données Dolibarr en utilisant l’api Rest.
Les méthodes GET et POST fonctionnent. Par contre dés que j’utilise PUT le message 405 Method Not Allowed s’affiche.

J’ai pourtant saisi dans le fichier .htaccess les commandes suivantes :
Limit GET POST OPTIONS PUT DELETE
Order allow,deny
Allow from all
/Limit
J’ai placé le fichier .htaccess sous le répertoire htdocs de Dolibarr.

La plate forme Lamp est fournie par Laragon avec :
Apache httpd-2.4.35-win64-VC15
php-7.2.19-Win32-VC15-x64
mysql-5.7.24-winx64

Merci de me proposer une solution qui puisse résoudre cette difficulté.
Cordialement

Bonjour,

Le problème est-il présent sur tous les points de terminaison API faisant appel à la méthode PUT ?
Arrivez-vous à envoyer les requêtes depuis l’explorateur d’API Dolibarr ? (/api/index.php/explorer/#/)

Bonjour

Heu c’est du windows je ne me trompe pas. Donc wamp.
Si vous ne mettez pas le htaccess, ça passe ?
@+

Lorsque je vais sur le lien de l’explorer on me signale que le fichier swagger.json ne peut pas être lu.
Avec ou sans htaccess le résultat est identique.

Avez-vous tout de même le champ DOLAPIKEY permettant de renseigner votre clé d’API Dolibarr ?

La zone de saisie de texte DOLAPIKEY apparait. Si je saisis le token obtenu par le login :
file_get_contents(« http://localhost/dolibarr/htdocs/api/index.php/login?login=admin&password=admin »);

Meme resultat.

Je ne suis pas sûr de bien comprendre, pouvez-vous faire une capture d’écran.

OK, merci :slight_smile:

C’est étrange.
Visiblement, c’est une erreur un peu fourre-tout.

Pouvez-vous regarder dans les logs/journaux de PHP et Apache s’il y a plus de détails (erreurs ou warnings éventuels).

J’ai aussi trouvé ça

Mais je ne pense pas que ça soit d’une grande aide :stuck_out_tongue_winking_eye:

Bonjour,

:slight_smile:

Pour information, depuis je suis passé sous Windows 10 Pro et je ne rencontre plus le problème, je suis en revanche incapable de dire ce qui a permis de le résoudre entre le passage à Windows 10, ma version de Wampserver ou celle de Dolibarr.

Actuellement ma configuration est la suivante :

  • Windows 10 pro
  • Wampserver 3.1.9 64bit
  • PHP 5.6.40
  • Dolibarr 11.0.2

En revanche, en consultant le fil où j’avais exposé mon problème, je suis tombé sur ça :

@potiron Je pense que le problème a été réglé non pas par la mise à jour de Windows mais plutôt par la mise à jour de Dolibarr (le post d’origine étant assez ancien).

@laradev92 Vous pouvez aussi vérifier l’intégrité des fichiers de Dolibarr pour vous assurer qu’il n’en manque aucun par le menu Outils d’administration > Infos Dolibarr > Vérification de l’intégrité des fichiers.

Sachant que avec une autre application la methode Put entraine la meme erreur, je pense que Dolibarr n’est pas en cause.
Le paramétrage d’Apache doit etre la cause de cette anomalie.

Aussi j’ai modifié dans httpd.conf la directive AllowOverride :
AllowOverride All

le fichier htaccess placé sous dolibarr/htdocs contient :

ALLOW ONLY NECESSARY REQUEST METHODS

RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|OPTIONS|POST|PROPFIND|PUT) [NC]
RewriteRule .* - [F,L]

Aucun résultat.
J’utilise Dolibarr 12.0.0

Je ne pense pas que Laragon paramètre Apache par défaut pour qu’il interdise la méthode PUT (ni n’importe quelle méthode HTTP d’ailleurs).

Avez-vous essayé sans aucune modification (ni dans la config de base httpd.conf ni .htaccess) car cela fonctionne normalement bien sans avoir besoin de bidouiller avec la configuration par défaut.

Bonjour @laradev92

Cela n’a peut être rien à voir mais avez vous essayé avec une version stable (v11) plutôt qu’avec la version de dev (V12) ?

Cordialement
Eric

1 « J'aime »

Bonjour

J’ai saisi la commande : AllowOverride Limit dans httpd.conf et la commande Require valid-user dans htaccess aprés la balise Limit PUT DELETE.
Le message n’apparait plus, donc la commande PUT n’est plus bloquée par Apache. Par contre dans la table la mise à jour ne fonctionne pas.

Cordialement