はじめに
本ドキュメントの目的
本ドキュメントは、Ubuntu上でローカルWebサーバーを構築する手順と考え方を分かりやすくまとめた入門書です。ApacheやNginxのインストール手順、設定、仮想ホストの使い方、動作確認までを丁寧に解説します。学習や開発用のテスト環境を短時間で整えたい方に向けています。
対象読者
プログラミングやWeb制作を学んでいる方、ローカルでサイトを試作・検証したい方、学生や趣味で学ぶ方を想定しています。専門知識がなくても進められるよう、用語は可能な限り平易に説明します。例:ローカルでWordPressを動かして試す、といった用途にも適します。
前提条件
- Ubuntuが動作するパソコン(実機または仮想マシン)があること
- 基本的なターミナル操作(コマンドの実行)ができること
- 管理者(sudo)権限が使えること
これらがあれば本書の手順をほぼそのまま実行できます。
期待できる効果
ローカル環境でWebサイトを立ち上げ、ブラウザで動作確認やデバッグが可能になります。また複数サイトを同じマシンで管理する方法(仮想ホスト)や、公開前の動作検証が行えます。学習効率が上がり、本番環境に影響を与えずに試作できます。
本書の構成と読み方
続く章で「何ができるか」「全体像」「具体的なApacheでの構築手順」「仮想ホストの設定」を順に説明します。まずは第2章でローカルサーバーの利点を理解してください。
UbuntuでローカルWebサーバーを立てると何ができるか
概要
UbuntuにApacheやNginxを入れると、自分のPC上でWebサイトやアプリを動かして確認できます。インターネットに公開せずにlocalhostや家庭内LANだけで使えば、安全に学習や検証ができます。
できること(具体例)
- HTML/CSS/JavaScriptの表示確認:ブラウザだけで見映えや動きを試せます。
- PHPやCMSの動作検証:WordPressなどをローカルにインストールして動かせます。
- フォームやAPIのテスト:データ送受信の挙動をローカルで確かめられます。
- スマホや別端末での確認:同一LAN内から接続して実機テストができます。
複数サイトの運用
仮想ホストを使えば、1台のUbuntuで複数のサイトを同時に運用できます。開発ごとに独立した環境を作り、ポート番号やドメイン名で切り替えます。
外部公開の可能性
家庭内サーバーを外部公開する場合は、ルーターのポート開放やDNS設定が必要です。リスク管理としてファイアウォールやアクセス制限、定期的なバックアップを行ってください。
注意点
ローカル運用は学習と検証に最適です。ただし公開時はセキュリティ対策を十分に行ってください。
UbuntuとWebサーバー構築の全体像
初心者がUbuntuでWebサーバーを作るときの全体像を、流れと各ステップのポイントでわかりやすく説明します。
1) 目的と全体の流れ
目的をはっきりさせます(例:ローカルでサイトを作る、学習用、家庭内公開)。典型的な流れは、OSインストール→アップデート→Webサーバー導入→ドキュメントルート作成と権限設定→仮想ホスト設定(必要なら)→動作確認→必要に応じてSSLやポート転送設定です。
2) 主要なステップとポイント
- OSの準備:Ubuntuをインストールし、sudo apt update && sudo apt upgradeで最新にします。
- Webサーバー導入:ApacheやNginxを例に選んで導入します(例:sudo apt install apache2)。
- ドキュメントルートと権限:既定は /var/www/html ですが、ホーム配下に置くこともできます。所有者をwww-dataにするなど権限を整えます。
- 仮想ホスト:複数サイトを運用する場合に設定します。ローカルならhostsファイルで名前解決します。
- ローカル動作確認:ブラウザでhttp://localhost/を開いて確認します。
3) 拡張と注意点
- SSL:公開環境はLet’s Encrypt、ローカルは自己署名証明書で対応します。
- セキュリティ:UFWで必要なポートだけ開け、定期的にアップデートします。
- ポート転送・公開:自宅公開するならルーターのポート転送と固定IPかDDNSを検討します。
次章ではApacheを使った具体的な手順を順を追って説明します。
Apacheを使ったローカルWebサーバー構築手順(Ubuntu)
準備
まず端末を開き、パッケージ情報を更新します。
sudo apt update
これで最新版の情報を取得します。
Apacheのインストール
パッケージをインストールします。
sudo apt -y install apache2
インストールは自動で必要なファイルを配置します。
サービス管理
起動・自動起動・状態確認はsystemctlで行います。
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
ファイアウォールを使う場合はApache用の通信を許可します。
sudo ufw allow “Apache”
動作確認
ブラウザで http://localhost または http://127.0.0.1 にアクセスしてください。デフォルトページが表示されれば動作しています。同一LAN内の別端末からはサーバーのローカルIP(ifconfigやip addrで確認)でアクセスします。
ドキュメントルートと権限
デフォルトの公開フォルダは /var/www/html です。ここに index.html を置くと表示されます。ファイルの所有者や権限は必要に応じて変更してください。
sudo chown -R $USER:www-data /var/www/html
sudo chmod -R 750 /var/www/html
主要設定ファイル
主な設定は /etc/apache2/apache2.conf とサイト単位の /etc/apache2/sites-available/000-default.conf にあります。設定変更後は Apache を再起動します。
sudo systemctl restart apache2
ログとトラブル対処
アクセスログやエラーログは /var/log/apache2/ にあります。表示されない場合はログを確認し、設定ファイルの文法もチェックします。
sudo apachectl configtest
問題があればエラーログの内容を手掛かりに設定を見直してください。
仮想ホストで複数サイトをローカル運用する
概要
1台のUbuntuで複数のローカルサイトを同時に動かせます。実運用に近いドメイン構成を試せるため、開発や検証に便利です。
手順(要点)
1) Webルートの作成
sudo mkdir -p /var/www/example.local/public_html
2) 所有権と権限の設定
sudo chown -R $USER:www-data /var/www/example.local
sudo chmod -R 750 /var/www/example.local
ユーザーがファイルを編集でき、Apacheが読み込めるようにします。
3) 仮想ホストファイルを作る
ファイルは /etc/apache2/sites-available/example.local.conf
<VirtualHost *:80>
ServerName example.local
DocumentRoot /var/www/example.local/public_html
<Directory /var/www/example.local/public_html>
Require all granted
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
4) サイトの有効化/無効化
sudo a2ensite example.local.conf
sudo a2dissite oldsite.conf # 無効化するとき
sudo systemctl reload apache2
5) ブラウザからのアクセス設定
ローカルのhostsにドメインを追加します(管理者権限):
127.0.0.1 example.local
127.0.0.1 site2.local
保存後、ブラウザで http://example.local にアクセスします。
※ 複数サイトを同じIPで運用できます。HTTPSを使う場合は証明書を作成し、ポート443用の仮想ホストを追加してください。












