源碼編譯安裝 PHP5.5.0,解決curl_exec訪問HTTPS返回502錯誤的問題(修改PATH路徑)

來源:互聯網
上載者:User

標籤:

      最近碰到一個奇怪的問題, PHP使用 curl_exec 訪問 HTTPS 網頁時, 返回502錯誤, 訪問HTTP網頁時沒有問題,  用   echo   phpinfo() ;  查看, 支援openssl, 支援curl, 網上找了好多資料, 都沒解決。

 

 

[plain] view plain copy  
  1. [[email protected] ~]# php -V  
  2. Failed loading /usr/local/zend/ZendOptimizer.so:  /usr/local/zend/ZendOptimizer.so: undefined symbol: zend_throw_exception_internal  
  3. PHP Warning:  PHP Startup: memcache: Unable to initialize module  
  4. Module compiled with module API=20060613  
  5. PHP    compiled with module API=20090626  
  6. These options need to match  
  7.  in Unknown on line 0  
  8. PHP Warning:  PHP Startup: Unable to load dynamic library ‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so‘   
  9. - /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  

 

[html] view plain copy  
  1. ./configure ‘--prefix=/usr/local/php‘ ‘--with-config-file-path=/usr/local/php/etc‘ ‘--with-mysql=/usr/local/mysql‘ \  
  2. ‘--with-mysqli=/usr/local/mysql/bin/mysql_config‘ ‘--with-iconv-dir‘ ‘--with-freetype-dir‘ ‘--with-jpeg-dir‘ ‘--with-png-dir‘ ‘--with-zlib‘ \  
  3. ‘--with-libxml-dir=/usr‘ ‘--enable-xml‘ ‘--disable-rpath‘ ‘--enable-discard-path‘ ‘--enable-magic-quotes‘ ‘--enable-safe-mode‘ ‘--enable-bcmath‘ \  
  4. ‘--enable-shmop‘ ‘--enable-sysvsem‘ ‘--enable-inline-optimization‘ ‘--with-curl‘ ‘--with-curlwrappers‘ ‘--enable-mbregex‘ ‘--enable-fastcgi‘ \  
  5. ‘--enable-fpm‘ ‘--enable-force-cgi-redirect‘ ‘--enable-mbstring‘ ‘--with-mcrypt‘ ‘--enable-ftp‘ ‘--with-gd‘ ‘--enable-gd-native-ttf‘ ‘--with-openssl‘ \  
  6. ‘--enable-exif‘ ‘--with-mhash‘ ‘--enable-pcntl‘ ‘--enable-sockets‘ ‘--with-xmlrpc‘ ‘--enable-zip‘ ‘--enable-soap‘ ‘--without-pear‘ ‘--with-gettext‘ \  
  7. ‘--with-mime-magic‘ php_sapis="cli cgi"  
  8.   
  9.   
  10. # make ZEND_EXTRA_LIBS=‘-liconv‘   
  11.   
  12. # make test  
  13.   
  14. # make  install  
  15.   
  16. 需要指定的目錄 一個是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 檔案, 並取到資料了。

http://blog.csdn.net/langeldep/article/details/44227973

 

源碼編譯安裝 PHP5.5.0,解決curl_exec訪問HTTPS返回502錯誤的問題(修改PATH路徑)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.