2016-06-09 1 views
3

J'ai fait sudo apt-get installer curl, sudo apt-obtenir php5-curl, sudo apt-get php-curl mais j'obtiens une fonction non définie pour curl_init()J'ai cURL installé sur Ubuntu 16 avec PHP 7 mais je reçois encore Appel à la fonction indéfinie curl_init()

Est-ce que quelqu'un sait des solutions pour cela?

Voici mon code PHP.

<?php 
    // create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "example.com"); 

    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // close curl resource to free up system resources 
    curl_close($ch);  
?> 
+0

essayer de vérifier 'php -i | grep curl' pour voir si elle sort quelque chose ou vérifiez si vous voyez curl dans 'php -m'. – Ekin

+0

Après avoir fait php -i | grep curl, je reçois ça. /etc/php/7.0/cli/conf.d/20-curl.ini, curl – AceJordan

+0

cette erreur n'existait pas sur php5 – AceJordan

Répondre

1

Essayez ceci: phpenmod curl et redémarrez apache. Espérons que cela aide (;

+0

J'ai essayé ceci et j'ai obtenu ce résultat 'Le module inl de curl de module n'existe pas sous /etc/php/5.6/mods-available.' , je suppose que ça se boucle dans le mauvais répertoire depuis que j'utilise PHP 7 – AceJordan

+0

essayez d'activer le mod php7 comme le commentaire de @ Ekn et spécifiez la version php dans la commande 'phpenmod' comme:' phpenmod -v 7.0 curl' – ktran

2

Pour toute personne ayant un problème similaire lors de l'installation d'une extension de php et obtenir encore undefined:

  1. Run php -i | grep EXT_NAME pour voir la sortie si le regex correspond à tout ce qui a EXT_NAME (dans le cas ci-dessus curl) dans votre phpinfo() ou simplement faire un fichier de test avec <?php phpinfo(); ?> et voir si vous apercevez l'extension.
  2. Run php -m pour voir les extensions chargées et vérifiez si vous avez une autre installation qui prend priorité via php -v ou plus d'un ph Fichier p.ini utilisant find -name 'php.ini' ou locate php.ini dans le répertoire racine.
  3. N'oubliez pas de redémarrer apache (ou tout autre service similaire) et/ou d'activer si vous avez installé un module.

3 # pour apache peut se faire via l'exécution service apache2 restart

Si vous construisez de la source une autre cause possible pourrait être que vous avez oublié de recompiler PHP avec (encore une fois, dans ce cas curl) --with-curl[=DIR] après l'installation d'une extension.

+1

@AceJordan vous pourriez avoir besoin pour désactiver mod php5 et activer php7 via: 'a2dismod php5' puis' a2enmod php7.0' puis 'service apache2 restart' – Ekin

+0

Cela nécessite bien sûr d'installer' libapache2-mod-php7.0' en premier. – Ekin

4

Vérifiez quelle version de PHP est apache utilisant, En utilisant la fonction phpinfo();.

La vérification est importante car vous avez peut-être basculé vers la version inférieure pour une raison quelconque (comme c'était le cas dans mon cas).

maintenant de la ligne de commande, exécutez cette commande pour installer boucle

*(Don\'t copy this) sudo apt-get install php[version of php]-curl* 

Par exemple, s'il est 5.6 puis utilisez

sudo apt-get install php5.6-curl 

Après cela, ne pas oublier de redémarrer apache2

sudo service apache2 restart 
+0

De commentaires: "J'ai déjà le dernier php7.0-curl." – miken32

+0

Je faisais face au même problème avec php7 curl installé .. Mais quand j'ai vérifié j'ai trouvé que la version d'enable php était 5.6 Ainsi c'est pour some1 qui pourrait faire face même – Confused

+0

Il emploie PHP 7 – miken32

2

Pour Ubuntu 16.04 en cours d'exécution php7.0, vous devez ULD spécifier la version comme ceci:

sudo apt-get install php7.0-curl

Puis, comme toujours, redémarrez apache avec

sudo service apache2 reload