本記事では、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.パッケージの確認
はじめにインストール対象となるパッケージのバージョンを確認しておきます
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 をインストールしていきます。
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.インストール結果確認
インストール結果を確認していきます。
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 の起動状態と自動起動を設定していきます。
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) は環境ごとに必要なものを解放します。今回はどちらも解放しておきます。
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 ファイルを配置してアクセスしてみます。
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 の設定を必要に応じて検討&設定していくことになります。
この辺りは今後別記事にしていきたいと思います。