1. 程式人生 > >原始碼編譯安裝 PHP5.5.0,解決curl_exec訪問HTTPS返回502錯誤的問題

原始碼編譯安裝 PHP5.5.0,解決curl_exec訪問HTTPS返回502錯誤的問題

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

[[email protected] ~]# 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錯誤的問題

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

保姆級教程——Ubuntu16.04 Server下深度學習環境搭建:安裝CUDA8.0cuDNN6.0Bazel0.5.4原始碼編譯安裝TensorFlow1.4.0(GPU版)

寫在前面 本文敘述了在Ubuntu16.04 Server下安裝CUDA8.0,cuDNN6.0以及原始碼編譯安裝TensorFlow1.4.0(GPU版)的親身經歷,包括遇到的問題及解決辦法,也有一些自己的經驗,希望能對讀者有所幫助。期間參考了許多前人的文章,後文會一一附上鍊接,在此先行謝過。在下能力有限,

原始碼編譯安裝MySQL-5.6/mysql-5.6.39------踩了無數坑重灌了十幾次伺服器才會的,不容易啊!

1.切換到src目錄 cd /usr/local/src/   2. 下載mysql免編譯二進位制包  免編譯的mysql二進位制包5.6原始碼包: wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.3

Linux 從原始碼編譯安裝 OpenSSH以及各問題解決

簡單的說 OpenSSH 是一組安全遠端的連線工具,主要包括了幾個部份:ssh、sshd、scp、sftp、ssh-keygen、ssh-agent、ssh-add。OpenSSH 安裝配置比較複雜,難點在配置,特別是在 VPS 中,配置不當就完全無法連結 VPS 了。

Ubuntu 16.04原始碼編譯安裝PHP 5.6.29

2、解壓 tar -zxvf php-5.6.29.tar.gz 3、配置 ./configure –prefix=/usr/local/php –with-apxs2=/u

原始碼編譯安裝MySQL-5.1.58,常規引數優化配置

1.    軟體獲得 可以從官方網站獲得穩定版本mysql5.1.58。選擇souce code,壓縮包安裝檔案。 若主機直接連線公網,可在主機上直接使用如下方式獲得軟體包: wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.58.tar

React Native之Android 5.0以下系統WebView訪問https頁面變成空白頁

在我們的React Native專案中,需要開發一個tab頁面專門配置三方h5連結,供使用者瀏覽。自動化測試:Android 5.0以下系統此tab頁面為空白頁面。看效果: 而我們去檢視這個三方的

在CENT OS 7.0 64位系統上原始碼編譯安裝OPENCV3.0以及CUDA7.0支援CUDA開發並整合QT5.5.0的開發環境

=============================概述================================= 在CENT OS 7.0 64位系統上原始碼編譯安裝OPENCV,支援CUDA,並整合QT的開發環境,整體過程如下: 1,安裝作業系統,我使用U

Centos7:yum安裝apache編譯安裝php5.6apache不解析php的解決方法

首先,說一下問題發生的場景: 因為懶,所以用 yum 安裝 apache ,因為 centos 的源自帶 php 5.4 不能符合環境要求,而不想用其他源,所以選擇原始碼編譯安裝 php 5.6 安裝完畢後,apache 不解析 php ,不解析的現象是瀏覽器直接顯示或下載了 php 檔案的原始碼 過程

原始碼編譯安裝PHP Version 5.6.30------踩了無數坑重灌了十幾次伺服器才會的,不容易啊!

1 環境準備 yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-deve

在Linux CentOS上編譯安裝Clang 3.5.0適用於Redhat和Clang3.8

編譯CoreCLR需要Clang 3.5,而CentOS上安裝的是Clang 3.4.2(yum repos中最新版也是這個),只能自己手工編譯LLVM的原始碼進行安裝。 (注:CentOS的版本是6.6) 一、安裝libstdc++4.7 (注:如果是CentOS

Centos下Yum安裝PHP5.5,5.6,7.0

eas yum安裝 remove dap web select mysql style -s 默認的版本太低了,手動安裝有一些麻煩,想采用Yum安裝的可以使用下面的方案: 1.檢查當前安裝的PHP包 yum list installed | grep php 如果有安裝

Linux之Nginx原始碼編譯安裝並實現Nginx版本升級秒級切換和Nginx版本回滾秒級回退

Linux之Nginx原始碼編譯安裝,並實現Nginx版本升級,秒級切換和Nginx版本回滾,秒級回退 1、先檢查Nginx依賴庫(主要4個gcc、pcre、zlib、openssl,通過yum安裝) 2、GCC——GNU編譯器集合(GCC可以使用預設包管理器的倉庫(reposito

[環境配置]Ubuntu 16.04 原始碼編譯安裝OpenCV-3.2.0+OpenCV_contrib-3.2.0及產生的問題

1.OpenCV-3.2.0+OpenCV_contrib-3.2.0編譯安裝過程 1)下載官方要求的依賴包 GCC 4.4.x or later CMake 2.6 or higher Git GTK+2.x or higher, including headers (libgtk2.

centos7 編譯安裝gcc-5.4.0

一、安裝開發必備環境: yum groupinstall "Development Tools" yum install glibc-static libstdc++-static 二、編譯安裝gcc-5.4.0 你可以到官網下載gcc,也可以直接在這裡下載:http://ftp.tsukuba.wid

原始碼編譯安裝swoole並讓php支援swoole

第一步:下載swoole    : git  clone https://gitee.com/swoole/swoole.git 第二步:進入下載目錄。輸入phpize(phpize是在php/bin/phpize) phpize擴充套件php的擴充套

CentOS6.5 編譯安裝 PHP5.6+MySQL5.6+Apache2.4

安裝前的準備 檢視系統是否安裝了PHP,MYSQL,APACHE 檢視是否安裝 [[email protected] ~]#rpm -q httpd mysql php 如果安裝請解除安裝 [

原始碼編譯安裝Apache/2.4.37-------踩了無數坑重灌了十幾次伺服器才會的,不容易啊!

1.先進入/usr/local/中建立三個資料夾 apr apr-util apache cd /usr/local目錄 mkdir apr  mkdir apr-util  mkdir apache 2.再進入 src中  cd src   

01-postgres9.4.5在redhat6.5環境下原始碼編譯安裝(2016-11-08)

0讀者須知 1安裝redhat65 2更改本地yum源 4解壓postgres 5安裝依賴包 6增加使用者設定密碼 7開始編譯和安裝postgres 8設定環境變數 9初始化資

ccentos7 原始碼原始碼原始碼編譯安裝 mysql 5.7.24

1.下載  這個包只有49M 但是在編譯的時候時間長 wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz 安裝依賴包 yum install -y cmake make gcc gc