Установка нового программного обеспечения (httpd) в старый Linux (Centos 5)? [закрыто]

Мне нужно обновить Apache httpd на устаревшей 32-разрядной машине Centos 5, работающей в производственной среде. Поскольку все официальные версии репо устарели, я пытаюсь скомпилировать его в докер-контейнере; но это кажется неудачным по разным причинам:

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 

Я думаю, что пытаюсь решить сложную проблему Итак, какие у меня есть альтернативы?

Можно ли статически скомпилировать httpd в Centos 7.x и запустить его в Centos 5 .x машина? Есть ли при этом какие-то предостережения? Другой вариант - скомпилировать все с нуля на Centos 5.x, но это похоже на некоторую задачу :)

Обновление машины httpd получает откат - может кто-нибудь посоветуйте, пожалуйста, работоспособное решение?

1
задан 28 May 2020 в 10:46
2 ответа

Необходимо обновить ОС. Выполнять это один раз в десять лет - это минимум для обслуживания этих операционных систем LTS общего назначения. Невыполнение этого требования является безответственным, поскольку в конце жизненного цикла CentOS 5 не исправил уязвимости безопасности. Добавление компенсирующих мер безопасности для уязвимого программного обеспечения - это больше работы, чем его обновление.

Вам нужно серьезное обновление httpd по другим причинам. Это уже небольшой проект, чтобы прочитать примечания к выпуску, настроить конфигурацию и протестировать.

Компиляция из исходников добавляет к работе: сборку, установку и сопровождение. Хотя вы, конечно, можете это сделать, но вы не будете так быстро или так хорошо протестированы, как сборки EL httpd. И ваши собственные сборки не улучшают технический долг отказа от обновления ОС.

Так что настройте веб-сервер на CentOS 8, протестируйте и отключите.

Если это не сработает, оставьте обновленный хост, но ограничьте устаревшее программное обеспечение. Например, в контейнере. И начните проект, чтобы правильно обновить или заменить его.

4
ответ дан 4 January 2021 в 08:24

Вы должны знать о последствиях для безопасности при использовании такой устаревшей версии CentOS, я не буду вдаваться в подробности, если вы делаете это из лени, пожалуйста, следуйте рекомендациям @John Mahowald.

Теперь , если вы скомпилируете статический httpd на новом Linux-сервере, он будет работать на вашем старом CentOS, но имейте в виду, что скомпилированный двоичный файл httpd является лишь его частью, есть много дополнительных файлов, которые могут быть чем-то близким к обычным, возьмите команду apachectl в качестве примера или внешние библиотеки, которые могут быть запрошены из вашего httpd.conf.

Также, когда вы компилируете более новую версию apache, он обычно устанавливает эффективный префикс в / usr / local , поэтому, если вы не создали PREFIX = /, новый двоичный файл будет ожидать файлы конфигурации apache из / usr / local / etc / httpd вместо / etc / httpd, и s o on для всех связанных файлов.

Возможно, самый простой способ в вашей ситуации - это собрать весь статический двоичный файл, затем скопировать весь каталог исходного кода на CentOS 5 и оттуда запустить make install оттуда все файлы будут установлены там, где они ожидаются, согласно действующему префиксу ./configure.

1
ответ дан 4 January 2021 в 08:24

Теги

Похожие вопросы