zoukankan      html  css  js  c++  java
  • 源代码编译安装 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 文件。 并取到数据了。





  • 相关阅读:
    linux定时器
    TIMESTAMP和DATETIME的区别
    Linux进程或线程绑定到CPU
    C++学习笔记
    磁盘扇区校验和
    docker安装mysql,并配置部分表同步
    docker 安装tomcat
    多tomcat 同一个浏览器 多个项目 会导致session覆盖
    Ubuntu 安装 NodeJS
    Ubuntu 下安装 Arduino IDE
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5057602.html
Copyright © 2011-2022 走看看