源码编译安装 PHP5.5.0,解决curl

最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题, 用 echo phpinfo() ; 查看, 支持openssl, 支持curl, 网上找了好多资料, 都没解决。

[root@www ~]# php -VFailed loading /usr/local/zend/ZendOptimizer.so: /usr/local/zend/ZendOptimizer.so: undefined symbol: zend_throw_exception_internalPHP Warning: PHP Startup: memcache: Unable to initialize moduleModule compiled with module API=20060613PHP compiled with module API=20090626These options need to match in Unknown on line 0PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so’ – /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so: undefined symbol: zend_parse_parameters_none in Unknown on line 0

用 #php -V 查看, 提示 openssl.so 加载失败, 看来 肯定与openssl库有关。 重新安装了openssl库, 问题依旧。 原因是openssl库用到了 zend, 看上面的提示, 显示zend库也报错。 要处理估计还得重新安装zend库。 麻烦, 算了, 不让直接用源码编译一次 php, 说干就干吧。

下载了 PHP 5.5.0.tar.gz

# ./configure –prefix=/usr –with-config-file-path=/etc –with-mysql=/usr/local/mysql/ –with-mysqli=/usr/local/mysql/bin/mysql_config \–with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath \–enable-discard-path –enable-magic-quotes –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization \–with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt \–enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip \–enable-soap –without-pear –with-gettext –with-mime-magic# make ZEND_EXTRA_LIBS=’-liconv’# make test# make install需要指定的目录 一个是mysql的安装目录, 一个是 mysql_config 所在的目录。

安装过程中可能会碰到一些错误, 下面是我安装碰到的,环境不一样, 每台机器碰到的问题也会不一样。

1、 碰到错误 xpm.h not found

# yum install libXpm-devel//注意x为大写# yum install libXext-devel//注意x为大写

2、碰到错误 gmp.h not found

#yuminstallgmp

#yum install gmp-devel

3、碰到错误error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen

#yum install libc-client-devel

4、碰到错误 error: Unable to detect ICU prefix or /usr/bin/icu-config failed

#yum install libicu*

#yum install icu*

5、碰到错误 error: ODBC header file ‘/usr/include/sqlext.h’ not found

#yum install unixODBC-devel

6、碰到错误 error: Cannot find pspell

#yum install aspell-devel

7、碰到错误 error: Can not find recode.h anywhere under /usr /usr/local /usr /opt.

#yum install recode

#yum install recode-devel

8、碰到错误 error: Could not find net-snmp-config binary

#yum install net-snmp-devel

9、碰到错误 error: Cannot find libtidy

#yum install libtidy-devel

php 安装完毕了 , 测试 了一下 php 页面, 问题依旧, 最终仔细看了一下, phpinfo() 函数显示的版本是 5.2.17, 而我安装的是 5.5.0, 显然 nginx 服务器使用的还是

老的 php, 没有启用我最新编译安装的 php, 查找了一下, 老的 php 的目录是 /usr/local/bin/php, 而我新安装的php目录是 /usr/bin/php

为何不用最新的php呢,, 显然与 环境变量PATH有关 , 执行命令 env , 看到

PATH=/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

我们可以修改 /etc/profile 文件 , 把文件最后一行 :

export PATH=/usr/local/mysql/bin:$PATH

修改为

export PATH=/usr/local/mysql/bin:/usr/bin:$PATH

然后

# cd /etc

# source profile 重新加载 profile 文件

最后再测试 php 文件, curl_exec 可以访问 https 文件, 并取到数据了。

爱情使人忘记时间,时间也使人忘记爱情。

源码编译安装 PHP5.5.0,解决curl

相关文章:

你感兴趣的文章:

标签云: