Cómo actualizar CURL con CPanel en CentOS 7
CURL es un módulo simple que le permite conectarse y comunicarse con varios tipos de servidores utilizando varios tipos de protocolos. Curl admite principalmente los protocolos http, https, ftp, gopher, telnet, dict, file y ldap. También es compatible con SMB, SMBS, IMAP, IMAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, TFT, certificados HTTPS, HTTP POST, HTTP PUT, carga FTP, carga basada en formulario HTTP, proxies, cookies y usuario / contraseña autenticación.
Sabemos que una cantidad cada vez mayor de aplicaciones web ha hecho que los scripts HTTP sean más solicitados y necesarios. Existe una gran demanda de una herramienta de este tipo que nos ayude a extraer automáticamente información de la Web, cargar, proxy o POST datos a los servidores web.
CURL es una herramienta de línea de comandos simple que se puede utilizar para realizar todas estas manipulaciones de URL y transferencias de datos. Está impulsado por libcurl, que es una biblioteca creada por Daniel Stenberg.
Es obligatorio mantener este software siempre actualizado, ya que existe la posibilidad de intentos de piratería, manipulación de datos o lagunas debido a versiones antiguas inseguras. En este artículo, estoy discutiendo un método simple sobre cómo actualizar Curl de una manera más eficiente a las últimas versiones disponibles en un servidor cPanel.
En primer lugar, verifique la versión actual instalada en el servidor. Consulte la versión actual de CURL en mi servidor a continuación:
root@server1 [/usr/local/src]# /usr/bin/curl -V curl 7.38.0 (x86_64-redhat-linux-gnu) libcurl/7.38.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: IDN IPv6 Largefile NTLM NTLM_WB SSL UnixSockets
Como puede ver, la versión CURL es 7.38 y está compilada para admitir muchos protocolos como dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet y tftp.
Vamos a configurar CURL con DNS asíncrono para mejorar su rendimiento y agilizar las solicitudes sin retrasos. Comencemos nuestro proceso de actualización ahora.
Paso 1. Descargue el último paquete de DNS curl y asincrónico de su sitio web y extráigalo.
root@server1 [~]# cd /usr/local/src/ root@server1 [/usr/local/src]# wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz --2016-01-26 06:29:25-- http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz Resolving c-ares.haxx.se (c-ares.haxx.se)... 2a00:1a28:1200:9::2, 80.67.6.50 Connecting to c-ares.haxx.se (c-ares.haxx.se)|2a00:1a28:1200:9::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 809073 (790K) [application/x-gzip] Saving to: ‘c-ares-1.10.0.tar.gz’ 100%[=====================================================================================================>] 8,09,073 1.18MB/s in 0.7s 2016-01-26 06:29:26 (1.18 MB/s) - ‘c-ares-1.10.0.tar.gz’ saved [809073/809073] root@server1 [/usr/local/src]#tar -xvf c-ares-1.10.0.tar.gz root@server1 [/usr/local/src]# wget http://curl.haxx.se/download/curl-7.46.0.tar.gz --2016-01-26 06:29:59-- http://curl.haxx.se/download/curl-7.46.0.tar.gz Resolving curl.haxx.se (curl.haxx.se)... 2a00:1a28:1200:9::2, 80.67.6.50 Connecting to curl.haxx.se (curl.haxx.se)|2a00:1a28:1200:9::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 4551902 (4.3M) [application/x-gzip] Saving to: ‘curl-7.46.0.tar.gz’ 100%[=====================================================================================================>] 45,51,902 3.79MB/s in 1.1s 2016-01-26 06:30:01 (3.79 MB/s) - ‘curl-7.46.0.tar.gz’ saved [4551902/4551902] root@server1 [/usr/local/src]#tar -xvf curl-7.46.0.tar.gz
Paso 2. Configure, cree e instale el paquete DNS asíncrono.
root@server1 [/usr/local/src/c-ares-1.10.0]# ./configure root@server1 [/usr/local/src/c-ares-1.10.0]# make make all-am make[1]: Entering directory `/usr/local/src/c-ares-1.10.0' /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -DCARES_BUILDING_LIBRARY -DCARES_SYMBOL_HIDING -fvisibility=hidden -g0 -O2 -Wno-system-headers -MT libcares_la-ares__close_sockets.lo -MD -MP -MF .deps/libcares_la-ares__close_sockets.Tpo -c -o libcares_la-ares__close_sockets.lo `test -f 'ares__close_sockets.c' || echo './'`ares__close_sockets.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I. -DCARES_BUILDING_LIBRARY -DCARES_SYMBOL_HIDING -fvisibility=hidden -g0 -O2 -Wno-system-headers -MT libcares_la-ares__close_sockets.lo -MD -MP -MF .deps/libcares_la-ares__close_sockets.Tpo -c ares__close_sockets.c -fPIC -DPIC -o .libs/libcares_la-ares__close_sockets.o make[1]: Leaving directory `/usr/local/src/c-ares-1.10.0' root@server1 [/usr/local/src/c-ares-1.10.0]# make install /usr/bin/install -c -m 644 ares_version.3 ares_inet_pton.3 ares_inet_ntop.3 '/usr/local/share/man/man3' /usr/bin/mkdir -p '/usr/local/lib/pkgconfig' /usr/bin/install -c -m 644 libcares.pc '/usr/local/lib/pkgconfig' make[1]: Leaving directory `/usr/local/src/c-ares-1.10.0'
Paso 3. Ahora configure CURL con Asynchornous DNS y todos los demás protocolos necesarios.
root@server1 [/usr/local/src/curl-7.46.0]# ./configure --enable-ares=/usr/local/src/c-ares-1.10.0 --enable-http --enable-imap --enable-pop3 --enable-ftp --enable-proxy --enable-tftp --enable-ntlm --enable-static --with-ssl=/usr/local/ssl --enable-ipv6 --enable-shared --disable-ldap --enable-gobher --enable-smtp --with-libidn --disable-rtsp --without-zlib root@server1 [/usr/local/src/curl-7.46.0]#make curl version: 7.46.0 Host setup: x86_64-pc-linux-gnu Install prefix: /usr/local Compiler: gcc SSL support: enabled (OpenSSL) SSH support: no (--with-libssh2) zlib support: no (--with-zlib) GSS-API support: no (--with-gssapi) TLS-SRP support: no (--enable-tls-srp) resolver: c-ares IPv6 support: enabled Unix sockets support: enabled IDN support: enabled Build libcurl: Shared=yes, Static=yes Built-in manual: enabled --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) SSPI support: no (--enable-sspi) ca cert bundle: /etc/pki/tls/certs/ca-bundle.crt ca cert path: no LDAP support: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS support: no (--enable-ldaps) RTSP support: no (--enable-rtsp) RTMP support: no (--with-librtmp) metalink support: no (--with-libmetalink) PSL support: no (libpsl not found) HTTP2 support: disabled (--with-nghttp2) Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S SMB SMBS SMTP SMTPS TELNET TFTP root@server1 [/usr/local/src/curl-7.46.0]# make install Making install in lib make[1]: Entering directory `/usr/local/src/curl-7.46.0/lib' make[2]: Entering directory `/usr/local/src/curl-7.46.0/lib' /usr/bin/mkdir -p '/usr/local/lib' /bin/sh ../libtool --mode=install /usr/bin/install -c libcurl.la '/usr/local/lib' libtool: install: /usr/bin/install -c .libs/libcurl.so.4.4.0 /usr/local/lib/libcurl.so.4.4.0 libtool: install: (cd /usr/local/lib && { ln -s -f libcurl.so.4.4.0 libcurl.so.4 || { rm -f libcurl.so.4 && ln -s libcurl.so.4.4.0 libcurl.so.4; }; }) libtool: install: (cd /usr/local/lib && { ln -s -f libcurl.so.4.4.0 libcurl.so || { rm -f libcurl.so && ln -s libcurl.so.4.4.0 libcurl.so; }; }) libtool: install: /usr/bin/install -c .libs/libcurl.lai /usr/local/lib/libcurl.la libtool: install: /usr/bin/install -c .libs/libcurl.a /usr/local/lib/libcurl.a libtool: install: chmod 644 /usr/local/lib/libcurl.a libtool: install: ranlib /usr/local/lib/libcurl.a libtool: finish: PATH="/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/sbin" ldconfig -n /usr/local/lib ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/lib
Paso 4 . Edite el archivo / var / cpanel / easy / apache / rawopts / all_php5 para habilitar el módulo CURL personalizado con nuestro último paquete de DNS asíncrono descargado como se muestra a continuación
root@server1 [~]# vim /var/cpanel/easy/apache/rawopts/all_php5 --with-gssapi --with-curl=/usr/local/src/curl-7.46.0 --enable-ares=/usr/local/src/c-ares-1.10.0
Paso 5. Ejecute EasyApache para configurar e instalar el último paquete CURL.
root@server1 [~]#/scripts/easyapache
Paso 6. Verifique y confirme la versión y la configuración de la versión de Curl recién instalada.
root@server1 [~]# curl-config --version libcurl 7.46.0 root@server1 [/usr/local/src/curl-7.46.0]# curl-config --features --protocols SSL IPv6 UnixSockets AsynchDNS IDN NTLM NTLM_WB DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S SMB SMBS SMTP SMTPS TELNET TFTP root@server1 [/usr/local/src/curl-7.46.0]# curl --version curl 7.46.0 (x86_64-pc-linux-gnu) libcurl/7.46.0 OpenSSL/1.0.1e c-ares/1.10.0 libidn/1.28 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SSL UnixSockets
Ahora ves que nuestro CURL está actualizado a la última versión disponible CURL 7.46.0 y está compilado con DNS asíncrono para admitir todos los protocolos necesarios. Puede confirmar el estado de curl compilado con una página PHPINFO.
PHP se puede codificar para hacer uso de estas solicitudes CURL asincrónicas para acelerar la ejecución del script de manera más eficiente. Espero que este artículo le resulte útil e informativo. Recomendaría sus valiosos comentarios y sugerencias al respecto. ¡¡Disfrutar!!