酷!學園

技術討論區 => Linux 討論版 => 主題作者是: noki 於 2019-11-19 16:15

主題: 請問....該如何升級php套件版本?
作者: noki2019-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 模組加入。

請問各位大大要如何將舊的模組更換成新版本,感謝。
主題: Re: 請問....該如何升級php套件版本?
作者: twu22019-11-20 08:25
應該是原本的 php 是直接把 openssl 編在裡頭, 不是當模組.
硬要做的話, 就自己整個 php 都重新編譯一次吧.
主題: Re: 請問....該如何升級php套件版本?
作者: noki2019-11-20 09:16
感謝大大回覆,
小弟猜測跟大大一樣,
小弟也有試著下載相同版本的 php.tar.gz 預做編譯安裝,
但是若以 php-config 顯示的各項參數安裝會出現一堆檔案已不存在....
應該是 apt 安裝後就自行刪除了。

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

頭痛中....
主題: Re: 請問....該如何升級php套件版本?
作者: twu22019-11-22 12:50
少什麼就裝什麼吧.

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

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