国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Ubuntu 下 PHP curl https 段錯誤(或者nginx502)

hzc / 1419人閱讀

摘要:然后搜索關鍵詞,如下圖所示然后也可以通過來查看段錯誤,首先,開啟選項然后,運行生成文件,然后在當前目錄會生成文件,用以下命令查看的內容這是顯示結果注意到最后一行了嗎,提示我們有問題。

昨天下午在日常寫代碼的時候遇到一個問題。就是在調用curl_exec()后出現502。然后馬上編寫了一個測試腳本:


發現,只要鏈接是https的,必然出現段錯誤,這也是導致502的原因。而http鏈接可以正常訪問。

php[15304]: segfault at 7f43cf4b7c00 ip 00007f43cf4b7c00 sp 00007ffda84c57d8 error 15 in libssl.so.1.1[7f43cf4b4000+4000]

上面的日志是我通過系統的日志程序來查看的,我用的是Linux Mint操作系統,打開方式為:菜單->日志。然后搜索關鍵詞php,如下圖所示:

然后也可以通過gdp來查看段錯誤,

首先,開啟dump選項

ulimit -c unlimited 

然后,運行PHP生成core文件,

php test.php

然后在當前目錄會生成core文件,用以下命令查看dump的內容:

gdb php -c core

這是顯示結果:

GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from php...done.
[New LWP 11242]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `php test.php".
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fe27bd51c00 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1

注意到最后一行了嗎,提示我們libssl有問題。

解決問題的靈感從這里來的:
https://bugs.php.net/bug.php?...

也有人出現了相同的問題,官方提示說是系統curl使用的ssl庫和php編譯時使用的ssl庫(opsnssl)不一至導致的。然后我查找了phpinfo信息,發現php使用的curl版本以及它使用的ssl庫(openssl)版本:

然后查看PHP編譯時的openssl版本:

這兩個軟件的openssl版本明顯不一致,所以,下一步就是要么從新編譯PHP,使用系統的openssl版本1.1.0g,要么重新編譯安裝curl,使用openssl版本1.0.2o,我選擇了后者。

下面是安裝新版curl的過程。

首先下載新版curl

wget https://curl.haxx.se/download/curl-7.62.0.tar.gz

然后解壓并安裝

tar vxzf curl-7.62.0.tar.gz
cd curl-7.62.0
sudo ./configure --with-ssl=/usr/local/openssl --prefix=/usr/local #php的openssl在這個目錄,所以指定這個
sudo make
sudo make install

然后從新打開一個terminal

curl -V
curl 7.62.0 (x86_64-pc-linux-gnu) libcurl/7.62.0 OpenSSL/1.0.2o zlib/1.2.11
Release-Date: 2018-10-31
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy

發現系統的curl版本已經升級成功,并且openssl的版本也是希望的版本。

然后我們再運行測試文件,

?  tests php test.php                
php: /usr/local/lib/libcurl.so.4: no version information available (required by php) #這個是新問題



    
    
    
    
    
    
    
    
    
    
    百度一下,你就知道
    
    
    
    
    
    
    

發現可以獲取https的內容了。


解決這個問題:

php: /usr/local/lib/libcurl.so.4: no version information available (required by php) #這個是新問題

解決方式
第一,把/usr/bin里的curlcurl-config替換為/usr/local/bin下的對應文件

sudo rm -rf /usr/bin/curl*
sudo ln -s /usr/local/bin/curl /usr/bin/curl
sudo ln -s /usr/local/bin/curl-config /usr/bin/curl-config

第二,由于我用的是lnmp1.5一鍵安裝包,所以,我重新安裝了下php。這個問題的原因是php在編譯的時候得到的libcurl版本是以前系統的版本,現在libcurl升級了,所以對于php來說版本信息就消失了,所以我們只需要重新安裝一遍php:

cd lnmp1.5
sudo ./upgrade

這里會提示你輸入要升級哪個軟件,你選擇PHP。

然后會提示你輸入PHP版本號,你輸入5.6.38。

最后按回車即可。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29700.html

相關文章

  • PHP開發環境01 - Mac使用Docker配置PHP環境(只限于學習)

    視頻地址 學徒卡夫 - 卡夫的Mac 03 - Mac下使用Docker配置PHP環境 https://www.bilibili.com/vide... 安裝 Docker https://www.docker.com/docker... 下載鏡像 # 安裝基礎鏡像 - ubuntu:14.04 # 拉取鏡像(拉取鏡像經常會失敗,嘗試幾次就好了) docker pull ubuntu:14.0...

    gitmilk 評論0 收藏0
  • PHP開發環境01 - Mac使用Docker配置PHP環境(只限于學習)

    視頻地址 學徒卡夫 - 卡夫的Mac 03 - Mac下使用Docker配置PHP環境 https://www.bilibili.com/vide... 安裝 Docker https://www.docker.com/docker... 下載鏡像 # 安裝基礎鏡像 - ubuntu:14.04 # 拉取鏡像(拉取鏡像經常會失敗,嘗試幾次就好了) docker pull ubuntu:14.0...

    baukh789 評論0 收藏0
  • Yii系列(1)打造虛擬開發環境及Yii的安裝配置

    摘要:我下載到了本機上與打通的文件夾中,再進入,執行以下命令用代號取代的發行版本代號,本系統是所以代號為通過執行,在文件尾部中添加,以下代碼保存,相關編輯操作請谷歌。安裝的前提是,已經安裝成功。 最近因為工作開始接觸Yii,之前開發使用laravel習慣用vagrant。所以,這次嘗試著打造一個box,專門用來寫Yii框架的項目。 在這次打造box,收獲了很多:1)更加熟悉了nginx的配...

    shleyZ 評論0 收藏0
  • Tengine2.1.0 PHP5.6.8 Nodejs 的編譯安裝和配置

    摘要:執行時,可能會報各種依賴包不存在的提示,比如,如果是開發環境或者對這些依賴程序的版本沒有要求的話,可以直接通過的方式安裝這些依賴包。新建一個文件寫入這樣的話,如果以后我們不需要擴展時,可以直接刪除配置文件即可。 淘寶Tengine的編譯安裝 Tengine的官網:http://tengine.taobao.org/ 下載源碼包 wget http://tengine.taobao...

    XanaHopper 評論0 收藏0

發表評論

0條評論

hzc

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<