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

資訊專欄INFORMATION COLUMN

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

hzc / 1421人閱讀

摘要:然后搜索關(guān)鍵詞,如下圖所示然后也可以通過(guò)來(lái)查看段錯(cuò)誤,首先,開啟選項(xiàng)然后,運(yùn)行生成文件,然后在當(dāng)前目錄會(huì)生成文件,用以下命令查看的內(nèi)容這是顯示結(jié)果注意到最后一行了嗎,提示我們有問(wèn)題。

昨天下午在日常寫代碼的時(shí)候遇到一個(gè)問(wèn)題。就是在調(diào)用curl_exec()后出現(xiàn)502。然后馬上編寫了一個(gè)測(cè)試腳本:


發(fā)現(xiàn),只要鏈接是https的,必然出現(xiàn)段錯(cuò)誤,這也是導(dǎo)致502的原因。而http鏈接可以正常訪問(wèn)。

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

上面的日志是我通過(guò)系統(tǒng)的日志程序來(lái)查看的,我用的是Linux Mint操作系統(tǒng),打開方式為:菜單->日志。然后搜索關(guān)鍵詞php,如下圖所示:

然后也可以通過(guò)gdp來(lái)查看段錯(cuò)誤,

首先,開啟dump選項(xiàng)

ulimit -c unlimited 

然后,運(yùn)行PHP生成core文件,

php test.php

然后在當(dāng)前目錄會(huì)生成core文件,用以下命令查看dump的內(nèi)容:

gdb php -c core

這是顯示結(jié)果:

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有問(wèn)題。

解決問(wèn)題的靈感從這里來(lái)的:
https://bugs.php.net/bug.php?...

也有人出現(xiàn)了相同的問(wèn)題,官方提示說(shuō)是系統(tǒng)curl使用的ssl庫(kù)和php編譯時(shí)使用的ssl庫(kù)(opsnssl)不一至導(dǎo)致的。然后我查找了phpinfo信息,發(fā)現(xiàn)php使用的curl版本以及它使用的ssl庫(kù)(openssl)版本:

然后查看PHP編譯時(shí)的openssl版本:

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

下面是安裝新版curl的過(guò)程。

首先下載新版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在這個(gè)目錄,所以指定這個(gè)
sudo make
sudo make install

然后從新打開一個(gè)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

發(fā)現(xiàn)系統(tǒng)的curl版本已經(jīng)升級(jí)成功,并且openssl的版本也是希望的版本。

然后我們?cè)龠\(yùn)行測(cè)試文件,

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



    
    
    
    
    
    
    
    
    
    
    百度一下,你就知道
    
    
    
    
    
    
    

發(fā)現(xiàn)可以獲取https的內(nèi)容了。


解決這個(gè)問(wèn)題:

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

解決方式
第一,把/usr/bin里的curlcurl-config替換為/usr/local/bin下的對(duì)應(yīng)文件

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。這個(gè)問(wèn)題的原因是php在編譯的時(shí)候得到的libcurl版本是以前系統(tǒng)的版本,現(xiàn)在libcurl升級(jí)了,所以對(duì)于php來(lái)說(shuō)版本信息就消失了,所以我們只需要重新安裝一遍php:

cd lnmp1.5
sudo ./upgrade

這里會(huì)提示你輸入要升級(jí)哪個(gè)軟件,你選擇PHP。

然后會(huì)提示你輸入PHP版本號(hào),你輸入5.6.38。

最后按回車即可。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/29700.html

相關(guān)文章

  • PHP開發(fā)環(huán)境01 - Mac使用Docker配置PHP環(huán)境(只限于學(xué)習(xí))

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

    gitmilk 評(píng)論0 收藏0
  • PHP開發(fā)環(huán)境01 - Mac使用Docker配置PHP環(huán)境(只限于學(xué)習(xí))

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

    baukh789 評(píng)論0 收藏0
  • Yii系列(1)打造虛擬開發(fā)環(huán)境及Yii的安裝配置

    摘要:我下載到了本機(jī)上與打通的文件夾中,再進(jìn)入,執(zhí)行以下命令用代號(hào)取代的發(fā)行版本代號(hào),本系統(tǒng)是所以代號(hào)為通過(guò)執(zhí)行,在文件尾部中添加,以下代碼保存,相關(guān)編輯操作請(qǐng)谷歌。安裝的前提是,已經(jīng)安裝成功。 最近因?yàn)楣ぷ鏖_始接觸Yii,之前開發(fā)使用laravel習(xí)慣用vagrant。所以,這次嘗試著打造一個(gè)box,專門用來(lái)寫Yii框架的項(xiàng)目。 在這次打造box,收獲了很多:1)更加熟悉了nginx的配...

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

    摘要:執(zhí)行時(shí),可能會(huì)報(bào)各種依賴包不存在的提示,比如,如果是開發(fā)環(huán)境或者對(duì)這些依賴程序的版本沒(méi)有要求的話,可以直接通過(guò)的方式安裝這些依賴包。新建一個(gè)文件寫入這樣的話,如果以后我們不需要擴(kuò)展時(shí),可以直接刪除配置文件即可。 淘寶Tengine的編譯安裝 Tengine的官網(wǎng):http://tengine.taobao.org/ 下載源碼包 wget http://tengine.taobao...

    TesterHome 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<