En ce moment, j'essaie d'activer php-curl dans mon serveur apache2 sur Ubuntu 18.04 pour permettre à une iframe d'afficher une page de site externe. J'ai utilisé des méthodes pour essayer de le faire que j'ai trouvées documentées à plusieurs endroits :
StackOverflow : Comment installer l'extension ext-curl avec PHP 7 ?
StackOverflow : installer cURL dans php 7 (ubuntu14.04)
LinuxConfig.org : Comment activer et désactiver le module PHP curl avec Apache sur Ubuntu Linux
Quoi que je fasse, je n'arrive pas à faire fonctionner les commandes curl dans php, ce qui est très frustrant. Je me suis assuré que j'avais utilisé sudo apt-get install curl php7.2-curl
qui s'est installé sans problème, et j'ai ensuite redémarré le service apache en utilisant sudo service apache2 restart
. J'ai essayé d'activer l'extension dans le php.ini en utilisant extension=php_curl.dll
et aussi extension=curl
, sans succès. Si j'essaie le code donné sur linuxconfig.org pour vérifier l'état du module curl, il indique qu'il est désactivé.
Si j'essaie d'exécuter mon code php, je trouve dans mes logs :
PHP Erreur fatale : Erreur non prise : Call to undefined function curl_init() in /var/www/html/inc.redirect.php:4 \nStack trace : \n #0 {main} \n dans /var/www/html/inc.redirect.php à la ligne 4
Le code dans mon fichier 'inc.redirect.php' est le suivant :
<?php
if (isset($_GET['url'])) {
$url = $_GET['url'];
$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
}
?>
Qu'est-ce que je fais mal ou que j'oublie ?
UPDATE : En regardant dans le fichier error.log d'Apache2 lorsque je redémarre le service, je vois ce qui suit :
PHP Warning : PHP Startup : Impossible de charger la bibliothèque dynamique '/usr/lib/php/20160303/curl.so' - /usr/lib/php/20160303/curl.so : impossible d'ouvrir un fichier objet partagé : No such file or directory in Unknown on line 0
J'essaie toujours d'approfondir la question, et il semble que le fichier curl.so qu'il recherche se trouve dans '/usr/lib/php/20170718'. Je ne sais pas si je peux le faire, mais je ne sais pas non plus si je peux le faire.