CentOS7.6にもともと入っているApache(httpd)は、2.4.6でした。
ベンダーが独自にサポートしているので、このバージョンでも特に問題はないのですが、やっぱり最新版を使いたいと思うのは人の性。
2019年3月現在で最新版の、2.4.38に入れ替えてみたので、その手順をめもめも。
ちなみに、ソースからのインストールではなく、yumでインストールする手順です。
リポジトリを追加
最新版のApacheをyumでインストールするためには、IUSリポジトリを追加する必要があります。
# yum install https://repo.ius.io/ius-release-el7.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ですね!お疲れ様でした。
コメント