Centos

在舊的 Linux (Centos 5) 中安裝新軟體 (httpd)?

  • May 28, 2020

我需要httpd在生產環境中執行的舊版 Centos 5 32 位機器上升級 Apache。由於所有官方 repo 版本都已過時,我試圖在 docker 容器中編譯它;但這似乎由於各種原因而失敗:

1)它抱怨舊PCRE版本:

util_pcre.c:128: error: 'PCRE_DUPNAMES' undeclared (first use in this function)

我通過將適當的值添加到pcre.h只是為了查看它的去向來修補它……

2)然後它抱怨flex安裝版本中不存在的某些功能:

"/usr/src/httpd-2.4.43/server/util_expr_scan.l", line 32: unrecognized %option: reentrant
"/usr/src/httpd-2.4.43/server/util_expr_scan.l", line 33: unrecognized %option: bison-bridge
flex: could not create 

我想我正在嘗試解決一個難題,那麼我有什麼替代方案?

在 a中靜態編譯並在機器中執行它可以嗎?這樣做有什麼注意事項嗎?另一種選擇是在 Centos 5.x 上從頭開始編譯所有內容,但這似乎是一些任務 :)httpd``Centos 7.x``Centos 5.x

升級httpd機器正在被推回 - 有人可以建議一個可行的解決方案嗎?

作業系統必須升級。大約十年左右這樣做是維護這些通用 LTS 作業系統的最低要求。不這樣做是不負責任的,因為生命週期結束的 CentOS 5 具有未修補的安全漏洞。為易受攻擊的軟體添加補償性安全控制比升級它需要更多的工作。

出於其他原因,您需要進行 httpd 重大升級。這已經是一個閱讀發行說明、調整配置和測試的項目了。

從原始碼編譯增加了工作量:建構、安裝和維護。雖然您當然可以自由地這樣做,但您不會像 EL httpd 建構那樣快速或經過良好測試。而且您自己的建構不會改善不升級作業系統的技術債務。

所以在 CentOS 8 上配置一個 Web 伺服器,測試,然後切換。

如果這不起作用,請保留升級後的主機,但限制舊版軟體。比如在容器中。並啟動一個項目以正確升級或替換它。

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