SPUTNICKS

[CentOS] CentOS7のApache(httpd)を2.4.6から2.4.38へ

CentOS7.6にもともと入っているApache(httpd)は、2.4.6でした。

ベンダーが独自にサポートしているので、このバージョンでも特に問題はないのですが、やっぱり最新版を使いたいと思うのは人の性。

2019年3月現在で最新版の、2.4.38に入れ替えてみたので、その手順をめもめも。

ちなみに、ソースからのインストールではなく、yumでインストールする手順です。

スポンサーリンク

リポジトリを追加

最新版のApacheをyumでインストールするためには、IUSリポジトリを追加する必要があります。

# yum install https://centos7.iuscommunity.org/ius-release.rpm

Apache 2.4.6を削除

最新版のApacheをインストールするためには、今のApacheをアンインストールする必要があります。

Apacheをアンインストールするときに、依存性関連で一緒にアンインストールされてしまうパッケージがありますので、よく確認しておきましょう。

# yum remove httpd
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-88.el7.centos を 削除
--> 依存性の処理をしています: httpd-mmn = 20120211x8664 のパッケージ: mod_fcgid-2.3.9-4.el7_4.1.x86_64
--> 依存性の処理をしています: httpd-mmn = 20120211x8664 のパッケージ: php-5.4.16-46.el7.x86_64
--> 依存性の処理をしています: httpd-mmn = 20120211x8664 のパッケージ: 1:mod_ssl-2.4.6-88.el7.centos.x86_64
--> 依存性の処理をしています: httpd = 2.4.6-88.el7.centos のパッケージ: httpd-manual-2.4.6-88.el7.centos.noarch
--> 依存性の処理をしています: httpd のパッケージ: 1:mod_ssl-2.4.6-88.el7.centos.x86_64
--> 依存性の処理をしています: httpd = 2.4.6-88.el7.centos のパッケージ: 1:mod_ssl-2.4.6-88.el7.centos.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ httpd-manual.noarch 0:2.4.6-88.el7.centos を 削除
---> パッケージ mod_fcgid.x86_64 0:2.3.9-4.el7_4.1 を 削除
---> パッケージ mod_ssl.x86_64 1:2.4.6-88.el7.centos を 削除
---> パッケージ php.x86_64 0:5.4.16-46.el7 を 削除
--> 依存性解決を終了しました。
epel/x86_64/metalink                                               | 8.3 kB  00:00:00
epel/x86_64                                                        | 4.7 kB  00:00:00
epel/x86_64/group_gz                                               |  88 kB  00:00:00
epel/x86_64/updateinfo                                             | 1.0 MB  00:00:00
epel/x86_64/primary_db                                             | 6.6 MB  00:00:01
ius/x86_64                                                         | 2.3 kB  00:00:00
ius/x86_64/primary_db                                              | 297 kB  00:00:01

依存性を解決しました

==========================================================================================
 Package                アーキテクチャー バージョン                  リポジトリー    容量
==========================================================================================
削除中:
 httpd                  x86_64           2.4.6-88.el7.centos         @anaconda      9.4 M
依存性関連での削除をします:
 httpd-manual           noarch           2.4.6-88.el7.centos         @anaconda      5.5 M
 mod_fcgid              x86_64           2.3.9-4.el7_4.1             @anaconda      228 k
 mod_ssl                x86_64           1:2.4.6-88.el7.centos       @anaconda      224 k
 php                    x86_64           5.4.16-46.el7               @anaconda      4.4 M

トランザクションの要約
==========================================================================================
削除  1 パッケージ (+4 個の依存関係のパッケージ)

インストール容量: 20 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中        : php-5.4.16-46.el7.x86_64                                            1/5
  削除中        : 1:mod_ssl-2.4.6-88.el7.centos.x86_64                                2/5
  削除中        : httpd-manual-2.4.6-88.el7.centos.noarch                             3/5
  削除中        : mod_fcgid-2.3.9-4.el7_4.1.x86_64                                    4/5
  削除中        : httpd-2.4.6-88.el7.centos.x86_64                                    5/5
  検証中        : mod_fcgid-2.3.9-4.el7_4.1.x86_64                                    1/5
  検証中        : httpd-manual-2.4.6-88.el7.centos.noarch                             2/5
  検証中        : 1:mod_ssl-2.4.6-88.el7.centos.x86_64                                3/5
  検証中        : php-5.4.16-46.el7.x86_64                                            4/5
  検証中        : httpd-2.4.6-88.el7.centos.x86_64                                    5/5

削除しました:
  httpd.x86_64 0:2.4.6-88.el7.centos

依存性の削除をしました:
  httpd-manual.noarch 0:2.4.6-88.el7.centos         mod_fcgid.x86_64 0:2.3.9-4.el7_4.1
  mod_ssl.x86_64 1:2.4.6-88.el7.centos              php.x86_64 0:5.4.16-46.el7

完了しました!

この場合、PHPやSSLなども一緒に削除されてしまったので、必要に応じで後で個別にインストールしましょう。

IUSリポジトリからインストール

現在のApacheがアンインストールされたら、IUSリポジトリから最新版のApacheをインストールします。

# yum install --disablerepo=base --disablerepo=updates --enablerepo=ius httpd
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * ius: mirrors.kernel.org
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd24u.x86_64 0:2.4.38-1.ius.centos7 を インストール
--> 依存性の処理をしています: httpd24u-tools = 2.4.38-1.ius.centos7 のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: httpd24u-filesystem = 2.4.38-1.ius.centos7 のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: httpd24u-filesystem = 2.4.38-1.ius.centos7 のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: libapr15u-1.so.0()(64bit) のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: libapr15uutil-1.so.0()(64bit) のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: libnghttp2.so.14()(64bit) のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr15u.x86_64 0:1.5.2-2.ius.centos7 を インストール
---> パッケージ apr15u-util.x86_64 0:1.5.4-3.ius.centos7 を インストール
---> パッケージ httpd24u-filesystem.noarch 0:2.4.38-1.ius.centos7 を インストール
---> パッケージ httpd24u-tools.x86_64 0:2.4.38-1.ius.centos7 を インストール
---> パッケージ libnghttp2.x86_64 0:1.31.1-1.el7 を インストール
--> 衝突を処理しています: httpd24u-tools-2.4.38-1.ius.centos7.x86_64 は httpd-tools < 2.4.38-1.ius.centos7 と衝突しています
--> 依存性解決を終了しました。
エラー: httpd24u-tools conflicts with httpd-tools-2.4.6-88.el7.centos.x86_64
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

あれ、衝突してしまいました。どうやら httpd-tools も更新対象になっているようですので、アンインストールしましょう。

# yum remove httpd-tools

これでいいはず。もう一度インストールコマンドを実行してみましょう。

# yum install --disablerepo=base --disablerepo=updates --enablerepo=ius httpd
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * ius: hkg.mirror.rackspace.com
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd24u.x86_64 0:2.4.38-1.ius.centos7 を インストール
--> 依存性の処理をしています: httpd24u-tools = 2.4.38-1.ius.centos7 のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: httpd24u-filesystem = 2.4.38-1.ius.centos7 のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: httpd24u-filesystem = 2.4.38-1.ius.centos7 のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: libapr15u-1.so.0()(64bit) のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: libapr15uutil-1.so.0()(64bit) のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> 依存性の処理をしています: libnghttp2.so.14()(64bit) のパッケージ: httpd24u-2.4.38-1.ius.centos7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr15u.x86_64 0:1.5.2-2.ius.centos7 を インストール
---> パッケージ apr15u-util.x86_64 0:1.5.4-3.ius.centos7 を インストール
---> パッケージ httpd24u-filesystem.noarch 0:2.4.38-1.ius.centos7 を インストール
---> パッケージ httpd24u-tools.x86_64 0:2.4.38-1.ius.centos7 を インストール
---> パッケージ libnghttp2.x86_64 0:1.31.1-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==========================================================================================
 Package                アーキテクチャー バージョン                  リポジトリー    容量
==========================================================================================
インストール中:
 httpd24u               x86_64           2.4.38-1.ius.centos7        ius            1.4 M
依存性関連でのインストールをします:
 apr15u                 x86_64           1.5.2-2.ius.centos7         ius            111 k
 apr15u-util            x86_64           1.5.4-3.ius.centos7         ius             92 k
 httpd24u-filesystem    noarch           2.4.38-1.ius.centos7        ius             26 k
 httpd24u-tools         x86_64           2.4.38-1.ius.centos7        ius             89 k
 libnghttp2             x86_64           1.31.1-1.el7                epel            66 k

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

総ダウンロード容量: 1.8 M
インストール容量: 5.1 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/ius/packages/apr15u-1.5.2-2.ius.centos7.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 9cd4953f: NOKEY ETA
apr15u-1.5.2-2.ius.centos7.x86_64.rpm の公開鍵がインストールされていません
(1/6): apr15u-1.5.2-2.ius.centos7.x86_64.rpm                       | 111 kB  00:00:00
(2/6): httpd24u-filesystem-2.4.38-1.ius.centos7.noarch.rpm         |  26 kB  00:00:00
警告: /var/cache/yum/x86_64/7/epel/packages/libnghttp2-1.31.1-1.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
libnghttp2-1.31.1-1.el7.x86_64.rpm の公開鍵がインストールされていません
(3/6): libnghttp2-1.31.1-1.el7.x86_64.rpm                          |  66 kB  00:00:00
(4/6): apr15u-util-1.5.4-3.ius.centos7.x86_64.rpm                  |  92 kB  00:00:01
(5/6): httpd24u-tools-2.4.38-1.ius.centos7.x86_64.rpm              |  89 kB  00:00:01
(6/6): httpd24u-2.4.38-1.ius.centos7.x86_64.rpm                    | 1.4 MB  00:00:03
-----------------------------------------------------------------------------------------
合計                                                      527 kB/s | 1.8 MB  00:00:03
file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY から鍵を取得中です。
Importing GPG key 0x9CD4953F:
 Userid     : "IUS Community Project "
 Fingerprint: 8b84 6e3a b3fe 6462 74e8 670f da22 1cdf 9cd4 953f
 Package    : ius-release-1.0-15.ius.centos7.noarch (installed)
 From       : /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
上記の処理を行います。よろしいでしょうか? [y/N]y
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 から鍵を取得中です。
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) "
 Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-11.noarch (@extras)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中: apr15u-1.5.2-2.ius.centos7.x86_64                                   1/6
  インストール中: apr15u-util-1.5.4-3.ius.centos7.x86_64                              2/6
  インストール中: httpd24u-tools-2.4.38-1.ius.centos7.x86_64                          3/6
  インストール中: httpd24u-filesystem-2.4.38-1.ius.centos7.noarch                     4/6
  インストール中: libnghttp2-1.31.1-1.el7.x86_64                                      5/6
  インストール中: httpd24u-2.4.38-1.ius.centos7.x86_64                                6/6
  検証中        : httpd24u-tools-2.4.38-1.ius.centos7.x86_64                          1/6
  検証中        : libnghttp2-1.31.1-1.el7.x86_64                                      2/6
  検証中        : apr15u-1.5.2-2.ius.centos7.x86_64                                   3/6
  検証中        : apr15u-util-1.5.4-3.ius.centos7.x86_64                              4/6
  検証中        : httpd24u-filesystem-2.4.38-1.ius.centos7.noarch                     5/6
  検証中        : httpd24u-2.4.38-1.ius.centos7.x86_64                                6/6

インストール:
  httpd24u.x86_64 0:2.4.38-1.ius.centos7

依存性関連をインストールしました:
  apr15u.x86_64 0:1.5.2-2.ius.centos7
  apr15u-util.x86_64 0:1.5.4-3.ius.centos7
  httpd24u-filesystem.noarch 0:2.4.38-1.ius.centos7
  httpd24u-tools.x86_64 0:2.4.38-1.ius.centos7
  libnghttp2.x86_64 0:1.31.1-1.el7

完了しました!

無事に完了しました!

httpd.confの設定

後は /etc/httpd/conf/httpd.conf を設定します。CentOSインストール直後であれば、新たに設定を行います。既存環境からApacheを更新した場合は、アンインストール時に以前の httpd.conf が残っていると思いますので、参考にしながら設定し直します。

Apacheを起動

設定が終われば、あとは起動するだけ。自動起動もついでに設定しておきましょう。

# systemctl enable httpd
# systemctl start httpd

念のためバージョンを確認。

# httpd -v
Server version: Apache/2.4.38 (IUS)
Server built:   Mar 11 2019 10:30:47

OKですね!お疲れ様でした。

初稿:2019年3月27日
スポンサーリンク

この記事をシェア

アカウントをフォロー