宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「Apacheをサーバーにインストールしたいけど、dnfで入れるのかソースからビルドするのか迷っている」
「公式リポジトリのhttpdとソースインストールで、運用面でどう違うのか知りたい」

ApacheはWebサーバーの代表格として、いまも世界中の本番環境で稼働しているソフトウェアです。インストール方法はいくつかあり、現代ではdnf/aptによるパッケージインストールが主流ですが、最新版を即座に取り込みたい場合や、構成を細かく制御したい場合はソースからのビルドも選択肢になります。

この記事では、Apacheをインストールする方法を、RHEL9 / Rocky Linux 9 / AlmaLinux 9 / Ubuntu 24.04 LTSのパッケージ方式と、ソースコードからのビルド方式の両方で解説します。実機での出力例も含めて、現場で迷わない選択基準まで網羅します。

この記事のポイント

・RHEL9系は dnf install httpd、Ubuntu系は apt install apache2 で導入できる
・公開サーバーでパッケージが追従していない脆弱性対応が必要な時はソースインストールも選択肢
・サービス名がRHEL系=httpd、Debian系=apache2と異なる点に注意
・ファイアウォール(firewalld/ufw)で80/443を開けないと外部から接続できない


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Apacheのインストール方式を選ぶ基準

Apacheのインストール方法は大きく2つあります。

パッケージインストール:dnf(RHEL系)やapt(Debian系)でディストリビューション公式のhttpd/apache2を入れる方式
ソースインストール:Apache公式からソースコード(tar.gz)を取得してconfigure→make→make installする方式

本番運用ではパッケージインストールを第一候補にしてください。systemdサービスの登録、ログローテーション、SELinuxポリシー、セキュリティアップデートまでディストリビューション側が面倒を見てくれるためです。

一方、ソースインストールを選ぶべきケースは限定的で、次のような場合です。

・公式リポジトリ提供版のApacheに未収録のモジュールが必要な時
・複数バージョンのApacheを同一サーバーで併存させたい時
・パッケージ追従より早く特定の脆弱性パッチを取り込みたい時

セミナーで3,100名以上の受講生を指導してきた経験から言うと、初学者ほど「ソースからビルドする方が玄人っぽい」と考えがちですが、運用フェーズに入るとパッケージ管理から外れた野良ビルドは保守の重荷になります。まずはdnf/aptで入れて、必要が出てから初めてソースを検討してください。

RHEL9系(Rocky Linux 9 / AlmaLinux 9)でApacheをインストール

RHEL9 / Rocky Linux 9 / AlmaLinux 9では、いずれも dnf でhttpdパッケージをインストールします。

1. パッケージのインストール

# Apacheパッケージのインストール [root@web01 ~]# dnf install -y httpd Last metadata expiration check: 0:12:34 ago on Mon 19 May 2026 09:00:00 AM JST. Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Installing: httpd x86_64 2.4.62-1.el9 appstream 1.4 M Installing dependencies: apr x86_64 1.7.0-12.el9 appstream 123 k apr-util x86_64 1.6.1-23.el9 appstream 93 k httpd-core x86_64 2.4.62-1.el9 appstream 1.5 M httpd-filesystem noarch 2.4.62-1.el9 appstream 14 k httpd-tools x86_64 2.4.62-1.el9 appstream 85 k mod_http2 x86_64 2.0.26-2.el9 appstream 162 k mod_lua x86_64 2.4.62-1.el9 appstream 63 k Complete!

2. サービスの起動と自動起動設定

# Apacheを起動 [root@web01 ~]# systemctl start httpd # OS起動時に自動起動するよう設定 [root@web01 ~]# systemctl enable httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service -> /usr/lib/systemd/system/httpd.service. # 起動状態を確認 [root@web01 ~]# systemctl status httpd * httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled) Active: active (running) since Mon 2026-05-19 09:15:22 JST; 5s ago

3. firewalldで80番ポートを開放

# HTTP(80番)を恒久的に開放 [root@web01 ~]# firewall-cmd --permanent --add-service=http # HTTPS(443番)も併せて開放する場合 [root@web01 ~]# firewall-cmd --permanent --add-service=https # 設定をリロード [root@web01 ~]# firewall-cmd --reload success

ブラウザから「http://サーバーのIPアドレス/」へアクセスし、Apacheのテストページが表示されればインストール成功です。

Ubuntu 24.04 LTS / Debian系でApacheをインストール

Ubuntu / DebianではApacheのパッケージ名が apache2 になります。サービス名も同じく apache2 です。

1. パッケージのインストール

# パッケージインデックスを更新 ubuntu@web01:~$ sudo apt update # Apacheをインストール ubuntu@web01:~$ sudo apt install -y apache2 Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils Setting up apache2 (2.4.58-1ubuntu8) ...

2. サービスの起動と自動起動設定

# Apacheを起動 ubuntu@web01:~$ sudo systemctl start apache2 # OS起動時に自動起動を有効化 ubuntu@web01:~$ sudo systemctl enable apache2 # 起動確認 ubuntu@web01:~$ sudo systemctl status apache2 * apache2.service - The Apache HTTP Server Active: active (running) since Mon 2026-05-19 09:30:11 JST; 3s ago

3. ufwで80番ポートを開放

# ufwが有効な場合はApacheプロファイルで開放 ubuntu@web01:~$ sudo ufw allow 'Apache Full' Rules updated Rules updated (v6) # 'Apache Full'はHTTP(80)+HTTPS(443)、HTTPのみなら'Apache'を指定

RHEL系とDebian系の設定ファイル配置の違い

パッケージインストールの場合、設定ファイルのパスがディストリビューションごとに異なります。最初に押さえておくべき差分は次のとおりです。
項目 RHEL9 / Rocky9 / AlmaLinux9 Ubuntu 24.04 / Debian
パッケージ名 httpd apache2
サービス名 httpd apache2
メイン設定ファイル /etc/httpd/conf/httpd.conf /etc/apache2/apache2.conf
追加設定の置き場所 /etc/httpd/conf.d/*.conf /etc/apache2/sites-available/ + a2ensite
ドキュメントルート /var/www/html /var/www/html
ログ /var/log/httpd/ /var/log/apache2/
実行ユーザー apache www-data
Debian系の「a2ensite / a2dissite」によるサイト有効化の仕組みは、RHEL系出身者がつまずきやすいポイントです。sites-available/ に作った設定ファイルを a2ensite コマンドで sites-enabled/ にシンボリックリンクし、systemctl reload apache2 で反映する流れになります。

ソースコードからApacheをインストールする

ここからはソースインストールの手順を扱います。下記は実際にApache 1.3.37をビルドした時の実機ログです。Apache 1.3系はすでにEOLですが、configure → make → make install の流れと出力の読み方は2.4系でもまったく同じなので、構造の理解として参考にしてください。

現代の本番環境では、ソースインストールする場合もApache 2.4系の最新版(httpd.apache.org)を取得してください。
Apacheをインストールします。

[root@Tiger root]# cd /usr/local/src
[root@Tiger src]# wget http://japache.infoscience.co.jp/apache/dist/httpd/apache_1.3.37.tar.gz
--15:57:47-- http://japache.infoscience.co.jp/apache/dist/httpd/apache_1.3.37.tar.gz
=> `apache_1.3.37.tar.gz'
japache.infoscience.co.jp をDNSに問いあわせています... 202.126.225.188
japache.infoscience.co.jp[202.126.225.188]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2,665,370 [application/x-gzip]

100%[============================================================================>] 2,665,370 6.89K/s ETA 00:00

16:04:10 (6.82 KB/s) - `apache_1.3.37.tar.gz' を保存しました [2665370/2665370]
[root@Tiger src]# tar zxvf /usr/local/src/apache_1.3.37.tar.gz
apache_1.3.37/ABOUT_APACHE
apache_1.3.37/cgi-bin/
apache_1.3.37/cgi-bin/test-cgi
apache_1.3.37/cgi-bin/printenv
apache_1.3.37/conf/
apache_1.3.37/conf/httpd.conf-dist-win
apache_1.3.37/conf/httpd.conf-dist-nw
apache_1.3.37/conf/access.conf-dist
apache_1.3.37/conf/highperformance.conf-dist
apache_1.3.37/conf/srm.conf-dist
apache_1.3.37/conf/mime.types
apache_1.3.37/conf/magic
apache_1.3.37/conf/httpd.conf-dist
~中略~
apache_1.3.37/src/Configuration
apache_1.3.37/src/buildmark.c
apache_1.3.37/src/Apache.dsw
apache_1.3.37/src/INSTALL
apache_1.3.37/WARNING-WIN.TXT
[root@Tiger src]# cd /usr/local/src/apache_1.3.37
[root@Tiger apache_1.3.37]# ./configure --enable-module=so
Configuring for Apache, Version 1.3.37
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
+ enabling mod_so for DSO support
Creating Makefile in src
+ configured for Linux platform
+ setting C compiler to gcc
+ setting C pre-processor to gcc -E
~中略~
Creating Makefile in src/os/unix
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard
Creating Makefile in src/modules/proxy
[root@Tiger apache_1.3.37]# make
===> src
make[1]: ディレクトリ `/usr/local/src/apache_1.3.37' に入ります
make[2]: ディレクトリ `/usr/local/src/apache_1.3.37/src' に入ります
===> src/regex
~中略~
b/expat-lite `../apaci` checkgid.c
gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -I/usr/include/gdbm -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite `../apaci` -o chec
kgid -L../os/unix -L../ap checkgid.o -lm -lap -los -lm -lcrypt -lgdbm -ldl
make[2]: ディレクトリ `/usr/local/src/apache_1.3.37/src/support' から出ます
<=== src/support
make[1]: ディレクトリ `/usr/local/src/apache_1.3.37' から出ます
<=== src
[root@Tiger apache_1.3.37]# make install
make[1]: ディレクトリ `/usr/local/src/apache_1.3.37' に入ります
===> [mktree: Creating Apache installation tree]
./src/helpers/mkdir.sh /usr/local/apache/bin
mkdir /usr/local/apache
mkdir /usr/local/apache/bin
./src/helpers/mkdir.sh /usr/local/apache/bin
./src/helpers/mkdir.sh /usr/local/apache/libexec
~中略~
./src/helpers/install.sh -c -m 644 ./conf/magic /usr/local/apache/conf/magic
<=== [config]
make[1]: ディレクトリ `/usr/local/src/apache_1.3.37' から出ます
+--------------------------------------------------------+
| You now have successfully built and installed the |
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the |
| (initially created or preserved) configuration files |
| |
| /usr/local/apache/conf/httpd.conf
| |
| and then you should be able to immediately fire up |
| Apache the first time by running: |
| |
| /usr/local/apache/bin/apachectl start
| |
| Thanks for using Apache. The Apache Group |
| http://www.apache.org/ |
+--------------------------------------------------------+
[root@Tiger apache_1.3.37]#

現代版(Apache 2.4系)のソースインストール手順

Apache 2.4系をソースから入れる場合は、依存パッケージ(APR、APR-util、PCRE2)を先に入れてからconfigureする流れになります。

# 依存パッケージのインストール(RHEL9系の場合) [root@web01 ~]# dnf install -y gcc make pcre2-devel expat-devel openssl-devel # APRとAPR-utilの取得・ビルド [root@web01 src]# wget https://dlcdn.apache.org//apr/apr-1.7.5.tar.gz [root@web01 src]# wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz [root@web01 src]# tar xzf apr-1.7.5.tar.gz [root@web01 src]# tar xzf apr-util-1.6.3.tar.gz # Apache 2.4系のソース取得 [root@web01 src]# wget https://dlcdn.apache.org//httpd/httpd-2.4.62.tar.gz [root@web01 src]# tar xzf httpd-2.4.62.tar.gz [root@web01 src]# cd httpd-2.4.62 # APR/APR-utilをsrclibに配置 [root@web01 httpd-2.4.62]# mv ../apr-1.7.5 srclib/apr [root@web01 httpd-2.4.62]# mv ../apr-util-1.6.3 srclib/apr-util # configure(PREFIXは任意、共存させる場合は--prefixで分ける) [root@web01 httpd-2.4.62]# ./configure --prefix=/usr/local/apache2 \ --enable-so --enable-ssl --with-included-apr [root@web01 httpd-2.4.62]# make [root@web01 httpd-2.4.62]# make install # 起動 [root@web01 httpd-2.4.62]# /usr/local/apache2/bin/apachectl start

ソースビルドしたApacheはsystemdに登録されていないため、自動起動させたい場合は /etc/systemd/system/httpd-source.service といったunitファイルを別途用意する必要があります。

Apacheインストール後の動作確認

Apacheが正常にHTTPリクエストを受けられているか、サーバー側でも確認しておきます。

# Apacheのバージョン確認 [root@web01 ~]# httpd -v Server version: Apache/2.4.62 (Red Hat Enterprise Linux) Server built: Aug 14 2025 00:00:00 # Apacheが80番ポートでListenしているか確認 [root@web01 ~]# ss -tlnp | grep :80 LISTEN 0 511 *:80 *:* users:(("httpd",pid=12345,fd=4)) # 設定ファイルの構文チェック [root@web01 ~]# httpd -t Syntax OK # 読み込まれているモジュールの一覧 [root@web01 ~]# httpd -M | head Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (shared) authn_file_module (shared) authz_host_module (shared)

「httpd -t」で「Syntax OK」と出れば設定に問題はありません。本番設定変更時の必須チェックなので習慣にしてください。

トラブルシュート・「httpd: Could not reliably determine the server's fully qualified domain name」が出る

Apache起動時にこの警告が出るのは、ServerName ディレクティブが未設定だからです。動作には影響しませんが、本番運用前にきちんと設定しましょう。

# /etc/httpd/conf/httpd.conf に追記(RHEL9系の場合) ServerName www.example.com:80 # 構文チェック後、Apache再起動 [root@web01 ~]# httpd -t Syntax OK [root@web01 ~]# systemctl restart httpd

トラブルシュート・「Permission denied: AH00072: make_sock: could not bind to address [::]:80」

このエラーは、80番ポートが既に他のプロセス(nginxなど)に使われている場合、もしくはSELinuxで80以外の非標準ポートを許可していない場合に発生します。

# 80番を使っているプロセスを特定 [root@web01 ~]# ss -tlnp | grep :80 LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=2345,fd=6)) # 非標準ポート(8080など)を使いたい場合はSELinuxへ追加 [root@web01 ~]# semanage port -a -t http_port_t -p tcp 8080

semanageコマンドが入っていない場合は dnf install -y policycoreutils-python-utils でインストールしてください。

本記事のまとめ

Apacheのインストールは、現代の本番環境では基本的にパッケージ管理(dnf / apt)を使うのが正解です。ソースインストールは「特定モジュール」「複数バージョン併存」「先行パッチ適用」のいずれかが必要な時の限定的な選択肢になります。
やりたいこと コマンド
RHEL9系でApacheをインストール dnf install -y httpd
Ubuntu系でApacheをインストール apt install -y apache2
サービスの起動(RHEL系) systemctl start httpd
サービスの起動(Debian系) systemctl start apache2
OS起動時に自動起動 systemctl enable httpd または systemctl enable apache2
80番ポートを開放(firewalld) firewall-cmd --permanent --add-service=http
80番ポートを開放(ufw) sudo ufw allow 'Apache Full'
設定の構文チェック httpd -t
バージョン確認 httpd -v または apache2 -v
読み込みモジュール一覧 httpd -M
Apacheのインストールは数コマンドで終わりますが、その後の設定(VirtualHost、SSL、モジュール選択、チューニング)こそ実務の本番です。インストールはスタート地点として、次は設定ファイルの構造に進んでください。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。