作者 主題: 請問....該如何升級php套件版本?  (閱讀 740 次)

0 會員 與 1 訪客 正在閱讀本文。

noki

  • 活潑的大學生
  • ***
  • 文章數: 200
    • 檢視個人資料
請問....該如何升級php套件版本?
« 於: 2019-11-19 16:15 »
各位大大好,
小弟的公司有台古老的 ubuntu 10.04 版的作業系統。
目前 php 是 5.3.2 (使用 apt 安裝的),openssl 是 0.9.8。
為了要跑 TLS1.2,所以小弟用編譯的方式安裝了 openssl 1.0.1f,
可以很正常的用 curl 跑 1.2 的憑證,
但是 php 的 openssl 模組一直停在 0.9.8 上無法升級成 1.0.1f。

雖然有使用 phpize 生成 openssl.so 但是在 php.ini 中加了 extension=openssl.so,
會出現 PHP Warning:  Module 'openssl' already loaded in Unknown on line 0 的錯誤,
猜測應該是安裝 php 套件時已經預先將 openssl 模組加入。

請問各位大大要如何將舊的模組更換成新版本,感謝。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請問....該如何升級php套件版本?
« 回覆 #1 於: 2019-11-20 08:25 »
應該是原本的 php 是直接把 openssl 編在裡頭, 不是當模組.
硬要做的話, 就自己整個 php 都重新編譯一次吧.

noki

  • 活潑的大學生
  • ***
  • 文章數: 200
    • 檢視個人資料
Re: 請問....該如何升級php套件版本?
« 回覆 #2 於: 2019-11-20 09:16 »
感謝大大回覆,
小弟猜測跟大大一樣,
小弟也有試著下載相同版本的 php.tar.gz 預做編譯安裝,
但是若以 php-config 顯示的各項參數安裝會出現一堆檔案已不存在....
應該是 apt 安裝後就自行刪除了。

小弟也試著將一堆 so 檔案指向新安裝的 openssl,
結果會出現 python,ssh 這些與 openssl 有關聯的套件失效....

頭痛中....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請問....該如何升級php套件版本?
« 回覆 #3 於: 2019-11-22 12:50 »
少什麼就裝什麼吧.

比較簡單的做法, 是找到舊的 apt sources 的 URL, 設上後, 直接 apt-get build-dep php 就會把所有需要的東西都抓下來.
然後 apt-get source php 就會把當時那個版本的 php source 抓下來, 再去改參數編譯就可以 (不改也可以, 確定 openssl 的函式庫就新的就可).

只不過.... 你寫出的版本太久了, 不確定還找不找的到有那些檔案的伺服器.