LinuxのWebサーバーといえば、NginxとApacheの2強です。前回はNginxを構築しましたが、この記事ではApacheのインストールから基本設定、よく使う機能まで丁寧に解説します。
Apacheとは何か?
Apache HTTP Serverは、世界で最も長く使われてきたWebサーバーソフトウェアです。1995年にリリースされて以来、長年にわたりWebを支えてきた実績あるソフトウェアです。
Apacheの特徴は「モジュール構造」にあります。必要な機能だけを追加・削除できるため、PHPやPythonとの連携が得意です。WordPressなど動的なサイトとの相性が非常に良いのも特徴です。
Apacheのインストール
sudo apt update
sudo apt install -y apache2
バージョン確認
apache2 -v
Apacheの起動と自動起動設定
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
Active: active (running) と表示されれば正常です。ブラウザでサーバーのIPアドレスにアクセスすると「Apache2 Ubuntu Default Page」が表示されます。
Apacheの重要なディレクトリ構成
| パス | 役割 |
|---|---|
| /etc/apache2/apache2.conf | メイン設定ファイル |
| /etc/apache2/sites-available/ | サイト設定ファイルの置き場 |
| /etc/apache2/sites-enabled/ | 有効化されたサイト設定 |
| /etc/apache2/mods-available/ | 利用可能なモジュール |
| /var/www/html/ | デフォルトのドキュメントルート |
| /var/log/apache2/ | アクセスログ・エラーログ |
バーチャルホストの設定
バーチャルホストとは、1台のサーバーで複数のドメインを運用する仕組みです。本番環境では必ず使います。
sudo nano /etc/apache2/sites-available/mysite.conf
<VirtualHost *:80>
ServerName your-domain.com
ServerAlias www.your-domain.com
DocumentRoot /var/www/mysite
ErrorLog /var/log/apache2/mysite_error.log
CustomLog /var/log/apache2/mysite_access.log combined
</VirtualHost>
サイトを有効化する
sudo mkdir -p /var/www/mysite
echo '<h1>Hello, Apache!</h1>' | sudo tee /var/www/mysite/index.html
sudo a2ensite mysite.conf
sudo systemctl reload apache2
よく使うapache2コマンド一覧
| コマンド | 説明 |
|---|---|
| sudo systemctl start apache2 | 起動 |
| sudo systemctl stop apache2 | 停止 |
| sudo systemctl restart apache2 | 再起動 |
| sudo systemctl reload apache2 | 設定リロード |
| sudo apache2ctl configtest | 設定ファイルの構文チェック |
| sudo a2ensite サイト名 | サイト有効化 |
| sudo a2dissite サイト名 | サイト無効化 |
| sudo a2enmod モジュール名 | モジュール有効化 |
NginxとApacheどちらを選ぶべき?
| 目的 | 推奨 |
|---|---|
| 静的ファイルの高速配信 | Nginx |
| WordPressなど動的サイト | Apache(またはNginx+PHP-FPM) |
| リバースプロキシ | Nginx |
| .htaccessを使いたい | Apache |
| モジュールで機能拡張 | Apache |
まとめ
- Apacheは動的サイトやWordPressとの相性が抜群
a2ensite/a2dissiteでサイトの有効化を管理する- 設定チェックは
apache2ctl configtestで確認できる - 静的配信はNginx、動的コンテンツはApacheと使い分けるのが基本
次の記事では、Let’s Encryptを使って無料でSSL/HTTPS化する方法を解説します。



コメント