the missing glpi extension ext php ubuntu curl

missing - install php curl debian



Llamada a la función indefinida curl_init() incluso está habilitada en php7 (6)

¿Que esta pasando aqui?

Puede haber múltiples versiones de PHP instaladas en su sistema y Apache no está usando la versión que espera que use.

¿Cómo sabes qué versión de PHP Apache está usando?

Para saber esto, la idea clave es aprender el directorio ROOT de los archivos de configuración de Apache. En la línea de comando, puede escribir:

apache2ctl -V //sample output below AH00558: apache2: Could not reliably determine the server''s fully qualified domain name, using 127.0.1.1. Set the ''ServerName'' directive globally to suppress this message Server version: Apache/2.4.7 (Ubuntu) Server built: Jul 15 2016 15:34:04 Server''s Module Magic Number: 20120211:27 Server loaded: APR 1.5.1-dev, APR-UTIL 1.5.3 Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/etc/apache2" -D SUEXEC_BIN="/usr/lib/apache2/suexec" -D DEFAULT_PIDLOG="/var/run/apache2.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="mime.types" -D SERVER_CONFIG_FILE="apache2.conf"

En mi caso, el directorio de configuración ROOT de mi Apache se muestra en

HTTPD_ROOT="/etc/apache2"

Ahora que sé la ubicación de las configuraciones que utiliza Apache, ahora puedo determinar con precisión la versión de PHP que está utilizando al examinar el directorio "mods-enabled" ubicado dentro del directorio "/etc/apache2" .

En mi caso, cuando hago un ls dentro de "mods-enabled" , muestra el resultado de ff:

access_compat.load authz_user.load filter.load php5.load ... authz_host.load env.load php5.conf

En este punto, ahora sé con certeza que Apache está usando la versión ''php5'' de PHP instalada en mi sistema, cualquiera que sea.

Luego traté de reproducir el error anterior utilizando esta versión de PHP (es decir, ''php5'' ) ejecutando el siguiente comando:

$ php5 -r "curl_init();" PHP Fatal error: Call to undefined function curl_init() in Command line code on line 1

Voila!

La versión de PHP que esperaba que mi Apache estuviera usando es "php5.6" y ejecutar el mismo comando anterior con esta versión no produjo dicho error.

¿Cómo le digo a Apache qué versión de PhP usar?

Puede lograr esto utilizando los a2enmod/a2dismod cli de Apache2.

En primer lugar, deshabilito el módulo PHP que está actualmente activo en mi servidor (es decir, "php5" ):

a2dismod php5

Luego habilité el módulo php para la versión de PHP que quiero que use mi Apache:

a2enmod php5.6

Luego reinicio Apache

service apache2 restart

Después de refrescar la página ofensiva en mi sitio web, el error ya no existe.

Acabo de instalar php7 en mi Ubuntu. Al principio, no hubo ningún problema, mi sitio web funcionaba. Pero de repente, comenzó a devolver la llamada a la función indefinida curl_init () error. Ahora, mis páginas contienen códigos curl que no funcionan.

En phpinfo (), parece que Curl está habilitado. Hubo preguntas similares, pero ninguna de ellas lo manejó en php7. Pensé que debería ser algo diferente que otros.

Editar: cuando intento

php -i | grep curl

en la terminal, regresa

/etc/php/7.0/cli/conf.d/20-curl.ini, curl


He tenido un problema similar con curl después de la actualización a XX (16.04). Después de reinstalar Curl con:

sudo apt-get install php-curl

Y reiniciar el servidor

sudo service apache2 restart

todo volvió a la normalidad :)


Para mí, la resolución fue actualizar apt-get con el siguiente comando y luego instalar php7.0-curl.

sudo add-apt-repository ppa:ondrej/php


Sus páginas probablemente no se generan con CLI SAPI. Compruebe qué devuelve phpinfo () cuando se ejecuta desde su servidor web (es probable que intente leer el archivo ini incorrecto).


Su ruta de archivo es probablemente incorrecta

Compruebe el registro de error de Apache

/var/log/apache2/error.log

si la ruta o nombre de archivo llamado coincide con su ruta real, por ejemplo

/usr/lib/php/20151012/php_curl.so

En mi caso, ha sido el mismo camino, pero "el php_" faltaba

/usr/lib/php/20151012/curl.so

Así que cambié la ruta / nombre de archivo en consecuencia en

/etc/php/7.0/cli/conf.d/20-curl.ini

de

extension=php_curl.so

dentro

extension=curl.so


  • paso 1: descarga Php 7,
  • paso 2: copie libeay32.dll y ssleay32.dll y péguelos en C: / Windows / System32.
  • paso 3: reemplace php_openssl.dll y php_curl.dll en C: / php / ext con la última dll. reiniciar apache

Esto solucionó mi problema de problemas, espero que alguien se beneficie también