1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VirtualBox CentOS 7でApacheを最新バージョンに更新するための検証と対応方法

Last updated at Posted at 2024-10-19

はじめに

CentOS7にてapacheのパッケージのアップデートを試してみた

VirtualBoxのゲストOSのapacheのバージョンは最新ではありません。

# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   May 30 2023 14:01:11

apacheをyumアップデートしましたが、リポジトリがnot Foundと表示されます。
CentOS7はEOLを迎えているため、リポジトリがサポートされていないです。

CentOS 7はEOL(End of Life)を迎えたため、標準のリポジトリでは最新のパッケージ(特にApache HTTP Serverのようなパッケージ)を取得できません。このため、リポジトリが404エラーを返すのは想定内

# yum update httpd

http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
他のミラーを試します。
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
# No packages marked for update

対応手順

Vaultリポジトリは、すでにサポートが終了した古いバージョンのCentOSやRHELに対して、過去にリリースされたすべてのパッケージをアーカイブして提供するリポジトリです。

CentOS7 リポジトリの設定はサイトを参考にさせていただきました。
https://qiita.com/tkfm1991/items/f657f2ae30ede056951b

CentOSのリポジトリvaultの対応完了しました

 cat CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

リポジトリキャッシュのクリアと更新: リポジトリの設定を変更した後は、yumのキャッシュをクリアして、再度パッケージ情報を取得する

sudo yum clean all
sudo yum makecache

yum updateしてもパッケージがありませんと言われます。

# yum update httpd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi-safe: cdn.centos.no
No packages marked for update

apacheの最新バージョンがCentOS-Base.repoに入っていないことが分かりました。

引き続き remiとepel-releaseをインストールしてリポジトリを登録した

# yum install epel-release -y
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

リポジトリキャッシュのクリアと更新: リポジトリの設定を変更した後は、yumのキャッシュをクリアして、再度パッケージ情報を取得する

sudo yum clean all
sudo yum makecache

remiのリポジトリではhttpdの最新2.4.62をインストールできない

# yum --enablerepo=remi install httpd -y
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi: cdn.centos.no
 * remi-safe: cdn.centos.no
remi                                                                                                                                                                           | 3.0 kB  00:00:00
remi/primary_db                                                                                                                                                                | 3.7 MB  00:00:00
パッケージ httpd-2.4.6-99.el7.centos.1.x86_64 はインストール済みか最新バージョンです
何もしません
[root@localhost tmp]#

remiのリポジトリにhttpdの最新2.4.62が含まれていない

[root@localhost ~]# yum --enablerepo=remi list httpd --showduplicates
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi: cdn.centos.no
 * remi-safe: cdn.centos.no
利用可能なパッケージ
httpd.x86_64                                                            2.4.6-95.el7.centos                                                              base
httpd.x86_64                                                            2.4.6-97.el7.centos                                                              updates
httpd.x86_64                                                            2.4.6-97.el7.centos.1                                                            updates
httpd.x86_64                                                            2.4.6-97.el7.centos.2                                                            updates
httpd.x86_64                                                            2.4.6-97.el7.centos.4                                                            updates
httpd.x86_64                                                            2.4.6-97.el7.centos.5                                                            updates
httpd.x86_64                                                            2.4.6-98.el7.centos.6                                                            updates
httpd.x86_64                                                            2.4.6-98.el7.centos.7                                                            updates
httpd.x86_64                                                            2.4.6-99.el7.centos.1                                                            updates
[root@localhost ~]#

epelのリポジトリではhttpdの最新2.4.62をインストールできない

# yum --enablerepo=epel install httpd -y
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi-safe: cdn.centos.no
パッケージ httpd-2.4.6-99.el7.centos.1.x86_64 はインストール済みか最新バージョンです
何もしません

2.4.6-99のバージョンがepelの最新版の様に見えます

[root@localhost ~]# yum --enablerepo=epel list httpd --showduplicates
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi-safe: cdn.centos.no
利用可能なパッケージ
httpd.x86_64                                                            2.4.6-95.el7.centos                                                              base
httpd.x86_64                                                            2.4.6-97.el7.centos                                                              updates
httpd.x86_64                                                            2.4.6-97.el7.centos.1                                                            updates
httpd.x86_64                                                            2.4.6-97.el7.centos.2                                                            updates
httpd.x86_64                                                            2.4.6-97.el7.centos.4                                                            updates
httpd.x86_64                                                            2.4.6-97.el7.centos.5                                                            updates
httpd.x86_64                                                            2.4.6-98.el7.centos.6                                                            updates
httpd.x86_64                                                            2.4.6-98.el7.centos.7                                                            updates
httpd.x86_64                                                            2.4.6-99.el7.centos.1                                                            updates

IUSリポジトリで試しました

以下のサイトが非常に参考になりました。
http://labo-blog.aegif.jp/2020/08/centos7apache-httpd2443iusurl.html

IUSのリポジトリを追加しました

# yum -y install https://repo.ius.io/ius-release-el7.rpm

※iusのリポジトリ「/etc/yum.repos.d/ius.repo」をenable=0にする。

apacheを停止する

# systemctl stop httpd
# systemctl disable httpd.service

yumのパッケージをアンインストールしました。

yum remove httpd
yum remove httpd-tools

最新のhttpdをインストールしました

[root@localhost ~]# yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd httpd-devel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi-safe: cdn.centos.no
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd24u.x86_64 0:2.4.58-1.el7.ius を インストール
--> 依存性の処理をしています: httpd24u-tools = 2.4.58-1.el7.ius のパッケージ: httpd24u-2.4.58-1.el7.ius.x86_64
---> パッケージ httpd24u-devel.x86_64 0:2.4.58-1.el7.ius を インストール
--> 依存性の処理をしています: apr15u-util-devel >= 1.5.0 のパッケージ: httpd24u-devel-2.4.58-1.el7.ius.x86_64
--> 依存性の処理をしています: apr15u-devel >= 1.5.0 のパッケージ: httpd24u-devel-2.4.58-1.el7.ius.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr15u-devel.x86_64 0:1.5.2-2.ius.el7 を インストール
---> パッケージ apr15u-util-devel.x86_64 0:1.5.4-3.ius.el7 を インストール
---> パッケージ httpd24u-tools.x86_64 0:2.4.58-1.el7.ius を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================================================================
 Package                                     アーキテクチャー                 バージョン                                    リポジトリー                   容量
================================================================================================================================================================
インストール中:
 httpd24u                                    x86_64                           2.4.58-1.el7.ius                              ius                           1.4 M
 httpd24u-devel                              x86_64                           2.4.58-1.el7.ius                              ius                           221 k
依存性関連でのインストールをします:
 apr15u-devel                                x86_64                           1.5.2-2.ius.el7                               ius                           194 k
 apr15u-util-devel                           x86_64                           1.5.4-3.ius.el7                               ius                            77 k
 httpd24u-tools                              x86_64                           2.4.58-1.el7.ius                              ius                            92 k

トランザクションの要約
================================================================================================================================================================
インストール  2 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 2.0 M
インストール容量: 6.6 M
Downloading packages:
(1/5): apr15u-util-devel-1.5.4-3.ius.el7.x86_64.rpm                                                                                      |  77 kB  00:00:05
(2/5): httpd24u-2.4.58-1.el7.ius.x86_64.rpm                                                                                              | 1.4 MB  00:00:00
(3/5): apr15u-devel-1.5.2-2.ius.el7.x86_64.rpm                                                                                           | 194 kB  00:00:06
(4/5): httpd24u-tools-2.4.58-1.el7.ius.x86_64.rpm                                                                                        |  92 kB  00:00:00
(5/5): httpd24u-devel-2.4.58-1.el7.ius.x86_64.rpm                                                                                        | 221 kB  00:00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                            323 kB/s | 2.0 MB  00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : apr15u-devel-1.5.2-2.ius.el7.x86_64                                                                                             1/5
  インストール中          : apr15u-util-devel-1.5.4-3.ius.el7.x86_64                                                                                        2/5
  インストール中          : httpd24u-tools-2.4.58-1.el7.ius.x86_64                                                                                          3/5
  インストール中          : httpd24u-2.4.58-1.el7.ius.x86_64                                                                                                4/5
  インストール中          : httpd24u-devel-2.4.58-1.el7.ius.x86_64                                                                                          5/5
  検証中                  : apr15u-util-devel-1.5.4-3.ius.el7.x86_64                                                                                        1/5
  検証中                  : httpd24u-devel-2.4.58-1.el7.ius.x86_64                                                                                          2/5
  検証中                  : httpd24u-tools-2.4.58-1.el7.ius.x86_64                                                                                          3/5
  検証中                  : httpd24u-2.4.58-1.el7.ius.x86_64                                                                                                4/5
  検証中                  : apr15u-devel-1.5.2-2.ius.el7.x86_64                                                                                             5/5

インストール:
  httpd24u.x86_64 0:2.4.58-1.el7.ius                                          httpd24u-devel.x86_64 0:2.4.58-1.el7.ius

依存性関連をインストールしました:
  apr15u-devel.x86_64 0:1.5.2-2.ius.el7             apr15u-util-devel.x86_64 0:1.5.4-3.ius.el7             httpd24u-tools.x86_64 0:2.4.58-1.el7.ius

完了しました!

2.4.58のバージョンになりました。

[root@localhost ~]# httpd -v
Server version: Apache/2.4.58 (IUS)
Server built:   Oct 26 2023 16:56:39

最新のパッケージは2.4.58です

[root@localhost ~]#  yum --enablerepo=ius list httpd24u --showduplicates
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi-safe: cdn.centos.no
インストール済みパッケージ
httpd24u.x86_64                                                              2.4.58-1.el7.ius                                                               @ius
利用可能なパッケージ
httpd24u.x86_64                                                              2.4.57-1.el7.ius                                                               ius
httpd24u.x86_64                                                              2.4.58-1.el7.ius                                                           ius

IUSでapacheのサービスをインストールするとパッケージ名がhttpd24uになるところが個人的には気になります。

# yum list installed | grep httpd
httpd24u.x86_64                    2.4.58-1.el7.ius           @ius
httpd24u-devel.x86_64              2.4.58-1.el7.ius           @ius
httpd24u-filesystem.noarch         2.4.58-1.el7.ius           @ius
httpd24u-tools.x86_64              2.4.58-1.el7.ius           @ius

まとめ

私の試した限りでは現在 valutのリポジトリにあるapacheの最新は2.4.6です。
remiとepelも同様にapacheの最新は2.4.6でした。
IUSリポジトリはapacheについて2.4.58が一番最新でした。
しかしIUSはパッケージ名がhttpd24uになるため、個人的には本番環境での利用は慎重になります。

以下のサイトからCentOS7の場合はコンパイルして最新のパッケージを入れる必要があります。
https://downloads.apache.org/httpd/

本番環境でのコンパイルには慎重さが求められます。コンパイルに必要な多くのパッケージをサーバーにインストールする必要があり、その過程でエラーが発生することがあります。これらの問題を解決するためには、適切なスキルと知識が必要です。

CentOS 7環境で利用可能なVaultリポジトリやEPEL/Remi、IUSリポジトリでは、現在のところApacheのバージョン2.4.58以下のみが提供されています。最新のApacheバージョンを手動でコンパイルして導入することは可能ですが、それには高度なパッケージ管理スキルが求められる上、コンパイルに必要な多くの依存パッケージもインストールする必要があります。このプロセスは時間と手間がかかるため、可能であれば早急にCentOS 7から新しいOSへの移行を検討することを強くお勧めします。新しいOS環境では、最新のパッケージとセキュリティアップデートが継続的に提供され、より安全かつ効率的な運用が可能となります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?