web-dev-qa-db-fra.com

curl_init () ne fonctionne pas lorsque le script php est accessible depuis un navigateur

Ubuntu 16.04.1, serveur Apache2 ... Script php simple: index.php

<?php
    echo "A";
    $ch = curl_init();
    echo "B";

Le résultat devrait être: AB, fonctionne bien depuis le terminal

Pourtant, lorsque j’ouvre index.php à partir du navigateur, le résultat est le suivant: A

Apparemment, une erreur se produit ... mais le script s'est arrêté lorsqu'il a atteint curl_init ()

  1. le bloc try-catch ne détecte pas l'erreur
  2. le curl_error ($ ch) n'aide pas puisque cette ligne n'a jamais atteint

Pour éliminer le motif des autorisations, j'ai également essayé d'exécuter le script à partir d'un terminal à l'aide de l'utilisateur www-data.

Que puis-je faire?

EDIT

depuis Apache error.log

PHP Fatal error:  Uncaught Error: Call to undefined function curl_init()
in /var/www/html/index.php:4\nStack trace:\n#0 {main}\n  thrown in
/var/www/html/index.php on line 4
3
Grigory Ilizirov

Vous devez installer le paquet php-curl, en fonction de votre version de PHP. S'il s'agit de la version par défaut pour Ubuntu 16.04 - php7.0:

Sudo apt update
Sudo apt install php7.0-curl
Sudo phpenmod curl
Sudo systemctl restart Apache2.service
3
pa4080