時々、一歩下がって基本に立ち返るのは良いことです。それは、テクニカルライターとしての私の基礎を築くのに役立つだけでなく、私が話しているテクノロジーの仕組みを学んでいる多くの人にとって役立つのです。
今回はApacheウェブサーバーについて解説します。Apacheは数十年にわたり、大小さまざまなウェブサイトを安定して提供してきたソフトウェアです。ApacheはMySQL、PHP、その他多数のパッケージとシームレスに連携するため、シンプルな静的ウェブサイトから非常に動的なウェブサイトまで、あらゆるウェブサイトを配信できます。
サーバーのインストールと設定はどのように行いますか?ファイルはどこに保存しますか?
では、ステップごとに見ていきましょう。Ubuntu Server でデモを行います。
しかし、まずはもう少し情報をお伝えします。
参照: LinuxでApacheを使って複数のウェブサイトをホストする方法 (TechRepublic Premium)
UbuntuとRed Hatベースのディストリビューション上のApacheの違い
使用しているLinuxディストリビューションを明記する必要があるのは、UbuntuベースとRed HatベースのディストリビューションではApacheのインストール方法が異なるためです。インストールから設定まで、様々な方法でApacheが動作します。例えば、Red HatベースのディストリビューションではApacheはhttpdパッケージ経由でインストールされますが、Ubuntuベースのディストリビューションではapache2パッケージでインストールされます。また、Apacheの設定場所と設定方法にも違いがあります。
Red Hatベースのディストリビューションでは、Apacheの設定の多くは/etc/httpd/conf/httpd.confで行われます。Ubuntuベースのディストリビューションでは、設定は/etc/apache2/apache2.confと/etc/apache2/sites-available/にあります。他にも違いはありますが、大体こんな感じです。
参照: Apache Maven — ビルド自動化ツールのレビュー (TechRepublic)
Ubuntu ServerにApacheをインストールする方法
UbuntuにApacheをインストールする方法はいくつかあります。基本的なサーバーソフトウェアだけが必要な場合は、ターミナルを開いて次のコマンドを実行してください。
sudo apt-get install apache2 -y
ただし、本格的な Linux Apache MySQL PHP (LAMP) スタックが必要な場合は、次のコマンドを発行します。
sudo apt-get install lamp-server^
これらのコマンドのいずれかを実行すると、Apacheが起動します。また、サーバーの再起動(またはブート)時にApacheが起動するように設定しておく必要があります。そのためには、次のコマンドを実行します。
sudo systemctl enable apache2
インストールを確認するには、Webブラウザを開き、http://SERVER_IP(SERVER_IPはApacheをホストするサーバーのIPアドレス)にアクセスしてください。下図のようなApacheのウェルカムページが表示されます。

Apacheが表示しているページは何でしょうか? /var/www/html を見てみると、index.html ファイルが見つかります。これを変更してみましょう。
ターミナル ウィンドウに戻り、次のコマンドで index.html ファイルの名前を変更します。
sudo mv /var/www/html/index.html /var/www/html/index.html.bak
それでは、新しいウェルカムファイルを作成しましょう。以下のコマンドを実行してください。
sudo nano /var/www/html/index.html
そのファイルに次の 2 行を貼り付けます。
こんにちは、TechRepublic!
お元気ですか?
ファイルを保存して閉じます。ブラウザでウェブページを再読み込みすると、以下のように変更されているはずです。

Apache用のサイトを作成する方法
これから、Apacheがサービスを提供する仮想ホストを作成します。仮想ホストとは、Apacheがサービスを提供するウェブサイトの別名です。1台のApacheサーバーで複数の仮想ホストを運用できます。実際には、ホスティングサーバーの処理能力とネットワークの帯域幅によってのみ制限されます。
それでは、 testという仮想ホストを作成しましょう。
まず最初に、次のコマンドを使用してテストを格納するディレクトリを作成します。
sudo mkdir -p /var/www/html/test
次に、次のコマンドを使用して、新しいディレクトリに適切な所有権を与えます。
sudo chown -R $USER:$USER /var/www/html/test
最後に、次のコマンドで適切な権限を付与します。
sudo chmod -R 755 /var/www/html/test
次のコマンドを使用して、新しい index.html ファイルをテスト ディレクトリにコピーします。
sudo cp /var/www/html/index.html /var/www/html/test/
次に、Apacheがtestの場所を認識できるように、バーチャルホストの設定を作成します。これは/etc/apache/sites-availableに格納されます。そのためには、以下のコマンドでtest.confファイルを作成します。
sudo nano /etc/apache2/sites-available/test.conf
そのファイルに次の内容を貼り付けます。
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/test
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
上記の最も重要な行はDocumentRootで始まります。これはApacheに仮想ホストのファイルの場所を指示するものです。このファイルを保存して閉じてください。
ここまでで、ファイルを格納するディレクトリを作成し、適切な所有権と権限を付与し、バーチャルホストの設定も完了しました。しかし、Apacheはまだ新しいサイトを認識していません。なぜでしょうか?設定ファイルがsites-availableにあるためです。必要なのは、その設定ファイルから/etc/apache2/sites-enabledディレクトリへのリンクを作成することです。sites -enabledにある設定のみがApacheサーバー上で有効になります。
Ubuntu以外のサーバーでは、 ln(linkの略)コマンドを使ってこれを行う必要があります。しかし、Ubuntuには、サイトを自動的に作成してくれる便利なユーティリティがあります。そのユーティリティはa2ensiteです。以下のコマンドを実行すると、
sudo a2ensite test.conf
これでテスト仮想ホストが有効になります。
このコマンドが成功したら、次のコマンドを使用して Apache をリロードする必要があります (設定ファイルのみがリロードされ、Web サーバーは再起動されません)。
sudo systemctl reload apache2
ここで、ブラウザでhttp://SERVER_IP/test (SERVER_IP はサーバーの IP アドレス) にアクセスすると、基本の index.html ファイルの場合と同じ「Hello, TechRepublic!」のウェルカム メッセージが表示されます。ただし、このメッセージは新しく作成された仮想ホストから提供されています。
Apacheウェブサーバーをインストールし、index.htmlファイルを編集して、独自のバーチャルホストを作成しました。このシンプルなハウツーを参考に、Apacheで提供される必要なウェブサイトをすべて立ち上げることができます。
この記事はもともと2020年10月に公開されました。2025年1月にAntony Peytonによって更新されました。