源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题
2015-03-13 20:28
971 查看
最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题, 用 echo phpinfo() ; 查看, 支持openssl, 支持curl, 网上找了好多资料, 都没解决。
用 #php -V 查看, 提示 openssl.so 加载失败, 看来 肯定与openssl库有关。 重新安装了openssl库, 问题依旧。 原因是openssl库用到了 zend, 看上面的提示, 显示zend库也报错。 要处理估计还得重新安装zend库。 麻烦, 算了, 不让直接用源码编译一次 php, 说干就干吧。
下载了 PHP 5.5.0.tar.gz
安装过程中可能会碰到一些错误, 下面是我安装碰到的,环境不一样, 每台机器碰到的问题也会不一样。
1、 碰到错误 xpm.h not found
# yum install libXpm-devel //注意x为大写
# yum install libXext-devel //注意x为大写
2、碰到错误 gmp.h not found
#yum install gmp
#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
#
6、碰到错误 error: Cannot find pspell
#
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
#
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 文件, 并取到数据了。
[root@www ~]# php -V Failed loading /usr/local/zend/ZendOptimizer.so: /usr/local/zend/ZendOptimizer.so: undefined symbol: zend_throw_exception_internal PHP Warning: PHP Startup: memcache: Unable to initialize module Module compiled with module API=20060613 PHP compiled with module API=20090626 These options need to match in Unknown on line 0 PHP 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/local/php' '--with-config-file-path=/usr/local/php/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' \ '--enable-exif' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--without-pear' '--with-gettext' \ '--with-mime-magic' php_sapis="cli cgi" # 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
#yum install gmp
#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_exec访问HTTPS返回502错误的问题(修改PATH路径)
- 源代码编译安装 PHP5.5.0,解决curl_exec訪问HTTPS返回502错误的问题
- PHP源码包编译安装错误及解决方法汇总
- PHP中curl_multi_exec会一直返回超时的问题解决
- php源码编译安装时的一些常见错误解决办法
- 源码编译安装PHP和Apache(解决php通过yum安装版本低的问题)
- ubuntu源码编译安装php常见错误解决办法
- linux系统安装php时编译php5.5.0出现“set --enable-opcache=no ”错误的解决办法
- ubuntu源码编译安装php常见错误解决办法
- Samba 源码编译安装及Win7/Win8访问问题解决
- php使用curl访问https返回无结果的问题
- ubuntu源码编译安装php常见错误解决办法
- PHP7.0编译安装ext/curl/.libs/ conflict 问题解决
- 【转】ubuntu源码编译安装php常见错误解决办法
- (转)ubuntu源码编译安装php常见错误解决办法
- 在Linux下安装PHP过程中,编译时出现configure: error: libjpeg.(a|so) not found 错误的解决办法
- 编译安装PHP 时遇到问题解决方法.
- PHP编译安装时常见错误解决办法
- Apache 2.2 安装好后新建任意 PHP 文件访问时返回 500 Internal Server Error 解决方法
- windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)