Php

Debian 8 - curl / php 和從原始碼編譯的問題

  • December 9, 2016

我嘗試將 php 應用程序移動到新伺服器。

在舊伺服器上,curl php 呼叫在新伺服器上正常工作,但出現錯誤:

{“error”:“Referrer Header 必填”}

由於兩台伺服器都有不同的 Debian、PHP 和 curl 版本,我嘗試從新伺服器上的原始碼編譯 curl 7.51。一個簡單的編譯工作,然後我安裝了新版本的 curl。但是我仍然沒有新的 php curl 模組。當我嘗試在 php 中包含 libcurl.so 時,它會抱怨

PHP 警告:PHP 啟動:無效庫(可能不是 PHP 庫)’/usr/local/lib/libcurl.so’ 在第 0 行的未知中

兩台伺服器上 curl 中啟用的功能存在一些差異。我想在編譯時啟用一些功能,但我沒有讓這個新版本與 php 一起使用。而且它似乎並沒有在編譯時啟用這些功能,我執行

./configure –enable-debug –with-gssapi

但是在 make && make install 之後,這些功能在新版本中仍然沒有啟用。

  1. 如何獲得可以包含在 php 中的模組的新編譯版本?
  2. 如何獲得啟用了某些功能的 php 新 curl 模組?

在舊伺服器上安裝了 Debian Wheezy:

PHP 5.4.39-0+deb7u2

curl 7.26.0 (x86_64-pc-linux-gnu) libcurl/7.26.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3 協議:dict 文件 ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp 功能: 調試 GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

在新伺服器上,安裝了 Debian Jessie:

PHP 5.6.27+dfsg-0+deb8u1

curl 7.38.0 (x86_64-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3 協議:dict 文件 ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp 功能:AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP

非常感謝,

雅羅斯瓦夫

通過將復雜系統從具有較舊軟體基礎架構的伺服器移動到具有較新(尤其是少數版本)的伺服器,總是存在與進一步不兼容的風險。特別是如果您要遷移的系統包含準備與舊版本的第三方軟體(程序、庫)一起工作的模組,而不是已安裝的。一般來說,您必須通過創建一致的環境來解決此類問題。它可以通過升級 php 模組或/和降級第三方軟體(程序、庫)來實現

如何獲得可以包含在 php 中的模組的新編譯版本?

好吧,如果它是對公眾可用的模組,那麼請從 Debian 儲存庫中檢查包。它有 php5-curl(詳情見https://packages.debian.org/stable/php/php5-curl)。這可能會奏效。

由於模組配置的最終差異或介面可能在版本之間發生了變化,可能會導致一些問題。

但是,如果您正在遷移到新伺服器的系統作者以任何方式更改了 tat 模組的程式碼,那麼您將不得不查閱原始碼(如果它有儲存庫,那麼請查閱與模組相關的正確文件的送出)。

如何為 php 獲取一個新的 curl 模組並啟用一些功能

您可以更改 Debian 附帶的源模組包或從開發人員的儲存庫中獲取它並根據您的需要進行配置。

但請始終記住,一般來說,對軟體包的修改最終可能會導致一些安全問題或與您的系統不兼容,因此應該明智地執行它們。

如果失敗,您可以嘗試將 curl 降級到與舊伺服器上安裝的版本相同的版本。使用現有的 Debian 基礎設施或手動。但不是來自 Debian 儲存庫的系統的每個部分都不會被 Debian 自動升級。如果無人看管,這可能會導致安全和穩定性問題。所以這種方式不太方便(也不太安全)。

引用自:https://serverfault.com/questions/819823