Apache 2.4 を CentOS Stream 9 にインストール

環境構築

本記事では、Apache 2.4 を CentOS 9 にインストールする方法について説明しています。

環境情報

本記事では、以下バージョンにてインストールを行った結果を掲載しています。
・OS:CentOS Stream 9
・Apache:2.4.57

CentOS Stream 9 の環境構築方法についてはこちらの記事 にまとめていますのでまだ準備できていない方は参考にしていただければと思います。

インストール完了後に、CentOS 内に Apache が構築される環境イメージ図です。

黄色背景の部分が本手順で Apache をインストールすることで作成されます。
ホストOS内の Virtual Box 内にあるゲストOS の CentOS Stream 9(192.168.56.88)に Apache 2.4 が構築されるイメージです。

それではインストールしていきましょう!

インストール

1.パッケージの確認

はじめにインストール対象となるパッケージのバージョンを確認しておきます

Bash
dnf list | grep httpd               # httpd を含む利用可能な 全rpmパッケージの確認
dnf info httpd httpd-tools          # インストールするパッケージの確認
実行結果
[root@localhost ~]# dnf list | grep httpd               # httpd を含む利用可能な 全rpmパッケージの確認
centos-logos-httpd.noarch                             90.8-1.el9                         appstream
httpd.x86_64                                          2.4.57-8.el9                       appstream
httpd-core.x86_64                                     2.4.57-8.el9                       appstream
httpd-devel.x86_64                                    2.4.57-8.el9                       appstream
httpd-filesystem.noarch                               2.4.57-8.el9                       appstream
httpd-manual.noarch                                   2.4.57-8.el9                       appstream
httpd-tools.x86_64                                    2.4.57-8.el9                       appstream
keycloak-httpd-client-install.noarch                  1.1-10.el9                         appstream
libmicrohttpd.i686                                    1:0.9.72-5.el9                     appstream
libmicrohttpd.x86_64                                  1:0.9.72-5.el9                     appstream
python3-keycloak-httpd-client-install.noarch          1.1-10.el9                         appstream
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# dnf info httpd httpd-tools          # インストールするパッケージの確認
利用可能なパッケージ
名前         : httpd
バージョン   : 2.4.57
リリース     : 8.el9
Arch         : x86_64
サイズ       : 48 k
ソース       : httpd-2.4.57-8.el9.src.rpm
リポジトリー : appstream
概要         : Apache HTTP Server
URL          : https://httpd.apache.org/
ライセンス   : ASL 2.0
説明         : The Apache HTTP Server is a powerful, efficient, and extensible
             : web server.

名前         : httpd-tools
バージョン   : 2.4.57
リリース     : 8.el9
Arch         : x86_64
サイズ       : 83 k
ソース       : httpd-2.4.57-8.el9.src.rpm
リポジトリー : appstream
概要         : Tools for use with the Apache HTTP Server
URL          : https://httpd.apache.org/
ライセンス   : ASL 2.0
説明         : The httpd-tools package contains tools which can be used with
             : the Apache HTTP Server.

[root@localhost ~]#
[root@localhost ~]#

2.4.57 がインストールされることが確認できました。
※本記事作成時点では 2.4.57 ですが、インストールを実行するタイミングによっては異なるバージョン表示となります。

2.Apache インストール

それでは実際に Apache 2.4.57 をインストールしていきます。

Bash
dnf list installed | grep httpd     # httpd を含むインストール済みパッケージの確認
# [check] => インストール前なのでヒットしない想定

dnf -y install httpd httpd-tools    # httpdパッケージのインストール

dnf list installed | grep httpd     # httpd を含むインストール済みパッケージの確認
# [check] => インストール後なのでヒットする想定
実行結果
[root@localhost ~]# dnf list installed | grep httpd     # httpd を含むインストール済みパッケージの確認
[root@localhost ~]# # [check] => インストール前なのでヒットしない想定
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# dnf -y install httpd httpd-tools    # httpdパッケージのインストール
依存関係が解決しました。
================================================================================================================
 パッケージ                       アーキテクチャー     バージョン                 リポジトリー            サイズ
================================================================================================================
インストール:
 httpd                            x86_64               2.4.57-8.el9               appstream                48 k
 httpd-tools                      x86_64               2.4.57-8.el9               appstream                83 k
依存関係のインストール:
 apr                              x86_64               1.7.0-12.el9               appstream               123 k
 apr-util                         x86_64               1.6.1-23.el9               appstream                95 k
 apr-util-bdb                     x86_64               1.6.1-23.el9               appstream                13 k
 centos-logos-httpd               noarch               90.8-1.el9                 appstream               1.5 M
 httpd-core                       x86_64               2.4.57-8.el9               appstream               1.5 M
 httpd-filesystem                 noarch               2.4.57-8.el9               appstream                13 k
 mailcap                          noarch               2.1.49-5.el9               baseos                   33 k
弱い依存関係のインストール:
 apr-util-openssl                 x86_64               1.6.1-23.el9               appstream                15 k
 mod_http2                        x86_64               2.0.26-2.el9               appstream               163 k
 mod_lua                          x86_64               2.4.57-8.el9               appstream                60 k

トランザクションの概要
================================================================================================================
インストール  12 パッケージ

ダウンロードサイズの合計: 3.7 M
インストール後のサイズ: 8.7 M
パッケージのダウンロード:
(1/12): mailcap-2.1.49-5.el9.noarch.rpm                                         244 kB/s |  33 kB     00:00
(2/12): apr-util-bdb-1.6.1-23.el9.x86_64.rpm                                     28 kB/s |  13 kB     00:00
(3/12): apr-util-1.6.1-23.el9.x86_64.rpm                                        151 kB/s |  95 kB     00:00
(4/12): apr-util-openssl-1.6.1-23.el9.x86_64.rpm                                274 kB/s |  15 kB     00:00
(5/12): apr-1.7.0-12.el9.x86_64.rpm                                             182 kB/s | 123 kB     00:00
(6/12): httpd-2.4.57-8.el9.x86_64.rpm                                           194 kB/s |  48 kB     00:00
(7/12): httpd-filesystem-2.4.57-8.el9.noarch.rpm                                 34 kB/s |  13 kB     00:00
(8/12): httpd-tools-2.4.57-8.el9.x86_64.rpm                                     157 kB/s |  83 kB     00:00
(9/12): mod_http2-2.0.26-2.el9.x86_64.rpm                                       359 kB/s | 163 kB     00:00
(10/12): httpd-core-2.4.57-8.el9.x86_64.rpm                                     948 kB/s | 1.5 MB     00:01
(11/12): mod_lua-2.4.57-8.el9.x86_64.rpm                                        324 kB/s |  60 kB     00:00
(12/12): centos-logos-httpd-90.8-1.el9.noarch.rpm                               777 kB/s | 1.5 MB     00:01
----------------------------------------------------------------------------------------------------------------
合計                                                                            1.0 MB/s | 3.7 MB     00:03
CentOS Stream 9 - BaseOS                                                        1.6 MB/s | 1.6 kB     00:00
GPG  0x8483C65D をインポート中:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
鍵のインポートに成功しました
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                                                        1/1
  インストール中   : apr-1.7.0-12.el9.x86_64                                                               1/12
  インストール中   : apr-util-bdb-1.6.1-23.el9.x86_64                                                      2/12
  インストール中   : apr-util-openssl-1.6.1-23.el9.x86_64                                                  3/12
  インストール中   : apr-util-1.6.1-23.el9.x86_64                                                          4/12
  インストール中   : httpd-tools-2.4.57-8.el9.x86_64                                                       5/12
  scriptletの実行中: httpd-filesystem-2.4.57-8.el9.noarch                                                  6/12
  インストール中   : httpd-filesystem-2.4.57-8.el9.noarch                                                  6/12
  インストール中   : centos-logos-httpd-90.8-1.el9.noarch                                                  7/12
  インストール中   : mailcap-2.1.49-5.el9.noarch                                                           8/12
  インストール中   : httpd-core-2.4.57-8.el9.x86_64                                                        9/12
  インストール中   : mod_lua-2.4.57-8.el9.x86_64                                                          10/12
  インストール中   : mod_http2-2.0.26-2.el9.x86_64                                                        11/12
  インストール中   : httpd-2.4.57-8.el9.x86_64                                                            12/12
  scriptletの実行中: httpd-2.4.57-8.el9.x86_64                                                            12/12
  検証中           : mailcap-2.1.49-5.el9.noarch                                                           1/12
  検証中           : apr-1.7.0-12.el9.x86_64                                                               2/12
  検証中           : apr-util-1.6.1-23.el9.x86_64                                                          3/12
  検証中           : apr-util-bdb-1.6.1-23.el9.x86_64                                                      4/12
  検証中           : apr-util-openssl-1.6.1-23.el9.x86_64                                                  5/12
  検証中           : centos-logos-httpd-90.8-1.el9.noarch                                                  6/12
  検証中           : httpd-2.4.57-8.el9.x86_64                                                             7/12
  検証中           : httpd-core-2.4.57-8.el9.x86_64                                                        8/12
  検証中           : httpd-filesystem-2.4.57-8.el9.noarch                                                  9/12
  検証中           : httpd-tools-2.4.57-8.el9.x86_64                                                      10/12
  検証中           : mod_http2-2.0.26-2.el9.x86_64                                                        11/12
  検証中           : mod_lua-2.4.57-8.el9.x86_64                                                          12/12

インストール済み:
  apr-1.7.0-12.el9.x86_64               apr-util-1.6.1-23.el9.x86_64          apr-util-bdb-1.6.1-23.el9.x86_64
  apr-util-openssl-1.6.1-23.el9.x86_64  centos-logos-httpd-90.8-1.el9.noarch  httpd-2.4.57-8.el9.x86_64
  httpd-core-2.4.57-8.el9.x86_64        httpd-filesystem-2.4.57-8.el9.noarch  httpd-tools-2.4.57-8.el9.x86_64
  mailcap-2.1.49-5.el9.noarch           mod_http2-2.0.26-2.el9.x86_64         mod_lua-2.4.57-8.el9.x86_64

完了しました!
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# dnf list installed | grep httpd     # httpd を含むインストール済みパッケージの確認
centos-logos-httpd.noarch               90.8-1.el9                    @appstream
httpd.x86_64                            2.4.57-8.el9                  @appstream
httpd-core.x86_64                       2.4.57-8.el9                  @appstream
httpd-filesystem.noarch                 2.4.57-8.el9                  @appstream
httpd-tools.x86_64                      2.4.57-8.el9                  @appstream
[root@localhost ~]# # [check] => インストール後なのでヒットする想定
[root@localhost ~]#
[root@localhost ~]#

3.インストール結果確認

インストール結果を確認していきます。

Bash
httpd -version                      # Apache のバージョン確認
which httpd                         # httpdがインストールされた場所を確認
実行結果
[root@localhost ~]# httpd -version                      # Apache のバージョン確認
Server version: Apache/2.4.57 (CentOS Stream)
Server built:   Feb  7 2024 00:00:00
[root@localhost ~]#
[root@localhost ~]# which httpd                         # httpdがインストールされた場所を確認
/usr/sbin/httpd
[root@localhost ~]#

2.4.57 がインストールされたことが確認できました。

4.ステータス確認&サービス自動起動設定

Apache の起動状態と自動起動を設定していきます。

Bash
systemctl status httpd              # httpd 状態確認
systemctl start httpd               # httpd 起動
systemctl status httpd              # httpd 状態確認
# [check] => Active: active (running) が表示されること

ps -aux | grep httpd                # httpd プロセス確認

systemctl is-enabled httpd          # httpd 自動起動の設定確認
systemctl enable httpd              # httpd 自動起動の有効化
systemctl is-enabled httpd          # httpd 自動起動の設定確認
# [check] => 「enable」と表示されること
実行結果
[root@localhost ~]# systemctl status httpd              # httpd 状態確認
 httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
     Active: inactive (dead)
       Docs: man:httpd.service(8)
[root@localhost ~]#
[root@localhost ~]# systemctl start httpd               # httpd 起動
[root@localhost ~]#
[root@localhost ~]# systemctl status httpd              # httpd 状態確認
 httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
     Active: active (running) since Wed 2024-08-20 23:39:02 JST; 3s ago
       Docs: man:httpd.service(8)
   Main PID: 11223 (httpd)
     Status: "Started, listening on: port 80"
      Tasks: 177 (limit: 23141)
     Memory: 25.9M
        CPU: 70ms
     CGroup: /system.slice/httpd.service
             tq11223 /usr/sbin/httpd -DFOREGROUND
             tq11224 /usr/sbin/httpd -DFOREGROUND
             tq11225 /usr/sbin/httpd -DFOREGROUND
             tq11226 /usr/sbin/httpd -DFOREGROUND
             mq11227 /usr/sbin/httpd -DFOREGROUND

 8月 20 23:39:02 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
 8月 20 23:39:02 localhost.localdomain httpd[11223]: AH00558: httpd: Could not reliably determine the server's >
 8月 20 23:39:02 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
 8月 20 23:39:02 localhost.localdomain httpd[11223]: Server configured, listening on: port 80
[root@localhost ~]# # [check] => Active: active (running) が表示されること
[root@localhost ~]#
[root@localhost ~]# ps -aux | grep httpd                # httpd プロセス確認
root       11223  0.0  0.3  21128 11340 ?        Ss   23:39   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11224  0.0  0.1  22952  7000 ?        S    23:39   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11225  0.0  0.2 1572260 11064 ?       Sl   23:39   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11226  0.0  0.2 1441124 10896 ?       Sl   23:39   0:00 /usr/sbin/httpd -DFOREGROUND
apache     11227  0.0  0.4 1441124 17024 ?       Sl   23:39   0:00 /usr/sbin/httpd -DFOREGROUND
root       11406  0.0  0.0   4596  2176 pts/1    S+   23:40   0:00 grep --color=auto httpd
[root@localhost ~]# # [check] => プロセスが表示されること
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# systemctl is-enabled httpd          # httpd 自動起動の設定確認
disabled
[root@localhost ~]#
[root@localhost ~]# systemctl enable httpd              # httpd 自動起動の有効化
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@localhost ~]#
[root@localhost ~]# systemctl is-enabled httpd          # httpd 自動起動の設定確認
enabled
[root@localhost ~]# # [check] => 「enabled」と表示されること
[root@localhost ~]#

Apache の起動が完了しました。
また、サーバ起動時に Apache を自動起動する設定も完了です。

5.Firewall解放

外部から Apache へアクセスできるようにファイアウォールを解放していきます。
※構築している環境が、クラウド や VPS の場合、別途セキュリティグループやWebコンソールからポートを解放しておきます。

http(80)、https(443) は環境ごとに必要なものを解放します。今回はどちらも解放しておきます。

Bash
firewall-cmd --get-active-zones                            # firewall アクティブゾーンの確認
firewall-cmd --list-services     --zone=public --permanent # 現在追加されている恒久的なサービスの確認
# [check] => 「http」と「https」が表示されていない想定

firewall-cmd --add-service=http  --zone=public --permanent # firewall http サービスの追加(恒久的な設定)
firewall-cmd --add-service=https --zone=public --permanent # firewall https サービスの追加(恒久的な設定)
firewall-cmd --reload                                      # firewall 設定反映
firewall-cmd --list-services     --zone=public --permanent # 現在追加されている恒久的なサービスの確認
# [check] => 「http」と「https」が追加されていること
実行結果
[root@localhost ~]# firewall-cmd --get-active-zones                            # firewall アクティブゾーンの確認
public
  interfaces: enp0s3 enp0s8
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --list-services     --zone=public --permanent # 現在追加されている恒久的なサービスの確認
cockpit dhcpv6-client ssh
[root@localhost ~]# # [check] => 「http」と「https」が表示されていない想定

[root@localhost ~]# firewall-cmd --add-service=http  --zone=public --permanent # firewall http サービスの追加(恒久的な設定)
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --add-service=https --zone=public --permanent # firewall https サービスの追加(恒久的な設定)
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --reload                                      # firewall 設定反映
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --list-services     --zone=public --permanent # 現在追加されている恒久的なサービスの確認
cockpit dhcpv6-client http https ssh
[root@localhost ~]# # [check] => 「http」と「https」が追加されていること
[root@localhost ~]#

6.接続確認

Apache のインストールとファイアウォールの解放が終わりましたので、デフォルトのWebサイトにアクセスしてみます。
下記構成図の Windows10(192.168.56.1) のブラウザから、Apache(192.168.56.88)へアクセスしてみます。

http://192.168.56.88/
とブラウザに入力して下記のような Test Page が表示されればインストール成功です!

追加の確認として html ファイルを配置してアクセスしてみます。

Bash
echo 'hello_httpd!!' >> /var/www/html/index.html          # 確認用ページの作成

# http://192.168.56.88/index.html にブラウザでアクセスしてみる

rm /var/www/html/index.html                               # 確認用ページの削除

3行目のタイミングで下記画面が表示されれば確認完了です。

まとめ

本記事では、Apache 2.4 を CentOS Stream 9 にインストールし、接続確認を行いました。
基本的な流れをイメージ頂けていれば幸いです。

実際にシステム開発をする際は、この後にドキュメントルートやアクセス制御等の Apache の設定を必要に応じて検討&設定していくことになります。

この辺りは今後別記事にしていきたいと思います。