初心者でも安心!webサーバーの立て方完全ガイド2024年版

目次

はじめに

この文書の目的

この文書は、初心者の方でもわかりやすくLinux(Ubuntu)とApacheを使ってWebサーバーを立てられるようにするために作成しました。手順を追いながら、準備・インストール・設定・公開までの流れを丁寧に説明します。

対象読者

  • 自宅や個人でWebサイトを公開したい方
  • サーバー構築を学びたい初心者
  • 基本的なコマンド操作ができる方(簡単な説明はあります)

本書で学べること

  • Webサーバーの全体像と必要なものの理解
  • UbuntuでのApacheインストールと初期設定
  • ファイアウォールやセキュリティ設定の基本
  • 動作確認とドメイン設定、トラブル対策の基礎

前提・準備について

最小限の知識として、端末でコマンド入力ができることと、管理者権限(sudo)が使えることを想定します。用語は必要最小限にし、具体例を交えて説明します。わからない箇所は順を追って確認できるように配慮しています。

本書の構成

全9章で、準備から公開、トラブル対応まで一通り扱います。まずは雰囲気をつかんでください。次章では構築の全体像と必要なものを説明します。

Webサーバー構築の全体像と必要なもの

全体像の要約

Webサーバーを立てるには、主に「ドメイン」「サーバー本体」「コンテンツ」の3つが要ります。ドメインは住所、サーバー本体は家、コンテンツは中に置く家具のようなイメージです。本記事では自前サーバー(Linux:Ubuntu+Apache)での構築手順を中心に解説します。

構築のパターン

  • レンタル(共有)サーバー:簡単に始められ、管理は提供者任せです。手軽に公開したい初心者向けです。
  • 自前サーバー(VPSや自宅サーバー):細かい設定や学習に向きます。本記事はこのパターンを扱います。

必要なもの(具体例つき)

  • サーバー本体:VPS(例:ConoHa、さくらのVPS、AWS Lightsail)か自宅PC。最低でも1GBメモリ、20GBディスクを推奨します。
  • OS:Ubuntu(今回の対象)。安定して情報が多いです。
  • Webサーバーソフト:Apacheを使用します。
  • ドメイン:取得・DNS設定が必要です。安価な取得サービスで購入できます。
  • ネットワーク:固定IPかDDNSの準備。ポート開放(80、443)を忘れずに。
  • コンテンツ:HTMLやPHPファイル、画像など。最初はシンプルなindex.htmlでもOKです。
  • アクセス手段:SSHでの接続が基本です。
  • バックアップ・電源対策:重要データは定期的に保存します。

必要な知識の目安

  • 基本的なLinuxコマンド(ファイル操作、パーミッション)
  • DNSやポートの概念
  • HTMLの簡単な編集

次章では、構築前に準備すべき具体的手順とチェックリストを説明します。

サーバー構築前の準備

概要

物理PCやクラウドの仮想マシンを準備し、UbuntuなどのLinuxをインストールします。ここではインストール前に確認すべき項目と、作業中に設定する主な内容をわかりやすく説明します。

1) ハードウェア/仮想環境の準備

  • 物理PC: CPU、メモリ(例: 2GB以上)、ディスク容量を確認します。小規模ならSSD 20GB程度が目安です。
  • クラウド: インスタンスサイズと公開IPの有無を選びます。無料枠を使う場合は仕様に注意してください。

2) OSの選択とインストール前チェック

  • バージョン: 長期サポート版(LTS)を選ぶと安定します。UbuntuならLTSを推奨します。
  • インストールメディア: ISOをダウンロードし、USBやクラウドのイメージに用意します。

3) インストール時の主な設定

  • 言語とタイムゾーン: 作業しやすい言語と自分の地域のタイムゾーンを選びます。
  • パーティション: 初心者は自動割当で問題ありません。手動にする場合はルート(/)とスワップを設定します。
  • ユーザー名・パスワード: 管理者用の強いパスワードを設定し、メモしておきます。

4) ネットワーク接続の確認

  • 有線接続ならケーブルを差してIPが取得できるか確認します。
  • クラウドではセキュリティグループやファイアウォールでSSH(ポート22)が開いているか確認します。

5) インストール後にすぐ行うこと

  • SSHで接続できるか試します。
  • システムを最新にする(apt update/upgrade)。
  • 時刻同期サービスを有効にします。

注意点

重要なパスワードや設定は必ず記録してください。クラウドは課金に注意し、不要なインスタンスは停止または削除してください。

Webサーバー(Apache)のインストールと初期設定

概要

UbuntuにApacheをインストールし、起動と基本設定を行う手順をわかりやすく説明します。ここでは実際のコマンド例を示し、設定ファイルでのServerNameやDocumentRootの変更方法、簡単な仮想ホストやSSLの導入について触れます。

インストール手順(実例)

  1. パッケージ情報を更新します。
sudo apt update
  1. Apacheをインストールします。
sudo apt install -y apache2

インストール後、ブラウザでサーバーのIPにアクセスすると、Apacheのテストページが表示されるはずです。

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

Apacheを起動し、自動起動を有効にします。

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2

状態確認で「active (running)」が出れば正常です。

基本設定(ServerName と DocumentRoot)

設定ファイルは主に /etc/apache2/sites-available/000-default.conf を編集します。例:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
</VirtualHost>
  • ServerName: サイトの名前(例: example.com)。未設定だと警告が出ることがあります。
  • DocumentRoot: 公開するファイルを置く場所。デフォルトは /var/www/html です。
    編集後はサイトを有効化して再読み込みします。
sudo a2ensite 000-default.conf
sudo systemctl reload apache2

複数サイト運用(仮想ホスト)

サイトごとに別の設定ファイルを /etc/apache2/sites-available/ に作成し、a2ensite で有効化します。例えば /etc/apache2/sites-available/site1.conf/etc/apache2/sites-available/site2.conf を用意します。

SSL(HTTPS)導入の簡単な流れ

Let’s Encrypt の Certbot を使うと無料で証明書を取得できます。基本は次のような流れです。

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com

自動で設定してくれる場合が多く、HTTPS化が簡単です。

確認用コマンド

  • 設定ファイルの文法チェック: sudo apache2ctl configtest
  • 再起動: sudo systemctl restart apache2
  • ログ確認: /var/log/apache2/error.log/var/log/apache2/access.log

次章ではファイアウォールや追加のセキュリティ設定について詳しく説明します。

ファイアウォール・セキュリティ設定

ファイアウォールでの基本設定

まずHTTP(80番)とHTTPS(443番)を開放します。Ubuntuならufw、CentOS系ならfirewalldが主流です。例:
– ufw: sudo ufw allow 80/tcp; sudo ufw allow 443/tcp; sudo ufw enable
– firewall-cmd: sudo firewall-cmd –permanent –add-service=http; sudo firewall-cmd –permanent –add-service=https; sudo firewall-cmd –reload
開放後は sudo ufw status や sudo firewall-cmd –list-all で確認してください。

SSHの安全対策

SSHは接続用に通常22番を使いますが、パスワード認証を無効にし公開鍵認証に切り替えると安全性が上がります。/etc/ssh/sshd_configでPasswordAuthentication noに変更し、必要ならPortを変更します。作業前に別ターミナルでログイン確認を必ず行ってください。

パッチ適用と自動更新

OSとパッケージを最新に保ちます。Debian/Ubuntu: sudo apt update && sudo apt upgrade。CentOS: sudo yum update。自動更新(unattended-upgradesやyum-cron)を有効にすると手間が減ります。

追加の対策

  • fail2banで不正なログイン試行をブロック
  • SELinuxやAppArmorを有効にして権限を制限
  • TLS証明書はLet’s Encrypt等でHTTPSを導入

動作確認

外部から curl -I http://your-ip でヘッダーを確認し、ポート開放とHTTPSの有効化を確認します。問題があればログ(/var/log/auth.log、/var/log/apache2/など)を確認してください。

動作確認とWebサイト公開

動作確認の基本手順

  1. ブラウザでサーバーのIPアドレス(例: http://203.0.113.10)または設定したドメイン名を入力します。Apacheの初期ページが表示されれば接続は成功です。
  2. 表示されない場合は、まずApacheが起動しているか確認します(例: systemctl status apache2 または systemctl status httpd)。

DocumentRootにファイルを置く

  1. DocumentRootの代表例は /var/www/html です。ここに index.html を配置すると公開されます。
  2. ファイルの所有者と権限を確認します。例: sudo chown -R www-data:www-data /var/www/html (ディストリビューションによりユーザー名は apache の場合があります)。

公開確認のポイント

  • http://で接続できれば基本公開は完了です。HTTPSで公開する場合は証明書の設定が必要です。
  • ポート番号を指定している場合はブラウザでポートも指定します(例: http://203.0.113.10:8080)。

簡単なトラブルシューティング

  • 「接続拒否」: Apacheが停止、またはファイアウォールでポートが閉じています。サービス起動とファイアウォール設定を見直してください。
  • 空白ページや403エラー: indexファイル名とファイル権限を確認します。
  • エラーログ確認: /var/log/apache2/error.log または /var/log/httpd/error_log を確認すると原因が分かることが多いです。

以上の手順で基本的な動作確認と公開ができます。必要なら個別のエラーメッセージに応じた対処法をさらに詳しく説明します。

ドメイン設定と外部公開

はじめに

独自ドメインを使うと、訪問者に分かりやすい名前でサイトを公開できます。ここではドメイン取得からDNS設定、ルーターの設定まで順に説明します。

1. 独自ドメインを取得する

ドメイン登録業者(例:お名前.com、ムームードメインなど)で希望の名前を検索し購入します。費用は種類によって変わります。

2. DNSでサーバーのIPを紐付ける

最も基本はAレコードです。AレコードにサーバーのグローバルIPを設定すると、example.comがそのIPへ向きます。サブドメイン(wwwなど)はCNAMEで本体に向けることが多いです。設定後、反映まで数分〜72時間かかることがあります。

3. グローバルIPとルーターの設定

家庭やオフィスのサーバーはルーター越しに動きます。ルーターでTCPポート80(HTTP)と443(HTTPS)をサーバーの内部IPに転送(ポートフォワード)してください。プロバイダがグローバル固定IPを提供しない場合は、DDNSサービスを使って動的IPを更新する方法もあります。

4. SSL/TLSの導入

Let’s Encryptなどの無料証明書でHTTPSを有効にします。証明書発行後、自動更新を設定して期限切れを防いでください。

5. 動作確認とトラブル対処

ブラウザでドメインにアクセスして表示を確認します。反映されないときはDNSキャッシュをクリアしたり、dig/nslookupでAレコードを確認します。プロバイダのブロックやポート未開放が原因のこともあります。

問題があれば、設定しているDNSのスクリーンショットと現在のグローバルIPを教えてください。具体的にお手伝いします。

よくあるトラブル・補足事項

ページが表示されない時のチェック順

  1. サービス確認: sudo systemctl status apache2(または httpd)で稼働を確認します。起動していなければ sudo systemctl start apache2 を実行します。
  2. ポート確認: ss -tlnp や netstat -tlnp で 80/443 が LISTEN しているか確認します。
  3. ファイアウォール: ufw status や firewall-cmd –list-all で HTTP/HTTPS を許可します。
  4. ログ確認: /var/log/apache2/error.log(または /var/log/httpd/error_log)を確認し、エラーメッセージを手掛かりにします。

よくある原因と対応例

  • ドキュメントルートのパーミッション不備: ファイル所有者と権限を確認し、www-data などのユーザーが読み込めるようにします。
  • 仮想ホスト設定ミス: ServerName や DocumentRoot のパスを見直します。
  • DNSやホスト名の問題: ローカルで hosts を書き換えて動作確認します。

セキュリティと運用の補足

  • 定期更新: apt update/upgrade や yum update を定期的に行います。自動更新(unattended-upgrades)を検討してください。
  • 不要サービス停止: FTP、telnet、古いデーモンなど使わないサービスは systemctl disable –now で停止します。
  • バックアップ: 設定ファイルとサイトデータを定期的にバックアップします。

Windows(IIS)について

IIS でも同様に構築できます。設定項目やログの場所が異なる点に注意してください。本記事は Linux + Apache を中心に説明しています。

まとめ:Webサーバー構築の流れ

以下は本書で扱った手順の簡潔な流れと、実作業のときに役立つチェックポイントです。

全体の流れ(5ステップ)

  1. サーバーを用意してOSをインストール(例:Ubuntu)。基本ユーザーとSSH設定を行います。
  2. Apacheをインストールし、ドキュメントルートやバーチャルホストを設定します。PHPなど必要なモジュールもここで追加します。
  3. ファイアウォールや不要サービスの停止など、セキュリティ設定をします。ポート開放は最小限にします。
  4. ブラウザやcurlで動作確認を行い、公開用ファイルを配置します。アクセス権や所有者を適切に設定します。
  5. 必要に応じて独自ドメインを取得し、DNS設定とポートのルーティングを行います。SSL証明書は早めに導入します。

実務チェックリスト

  • SSHキーでの接続確認
  • Apacheの起動・自動起動設定
  • ファイアウォールのルール
  • 権限とログの確認
  • SSL導入とドメイン解決

セキュリティとバックアップを習慣化すると、安定稼働につながります。次は運用・監視を整えると良いでしょう。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次