海运的博客

PHP重新动态编译Curl扩展添加异步DNS支持c-ares

发布时间:January 30, 2015 // 分类: // No Comments

pycurl支持异步DNS支持c-ares类似,请先确定Libcurl是否已支持异步DNS解析c-ares,如不支持可升级libcurl支持异步DNS解析c-ares
理论上的libcurl更新添加支持异步DNS解析后,将库文件通过ldconfig添加到系统动态库,如果大版本号和之前版本相同,可以不用重新编译Php curl扩展已支持异步DNS,因为PHP curl依赖libcurl会自动选择版本较高的lib。
如查看系统共享库中的Libcurl:

ldconfig -p|grep curl
        libcurl.so.4 (libc6,x86-64) => /usr/local/curl/lib/libcurl.so.4
        libcurl.so.4 (libc6,x86-64) => /usr/lib64/libcurl.so.4
        libcurl.so (libc6,x86-64) => /usr/local/curl/lib/libcurl.so
        libcurl.so (libc6,x86-64) => /usr/lib64/libcurl.so

然后查看php curl扩展的共享库依赖,可见已自动选择新编译的libcurl.so.4:

ldd /usr/lib64/php/modules/curl.so|grep curl
        libcurl.so.4 => /usr/local/curl/lib/libcurl.so.4 (0x00007f406f0f9000)

不过为了稳定可以重新编译下php curl扩展,本文PHPyum安装,如果是源码安装的可参考:PHP动态编译添加IMAP模块支持
查看已安装的PHP版本,并下

php -v
PHP 5.5.21 (cli) (built: Jan 21 2015 15:35:14) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

下载相应版本的源码并重新编译curl扩展:

yum install php-devel
wget https://github.com/php/php-src/archive/php-5.5.21.tar.gz
tar zxvf php-5.5.21.tar.gz 
cd php-src-php-5.5.21/ext/curl/
phpize 
./configure --with-curl=/usr/local/curl

查看当前PHP CURL是否已支持异步DNS支持:

php -i|grep AsynchDNS
AsynchDNS => Yes

标签:php, curl, dns, c-ares, libcur

发表评论

分类
最新文章
最近回复
  • chainofhonor: 感谢,用dnsmasq设置自动判断BIOS和UEFI成功了
  • 海运: 不好意思,这个是很多年前的,现在也许已经不适用,我现在也不用多线了。
  • CQ: -m state --state NEW 替换成-m conntrack --ctstate NEW
  • CQ: 你好,我入站已经成功分流,但是不知道出站怎么设置,PREROUTING替换成POSTROUTI...
  • K: 好的,谢谢,我去试试!
  • 海运: 可以试试3proxy
  • daha: PHP的怎么使用???
  • 海运: 换回了5.3内核,5.8用5.3 dtb虽然能开机且负载正常,但也有其它问题,不建议使用。
  • shangyatsen: 后面的内核高精度计时器的问题使用5.4或者5.3的dtb会正常吗?我也发现有这个日志出现。感觉...
  • 海运: 缺少相应模块?