源代码编译安装 PHP5.5.0,解决curl_exec訪问HTTPS返回502错误的问题
近期碰到一个奇怪的问题。 PHP使用 curl_exec 訪问 HTTPS 网页时, 返回502错误, 訪问HTTP网页时没有问题, 用 echo phpinfo() ; 查看。 支持openssl, 支持curl。 网上找了好多资料。 都没解决。
[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 server使用的还是
老的 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错误的问题的更多相关文章
- Linux 环境中从源代码编译安装 ReText 问题与解决
从源代码编译安装 ReText 问题与解决 1. 如何安装 Python Markups 1.1 从 https://launchpad.net/python-markups 下载 Python Ma ...
- 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)
最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题, 用 echo phpinfo() ; 查看, 支持op ...
- Ubuntu通过源代码编译安装Octave 4.0
本教程/笔记,意在指导在Ubuntu及其它Linux系统上怎样通过源代码安装Octave. Octave简单介绍 Octave是GNU旗下取代matlab的数学工具软件,语法与matlab高度兼容.而 ...
- 编译安装php-5.3.27报错:make: *** [sapi/fpm/php-fpm] 错误 1
安装PHP的时候make报错:make: *** [sapi/fpm/php-fpm] Error 1 原因:Centos6.8之后已经将iconv库加进来了,如果再安装libiconv库相当于重复一 ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...
- 记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程
买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下: Mac Pro 编译安装 PHP 5.6.21 及 问题汇总 后来, ...
- CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13
CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.132013-10-24 15:31:12标签:服务器 防火墙 file 配置文件 written 一.配置好I ...
- CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程): http://www.osyunwei.com/archives/1537.html 准备 ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享
一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
随机推荐
- hbulider mui框架
1.webview http://www.dcloud.io/docs/api/zh_cn/webview.shtml#plus.webview.WebviewStyle http://www.dcl ...
- Flex Label自动截取、自动换行
label.maxDisplayedLines=0; // 默认多行显示,不截取 label.maxDisplayedLines=1; //任意整数,显示单行文本,自动截取(...) ...
- OpenLayers学习笔记5——使用jQuery UI实现查询并标注(UI篇)
近期事情非常多,老板给的压力也非常大.经常出差,另外项目和个人研究还都要跟上,本月要交论文,还要写专利,仅仅能抽时间来学习其它的东西了. 关于OpenLayers的在博客中不会写太多详细的实现(网上有 ...
- Ajax技术--考试计时并自动提交试卷
1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访问准备考试页面index.jsp,在该页面中, ...
- 在Qt中使用ActiveX控件
Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件.ActiveQt包含了两个组件QA ...
- 关于jquery文件上传插件 uploadify 3.1的使用
要使用uplaodify3.1,自然要下载相应的包,下载地址http://www.uploadify.com/download/,这里有两种包,一个是基于flash,免费的,一个是基于html5,需要 ...
- mysql READ-COMMITTED 模式下 行锁不会升级到表级锁
mysql> select sn,id,info from s100 group by id; +-----+------+------+ | sn | id | info | +-----+- ...
- 浙江大学PAT上机题解析之2-06. 数列求和
给定某数字A(1<=A<=9)以及非负整数N(0<=N<=100000),求数列之和S = A + AA + AAA + … + AA…A(N个A).例如A=1, N=3时,S ...
- iOS应用开发详解
<iOS应用开发详解> 基本信息 作者: 郭宏志 出版社:电子工业出版社 ISBN:9787121207075 上架时间:2013-6-28 出版日期:2013 年7月 开本:16开 ...
- html中的table在android端显示
转载请注明出处:http://blog.csdn.net/u012338845/article/details/46773245 開始都是用Html.fromHtml(source).来显示html的 ...