LinuxにApacheをインストールして最初のWebページを表示する入門|WSL2・Ubuntuで動作確認まで

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > LinuxにApacheをインストールして最初のWebページを表示する入門|WSL2・Ubuntuで動作確認まで
「LinuxにApacheをインストールしたけれど、ブラウザで何も表示されない。」
「WSL2やVPSでWebサーバーを動かしてみたいが、最初の一歩がわからない。」

こういった最初のつまずきは、手順の確認と環境ごとの違いを理解すれば必ず解消できます。

Apacheは世界でもっとも使われているWebサーバーで、Linuxサーバーを扱う現場でも今なお現役で使われています。「Webサーバーを自分の手で動かす」という体験は、Linuxを学ぶ上でのわかりやすいマイルストーンになります。

この記事では、UbuntuへのApacheインストール手順を初心者向けにステップバイステップで解説します。WSL2とVPSそれぞれでの動作確認、HTMLファイルの配置方法、よくあるエラーの対処まで、実行結果つきで説明します。

動作確認環境:Ubuntu 24.04 LTS(WSL2) / Ubuntu 22.04 LTS(VPS)

この記事のポイント

・sudo apt install apache2 の1コマンドでUbuntuにApacheをインストールできる
・インストール後はsudo systemctl start apache2で起動してブラウザで確認する
・HTMLファイルの置き場所は /var/www/html/(DocumentRoot)
・WSL2では「localhost」、VPSでは「サーバーのIPアドレス」でアクセスする


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

ApacheとはどんなWebサーバーか?NginxやIISとの違い

WebサーバーとはHTMLファイルや画像を保存しておき、ブラウザからのリクエストに応じてファイルを返すソフトウェアです。ブラウザでURLを入力したときに「どのファイルを返すか」を判断して送り返しているのが、Webサーバーの役割です。

代表的なWebサーバーには以下の3種類があります。

Apache(アパッチ):Linux上でもっとも普及しているWebサーバー。設定ファイルが豊富で、PHPとの組み合わせにも強い
Nginx(エンジンエックス):Apache登場後に普及した高速なWebサーバー。リバースプロキシとしても使われる
IIS(アイアイエス):Windowsサーバー専用のWebサーバー。Microsoft製品との連携が強み

Linuxを学ぶ上でApacheを押さえておくことは基本中の基本です。WordPressやPHP製のアプリケーションを動かす現場では今でもApacheがよく使われており、設定ファイルの読み方やサービスの起動・停止操作を身につけておくと、他のLinuxサービスの管理にも応用できます。

UbuntuにApacheをインストールする手順

1. パッケージ一覧を更新してインストールする

まず、apt のパッケージ一覧を最新にしてからApacheをインストールします。インストール前に apt update を実行するのが基本的な作法です。

# パッケージ一覧を最新にする $ sudo apt update Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease Reading package lists... Done # Apacheをインストールする $ sudo apt install apache2 -y Reading package lists... Done Building dependency tree... Done The following additional packages will be installed: apache2-bin apache2-data apache2-utils Suggested packages: apache2-doc apache2-suexec-pristine apache2-suexec-custom The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Do you want to continue? [Y/n] Y

インストールが完了すると、Apacheはすぐに使えるパッケージとして用意されます。

2. Apacheを起動してブラウザで確認する

インストールが完了したら、Apacheを起動して動作を確認します。

# Apacheを起動する $ sudo systemctl start apache2 # 起動状態を確認する $ sudo systemctl status apache2 * apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2026-07-31 09:00:01 JST; 3s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 2345 (apache2) Tasks: 6 (limit: 2316) Memory: 12.4M CPU: 145ms CGroup: /system.slice/apache2.service |-2345 /usr/sbin/apache2 -k start |-2346 /usr/sbin/apache2 -k start |-2347 /usr/sbin/apache2 -k start

Active: active (running)」と表示されていれば、Apacheが正常に動いています。

次に、ブラウザでアクセスして確認します。WSL2の場合は localhost、VPSの場合は サーバーのIPアドレス をブラウザのアドレスバーに入力してください。

WSL2の場合http://localhost
VPSの場合http://(サーバーのIPアドレス)(例:http://203.0.113.10

「Apache2 Ubuntu Default Page」と書かれたページが表示されれば、Apacheのインストールと起動は完了です。

3. 自動起動を設定して再起動後も動くようにする

このままではサーバーを再起動したときにApacheが自動で起動しません。本番運用を意識して、自動起動の設定もしておきましょう。

# 自動起動を有効にする $ sudo systemctl enable apache2 Synchronizing state of apache2.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable apache2 # 自動起動の設定を確認する(enabledになっていればOK) $ sudo systemctl is-enabled apache2 enabled

enabled と表示されれば、次回の再起動時からApacheが自動で起動します。

自分のHTMLファイルを表示する

Apacheのデフォルトページが表示できたら、次は自分で作ったHTMLファイルを表示してみましょう。

1. DocumentRootとはApacheのファイル置き場のこと

Apacheが公開するファイルを置く場所を DocumentRoot(ドキュメントルート) といいます。Ubuntuの場合、デフォルトのDocumentRootは /var/www/html/ です。

ブラウザで http://localhost/ にアクセスしたとき、Apacheは /var/www/html/index.html を返します。このディレクトリにHTMLファイルを置けば、ブラウザから見られるようになります。

2. HTMLファイルを作成して/var/www/htmlに配置する

# DocumentRootの中身を確認する(デフォルトのindex.htmlが入っている) $ ls -l /var/www/html/ total 12 -rw-r--r-- 1 root root 10918 May 1 09:00 index.html # テスト用のHTMLファイルを作る(sudoが必要) $ sudo bash -c 'cat > /var/www/html/hello.html << EOF <html> <head><title>初めてのApacheページ</title></head> <body> <h1>Hello, Apache!</h1> <p>Linuxで最初のWebページを作りました。</p> </body> </html> EOF'

3. ブラウザでアクセスして表示を確認する

作成したHTMLファイルにブラウザでアクセスします。

WSL2の場合http://localhost/hello.html
VPSの場合http://(サーバーのIPアドレス)/hello.html

「Hello, Apache!」と表示されれば成功です。これでApacheが自分のHTMLファイルを正しく返していることが確認できました。

ターミナルからcurlコマンドで確認することもできます。

$ curl http://localhost/hello.html <html> <head><title>初めてのApacheページ</title></head> <body> <h1>Hello, Apache!</h1> <p>Linuxで最初のWebページを作りました。</p> </body> </html>

WSL2でApacheを使う時の違いと注意点

WSL2でApacheを使う場合、VPSと異なる点がいくつかあります。

1. WSL2ではsystemdが必要な場合がある

WSL2の Ubuntu 22.04 以降はsystemdが使えるように設定されていれば sudo systemctl start apache2 がそのまま使えます。systemctl が使えない環境では sudo service apache2 start を試してください。

# systemdが有効な場合 $ sudo systemctl start apache2 # systemdが無効な場合(service コマンドを使う) $ sudo service apache2 start * Starting Apache httpd web server apache2

2. ブラウザのアクセス先はlocalhostで統一

WSL2ではWindowsブラウザから http://localhost でそのままLinux側のApacheにアクセスできます。ポート80が使われていれば、特別な設定なしで動作します。

3. Windows側のポート80が使われている場合

Skypeなど一部のWindowsアプリがポート80を占有している場合、Apacheが起動できないことがあります。その場合はApacheのポートを8080など別の番号に変更するか、ポートを占有しているアプリを停止してください。

よくあるエラーと対処法

「This site can't be reached」ブラウザで表示できない

ブラウザがサーバーに接続できていない状態です。以下の手順で確認してください。

# 1. Apacheが起動しているか確認する $ sudo systemctl status apache2 # "Active: active (running)" でなければ起動する $ sudo systemctl start apache2 # 2. ポート80でLISTENしているか確認する $ sudo ss -tlnp | grep :80 LISTEN 0 511 *:80 *:* users:(("apache2",pid=2345,fd=4)) # 3. VPSの場合はファイアウォールでポート80が開いているか確認する $ sudo ufw status Status: active To Action From -- ------ ---- 80/tcp ALLOW Anywhere

VPSでUFWが有効になっている場合、以下でポート80を開けます。

# ポート80を開放する(UFW使用のUbuntu向け) $ sudo ufw allow 80/tcp Rules updated Rules updated (v6)

「403 Forbidden」が表示される

Apacheはファイルを見つけているが、権限の問題でファイルを返せない状態です。

# ファイルの権限を確認する $ ls -la /var/www/html/hello.html -rw-r--r-- 1 root root 148 Jul 31 09:05 /var/www/html/hello.html # 所有者がrootで一般ユーザーでも読めるパーミッション(644)になっているか確認 # rw-r--r-- の3文字目と6文字目がr(read)になっていればOK

パーミッションが正しく設定されている場合でも403が出るなら、/var/www/html/ ディレクトリ自体の権限を確認します。

$ ls -ld /var/www/html/ drwxr-xr-x 2 root root 4096 Jul 31 09:00 /var/www/html/ # 755(rwxr-xr-x)になっていればApacheが読める状態

本記事のまとめ

やりたいこと コマンド
パッケージ一覧を更新する sudo apt update
Apacheをインストールする sudo apt install apache2 -y
Apacheを起動する sudo systemctl start apache2
Apacheの状態を確認する sudo systemctl status apache2
自動起動を有効にする sudo systemctl enable apache2
自動起動の設定を確認する sudo systemctl is-enabled apache2
Apacheを停止する sudo systemctl stop apache2
Apacheを再起動する sudo systemctl restart apache2
ポート80の待ち受けを確認する sudo ss -tlnp | grep :80
UFWでポート80を開放する sudo ufw allow 80/tcp
ApacheのインストールはUbuntuであれば sudo apt install apache2 の1コマンドで完了します。あとは systemctl で起動・停止・自動起動を管理し、/var/www/html/ にHTMLファイルを置くだけでWebページを公開できます。まずはWSL2でローカル環境に動かしてみて、手順を体で覚えてから本番のVPSに移行していくのがおすすめです。

関連記事 ~ ここから実践的なスキルを身につける

Apacheを動かしたら、次はサービス管理・ポート制御・ログ解析などのLinuxスキルを合わせて身につけておきましょう。

サーバー構築:Apacheの設定ファイルを構文チェックする方法|httpd -tとapachectl configtestで文法エラーを検出 ~ Apache設定変更後に必ず実行するコマンド
ネットワーク:firewall-cmdコマンドでポートを開放・管理する方法|ゾーン・サービス・永続化の使い分け ~ RHEL系サーバーのポート開放手順
Linux Tips:Apacheのアクセスログを設定する方法|CustomLogとLogFormatの書き方とcombined形式の読み方 ~ Webサーバーのログを読み解くスキル
トラブルシューティング:fuserコマンドで使用中のポートを占有するプロセスを特定する方法|umount時のtarget is busy解消 ~ ポート80が使えない原因を特定する
シェルスクリプト:loggerコマンドでシステムログに任意のメッセージを記録する方法|rsyslog転送やシェルスクリプト活用も ~ Apacheの起動スクリプトにログを残す
セキュリティ:fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策とトラブルシュートも ~ WebサーバーへのSSH経由の不正アクセスを防ぐ
ディスク操作:duコマンドでディレクトリ・ファイルの使用量を調べる方法|--max-depthやsortとの組み合わせも ~ Apacheのログが肥大化していないか確認する
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
Apacheの基本を押さえたら、次はWebアプリケーションが動く本格的なサーバー構築を体系的に学べます。ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

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

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

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

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

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

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

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

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

この記事を書いた人

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

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

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