Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

elasticsearch-php_requires_curl_or_a_custom_http_handler [01/11/2018 14:39] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Erreur : Elasticsearch-PHP requires cURL, or a custom HTTP handler. ======
 +
 +===== Contexte =====
 + 
 +Suite a mise a jour d'​Ubuntu en version 18.04.1 LTS
 +
 +PHP Version 7.0.30-0ubuntu0.16.04.1
 +
 +''​sudo apt-get install curl''​ => curl est déjà la version la plus récente (7.58.0-2ubuntu3.3).
 +
 +''​sudo apt-get install php-curl''​ => php-curl est déjà la version la plus récente (1:​7.2+60ubuntu1).
 +===== Erreur =====
 +
 +
 +A l'​appel de ''​Elasticsearch\ClientBuilder::​create()->​build();'' ​
 +
 +j'​obtient l'​erreur : **Elasticsearch-PHP requires cURL, or a custom HTTP handler.**
 +
 +Dans le fichier /​vendor/​elasticsearch/​elasticsearch/​src/​Elasticsearch/​ClientBuilder.php:​182
 +<code php>
 +        if (extension_loaded('​curl'​)) {
 +        ...blah blah blah...
 +        } else {
 +            throw new \RuntimeException('​Elasticsearch-PHP requires cURL, or a custom HTTP handler.'​);​
 +        }
 +
 +</​code>​
 +
 +Donc j'en viens a la conclusion que ''​extension_loaded('​curl'​)''​ retourne FALSE .... Whyyyyyyy ???
 +===== Tentatives de résolution =====
 +==== Mise a jour de php ====
 +Je mets a jour php avec ''​sudo apt-get install php''​ et il m'​installe php7.2 a la place de 7.0.
 +
 +Je redemarre Apache ''​sudo service apache2 restart''​.
 +
 +A ce point rien ne change, ni la version de php recupérée par un phpinfo()=>​PHP Version 7.0.30-0ubuntu0.16.04.1,​ ni l'​erreur extension_loaded('​curl'​).
 +
 +Pourtant un ''​php -v''​ en ligne de commande me sort:
 +<​code>​
 +PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
 +Copyright (c) 1997-2018 The PHP Group
 +Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
 +    with Zend OPcache v7.2.10-0ubuntu0.18.04.1,​ Copyright (c) 1999-2018, by Zend Technologies
 +</​code>​
 +Je tente un ''​Reboot''​... Pas de changement :-(
 +==== Passage de PHP7.0 -> PHP7.2 dans Apache2 ====
 +  * Désactivation du module Apache php7.0 avec ''​sudo a2dismod php7.0''​
 +  * Activation du module Apache php7.2 avec ''​sudo a2enmod php7.2''​
 +  * Redémarrage d'​Apache2 ''​sudo systemctl restart apache2''​
 +
 +Voila ce que ça donne en lignes de commande.
 +<​code>​
 +thierry@obi103:​~$ sudo a2dismod php7.0
 +Module php7.0 disabled.
 +To activate the new configuration,​ you need to run:
 +  systemctl restart apache2
 +thierry@obi103:​~$ sudo a2enmod php7.2
 +Considering dependency mpm_prefork for php7.2:
 +Considering conflict mpm_event for mpm_prefork:​
 +Considering conflict mpm_worker for mpm_prefork:​
 +Module mpm_prefork already enabled
 +Considering conflict php5 for php7.2:
 +Enabling module php7.2.
 +To activate the new configuration,​ you need to run:
 +  systemctl restart apache2
 +thierry@obi103:​~$ sudo systemctl restart apache2
 +</​code>​
 +
 +===== Résolu ! =====
 +Maintenant tout refonctionne bien, le phpinfo me donne ''​PHP Version 7.2.10-0ubuntu0.18.04.1''​
 +
 +Et ''​extension_loaded('​curl'​)''​ me retourne bien TRUE :-)
 +
 +Bon tout cela ne nous dit pas pourquoi cUrl ne fonctionnait pas avec PHP7.0.
 +
 +Peut etre la raison est contenue la dessous ?
 +<​code>​
 +thierry@obi103:​~$ sudo apt-get install php7.0-curl
 +Lecture des listes de paquets... Fait
 +Construction de l'​arbre des dépendances
 +Lecture des informations d'​état... Fait
 +Aucune version du paquet php7.0-curl n'est disponible, mais il existe dans la base de données. ​
 +Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète ou qu'il n'est disponible que sur une autre source
 +</​code>​
 +
 +
 +Et pour vous ça fonctionne ? Mettez le en commentaires !
 +
 +
 +
  
  • Dernière modification: il y a 5 mois
  • (modification externe)