Pages : 1
#1 Le 24/10/2021, à 08:02
- king76
Impossible d'activer php-curl
Salut,
J'ai un serveur au bureau que j'ai monté avec Ubuntu 20.10 et php 7.3, mais je n'arrive pas à activer le module curl.
Voici une copie de mon fichier phpinfo ici : http://www.tricodon.org/phpinfo.html mais aucune trace de curl
Mon fichier php est ici /etc/php/7.3/apache2/php.ini et j'ai bien désactiver cette ligne : extension=curl
Si je tape cette commande : dpkg -l curl j'obtiens ça :
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-=================-============-=======================================================
ii curl 7.68.0-1ubuntu4.3 amd64 command line tool for transferring data with URL syntax
J'avais fait l'installation comme ça : sudo apt install php-curl
parce que les autres commandes ne marchaient pas : sudo apt install php7.0-curl
J'ai une fonction toute simple pourtant :
function curl_get_contents($url) {
// Initiate the curl session
$ch = curl_init();
// Set the URL
curl_setopt($ch, CURLOPT_URL, $url);
// Removes the headers from the output
curl_setopt($ch, CURLOPT_HEADER, 0);
// Return the output instead of displaying it directly
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Execute the curl session
$output = curl_exec($ch);
// Close the curl session
curl_close($ch);
// Return the output as a variable
return $output;
}
Ca affiche ca à l'écran :
Fatal error: Uncaught Error: Call to undefined function curl_init() in /var/www/html/Canada411/index.php:1875 Stack trace: #0 /var/www/html/Canada411/index.php(1823): Canada411_apl->curl_get_contents('https://www.fr....') #1 /var/www/html/Canada411/index.php(2192): Canada411_apl->controle() #2 {main} thrown in /var/www/html/Canada411/index.php on line 1875
Je veux récupérer le contenu d'une page de ce genre : https://www.pagesjaunes.ca/fs/1-418-999 … 4189990202
Et bien sûr quand je fais php -m je ne vois pas le module curl.
Si vous avez une piste, merci., j'ai des traces de php 7.4 que j'avais initialement sur cette machine mais j'étais passé sous php 7.3, mais mon application n'est comptable qu'avec la version 7.3 pour le moment.
--
D'ailleurs si j'essaye de le faire avec la commande : file_get_contents('https://www.fr.canada411.ca/search/?stype=si&what=4189990202');
J'ai un autre message d'erreur que j'ai pas réussi à résoudre :
Erreur
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
Erreur
file_get_contents(): Failed to enable crypto
Erreur
file_get_contents(https://www.fr.canada411.ca/search/?stype=si&what=4182103505): failed to open stream: operation failed
Tout ça parce qu'à la base je faisais une requête Ajax qui me sortait cette erreur sous Google Chrome :
Access to fetch at 'http://192.168.0.16' from origin 'https://www.fr.canada411.ca' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value that is not equal to the supplied origin
J'avais tenté d'appliquer ça https://ubiq.co/tech-blog/set-access-co … rs-apache/ sans succès.
Imaginez, ça fait deux heures que je suis sur le coup, partie d'une fonction AJAX, passer par file_get_contents et d'un problème avec certificat SSL pour arriver à essayer CURL et aucune solution ne marche lol
HELP !
À savoir que pour le moment :
- Ajax et le CORS ne marche nul part, sauf avec une extension Chrome
- File_get_contents marche sur l'environnement de dev (Windows Apache)
- Curl marche pas en prod et affiche écran vide sur dev (windows Apache)
Dernière modification par king76 (Le 24/10/2021, à 08:18)
Hors ligne
#2 Le 24/10/2021, à 10:02
- abelthorne
Re : Impossible d'activer php-curl
Tout d'abord, Ubuntu 20.10 n'est plus supportée, ses dépôts ne sont normalement plus en ligne, tu ne peux plus rien installer dessus depuis ceux-ci sans bidouiller.
D'autre part, d'où vient ce PHP 7.3 ? Dans les dépôts c'est la 7.4 depuis focal (20.04) et la 8.0 depuis impish (21.10). Si elle vient d'un dépôt tiers, c'est possible qu'il ne propose pas le paquet php-curl correspondant. Si tu veux en avoir le cœur net, list les paquets avec apt, pas dpkg (qui ne va gérer que ceux qui sont installés ou ont des résidus) :
apt list | grep curl
Dernière modification par abelthorne (Le 24/10/2021, à 10:06)
Hors ligne
#3 Le 24/10/2021, à 13:54
- bruno
Re : Impossible d'activer php-curl
Bonjour,
Normalement il suffit d'installer le paquet php-curl :
sudo apt install php-curl
Cela n'enlève rien aux remarques pertinentes de @abelthorne.
Tu devrais utiliser une version LTS (la 20.04) et ne pas chercher à avoir une version différente du PHP fourni par les dépôts officiels. Il vaut mieux adapter ton code à la version 7.4, cela nécessite peu de choses (cf. https://www.php.net/migration74).
#4 Le 24/10/2021, à 14:11
- king76
Re : Impossible d'activer php-curl
Merci pour vos réponses.
J'ai lancé la commande en question et la partie qui t'intéresse ça doit être celle ou c'est indiqué :
php-curl/groovy,now 2:7.4+76 all [installed]
php7.4-curl/now 7.4.13-1+ubuntu20.10.1+deb.sury.org+1 amd64 [installed,local]
Donc si je comprends bien, j'ai pas la version pour 7.3
J'ai installé ce serveur y'a un an, et c'est déjà obsolète ? C'est abusé. Je sais que je devais installer la version LTS, mais à l'époque j'ai pris la version la plus récente en me disant que ça allait tenir quelques temps.
Je ne sais plus comment j'ai installé la version 7.3 par contre, j'ai du ajouter un dépôt ? Ou est-ce que je peux voir la liste des dépôts que j'ai pu ajouter manuellement. Sinon, comment je pourrais installer le package pour php7.3-curl et désinstaller php7.4-curl, merci.
Pour le moment je dois me contenter de php 7.3, l'application que j'utilise (https://www.scriptcase.net/) ne supporte pas encore la version 7.4, mais une mise à jour majeure est prévue ce 26 octobre, le problème devrait être réglé.
Je pourrais attendre d'ici là et repasser le serveur en 7.4, mais les développeurs de cette application sont pas reconnus pour sortir des versions stables, donc pour le moment je préférerais apprendre à désinstaller un package et trouver comment installer les sources pour la version 7.3 de curl.
Si vous pouvez me guider, ce serait apprécié.
Merci
Hors ligne
#5 Le 24/10/2021, à 14:28
- abelthorne
Re : Impossible d'activer php-curl
J'ai installé ce serveur y'a un an, et c'est déjà obsolète ? C'est abusé. Je sais que je devais installer la version LTS, mais à l'époque j'ai pris la version la plus récente en me disant que ça allait tenir quelques temps.
Les versions d'Ubuntu fonctionnent sur deux cycles :
- le cycle LTS ;
- le cycle "normal" pour les autres versions.
Les LTS sortent tous les 2 ans et sont supportées 5 ans. Les versions normales sortent tous les 6 mois et sont supportées 9 mois. Ces dernières sont plutôt destinées à une utilisation "desktop" pour les gens qui veulent avoir Ubuntu constamment à jour (c'est relatif, ce n'est pas une rolling release) en passant à la nouvelle version tous les 6 mois (avec 3 mois de battement pour le faire, donc). Pour une utilisation serveur, il vaut mieux s'en tenir aux LTS, à moins que tu veuilles mettre à jour ton serveur tous les 6 mois.
En l'état actuel des choses, tu ne pourras pas repasser en 20.04 sans tout réinstaller. Avec ta version actuelle, la seule possibilité serait de passer en 21.04 (qui est encore supportée ~ 3 mois), puis 21.10 (version actuelle), puis 22.04 (prochaine LTS) quand elle sortira en avril. À partir de là, rester sur le cycle LTS. Sauf que ça ne va pas arranger les choses pour ton appli PHP puisqu'à partir de la 21.10 on est sur PHP 8.
Si tu veux rester sur PHP 7.x, il faudrait idéalement réinstaller Ubuntu sur ton serveur :
- soit la 18.04 (LTS supportée jusqu'en avril 2023) qui propose PHP 7.2 ;
- soit la 20.04 (LTS supportée jusqu'en avril 2025) qui propose PHP 7.4.
Je ne sais plus comment j'ai installé la version 7.3 par contre, j'ai du ajouter un dépôt ? Ou est-ce que je peux voir la liste des dépôts que j'ai pu ajouter manuellement. Sinon, comment je pourrais installer le package pour php7.3-curl et désinstaller php7.4-curl, merci.
Tu as effectivement vraisemblablement ajouté un dépôt tiers. Pour voir la liste des dépôts et leur contenu, donne le retour de :
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d
cat /etc/sources.list.d/*.list
Donne aussi des infos sur les deux paquets curl pour voir d'où ils viennent :
apt-cache policy php-curl php7.4-curl
Au vu des numéros de version, on peut supposer que :
- php-curl vient des dépôts groovy (20.10) qui ne sont plus en ligne ;
- php7.4-curl vient du dépôt tiers "sury" mais c'est curieux : si c'est lui qui te fournit PHP 7.3, il devrait aussi logiquement avoir un paquet php7.3-curl et pas 7.4.
C'est aussi tout à fait possible que le PPA qui te fournit PHP 7.3 ne propose pas le module curl...
Dernière modification par abelthorne (Le 24/10/2021, à 14:37)
Hors ligne
#6 Le 24/10/2021, à 14:55
- king76
Re : Impossible d'activer php-curl
Merci pour l'explication concernant les versions, c'est pas rassurant. Je ferais une mise à jour vers 22.04 dans ce cas là si c'est possible.
D'ici là si je ne peux pas installer ce package, je devrais peut-être retravaillé sur le problème de mon erreur initiale avec CORS policy qui est plus simple à régler que le certificat SSL.
Voici mes sources sinon :
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ca.archive.ubuntu.com/ubuntu groovy main restricted
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ca.archive.ubuntu.com/ubuntu groovy-updates main restricted
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ca.archive.ubuntu.com/ubuntu groovy universe
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy universe
deb http://ca.archive.ubuntu.com/ubuntu groovy-updates universe
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ca.archive.ubuntu.com/ubuntu groovy multiverse
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy multiverse
deb http://ca.archive.ubuntu.com/ubuntu groovy-updates multiverse
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ca.archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu groovy partner
# deb-src http://archive.canonical.com/ubuntu groovy partner
deb http://ca.archive.ubuntu.com/ubuntu groovy-security main restricted
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-security main restricted
deb http://ca.archive.ubuntu.com/ubuntu groovy-security universe
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-security universe
deb http://ca.archive.ubuntu.com/ubuntu groovy-security multiverse
# deb-src http://ca.archive.ubuntu.com/ubuntu groovy-security multiverse
et pour savoir d'ou vient mon package 7.4 j'ai ceci :
php-curl:
Installed: 2:7.4+76
Candidate: 2:7.4+76
Version table:
*** 2:7.4+76 500
500 http://ca.archive.ubuntu.com/ubuntu groovy/main amd64 Packages
100 /var/lib/dpkg/status
php7.4-curl:
Installed: 7.4.13-1+ubuntu20.10.1+deb.sury.org+1
Candidate: 7.4.13-1+ubuntu20.10.1+deb.sury.org+1
Version table:
*** 7.4.13-1+ubuntu20.10.1+deb.sury.org+1 100
100 /var/lib/dpkg/status
7.4.9-1ubuntu1.2 500
500 http://ca.archive.ubuntu.com/ubuntu groovy-updates/main amd64 Packages
500 http://ca.archive.ubuntu.com/ubuntu groovy-security/main amd64 Packages
7.4.9-1ubuntu1 500
500 http://ca.archive.ubuntu.com/ubuntu groovy/main amd64 Packages
verdict ? Ca vient d'une source officielle ? Qui n'est plus supportée ?
Merci
Hors ligne
#7 Le 24/10/2021, à 16:32
- abelthorne
Re : Impossible d'activer php-curl
Pour les sources, tu n'as donné que le retour de la première commande, les deux autres ne renvoient rien ?
Concernant l'état des deux paquets :
- php-curl est installé depuis les dépôts Ubuntu 20.10 (qui ont l'air d'être encore en ligne mais ça ne durera pas) ;
- php4.4-curl est installé en version locale (sans dépôt associé) et c'est une version qui vient de "sury.org" ; il y a d'autres versions légèrement plus anciennes de paquet dans les dépôts Ubuntu 20.10.
J'aurais tendance à penser que :
- tu avais ajouté le PPA "sury" à tes sources pour installer PHP 7.3 ;
- tu l'as supprimé par la suite, ce qui expliquerait l'absence d'une version 7.3 de php-curl et la version locale du paquet 7.4.
C'est possible aussi que tu n'aies pas supprimé le dépôt mais qu'il soit juste désactivé (pour confirmer ça, il me faudrait le retour des commandes demandées pour les dépôts).
En l'état, c'est un sacré foutoir. Si tu veux garder PHP 7.3 (et potentiellement installer curl), il faudrait au moins remettre le PPA sury en place.
Hors ligne
#8 Le 24/10/2021, à 16:36
- king76
Re : Impossible d'activer php-curl
Désolé pour les autres commandes j'ai ceci :
ondrej-ubuntu-php-groovy.list
Sinon, dans /etc/ je n'ai pas de dossier sources.list.d
Merci.
Hors ligne
#9 Le 24/10/2021, à 16:44
- abelthorne
Re : Impossible d'activer php-curl
Oups, j'ai oublié le dossier apt dans le chemin :
cat /etc/apt/sources.list.d/*.list
Ça va afficher le contenu de ce ondrej-ubuntu-php-groovy.list qui est vraisemblablement le PPA pour PHP qui doit être désactivé.
Dernière modification par abelthorne (Le 24/10/2021, à 16:47)
Hors ligne
#10 Le 24/10/2021, à 16:46
- king76
Re : Impossible d'activer php-curl
Effectivement j'ai ceci :
deb http://ppa.launchpad.net/ondrej/php/ubuntu/ groovy main
# deb-src http://ppa.launchpad.net/ondrej/php/ubuntu/ groovy main
Je le réactive et j'essaye d'installer le package php7.3-curl ?
Merci pour ton aide.
Dernière modification par king76 (Le 24/10/2021, à 16:48)
Hors ligne
#11 Le 24/10/2021, à 16:48
- abelthorne
Re : Impossible d'activer php-curl
En fait, il n'est pas désactivé. Le problème, après vérification sur le PPA en question, c'est qu'il n'a plus de branche groovy (20.10), probablement parce que cette version d'Ubuntu n'est plus supportée. Il fonctionne pour bionic (18.04), focal (20.04) et hirsute (21.04). On peut supposer qu'il ajoutera éventuellement impish (21.10) prochainement et que hirsute disparaîtra d'ici quelques mois.
Bref : c'est la merde, parce que tu te retrouves avec des paquets PHP 7.3 qui ne sont plus gérables.
Dernière modification par abelthorne (Le 24/10/2021, à 16:48)
Hors ligne
#12 Le 24/10/2021, à 16:55
- king76
Re : Impossible d'activer php-curl
Ok merci, je vais aller dans les autres pistes dans ce cas là, je vais poster un nouveau ticket.
Je n'avais pas besoin de curl, c'était juste une alternative parce que mes deux autres soluces avant ne marchait pas.
Merci pour ton aide !
Hors ligne
#13 Le 24/10/2021, à 17:03
- abelthorne
Re : Impossible d'activer php-curl
Même sans avoir besoin de curl, la situation n'est pas brillante parce que tu te retrouves avec des paquets PHP 7.3 qui ne sont plus mis à jour, qui poseront éventuellement des problèmes de dépendances, etc.
La solution la plus "simple" pour tout remettre d'aplomb serait de passer à Ubuntu 21.04 (ce qui va nécessiter de nettoyer tous les paquets PHP 7.3 pour que la mise à niveau se déroule sans accroc), ce qui permettrait de réutiliser le dépôt tiers pour cette version de PHP mais ce serait pour un temps limité (le support de la 21.04 s'arrête en janvier). Il faut alors espérer que d'ici 3 mois le dépôt en question ajoute une branche 21.10 pour passer à cette version tout en continuant à y avoir accès.
Sinon, tout sauvegarder et refaire une installation complète d'Ubuntu, soit en version 18.04 (pour avoir PHP 7.2 et ne plus dépendre de ce dépôt tiers), soit en 20.04 (pour avoir PHP 7.3 via ce dépôt tiers).
Hors ligne
#14 Le 24/10/2021, à 17:13
- king76
Re : Impossible d'activer php-curl
Je pourrais faire une réinstallation en effet, ca me permettrait de faire ma documentation technique en même temps que j'ai pas fait lors de l'installation
Je vais attendre que la nouvelle version de mon programme sorte (scriptcase), voir si ca va supporter php 7.4 ou 8.0
A suivre.
Hors ligne
#15 Le 25/10/2021, à 02:11
- king76
Re : Impossible d'activer php-curl
Bon en attendant de tout réinstaller, j'ai réussi à implémenter le tout avec la fonction file_get_contents en ajouter des options en paramètres ! Ouf
$context=array(
"ssl"=>array(
'ciphers' => 'DEFAULT:!DH'
),
);
echo file_get_contents('https://www.fr.canada411.ca/search/?stype=si&what='.trim($_GET['what']), false, stream_context_create($context));
Hors ligne
Pages : 1