
【Webサーバー】Apacheについて学ぼう
WebサーバーであるApacheについて皆さんご存じでしょうか。今回は数あるWebサーバーの中でApacheについて学んでいきたいと考えています。Apacheとはなにか、メリット・デメリットはなにかを調査してまとめてみました。
1. Apacheとは

「アパッチ」と読みます。
正式名称はApache HTTP Serverです。
無償で利用できるオープンソースのWebサーバーソフトウェアです。
汎用性が高く、WindowsやLinuxなどの様々なOSで動作させることができます。
また、高い安定性と信頼性、動作の軽さから人気を集めており、個人から企業などのエンタープライズ市場まで幅広く利用されています。
オーストリアのWeb市場調査会社Q-Successが行ったWebサーバーの世界シェアに関する調査の「W3Techs – World Wide Web Technology Surveys」によると、Apacheのシェアは2022年4月時点で31.4%でした。トップのNginxに次ぐ高いシェアを誇っています。
初版は1995年に公開されています。
現在(2024年4月22日)の最新版は2.4.59です。
名前の由来は、アメリカインディアンの一民族であるアパッチ族への尊敬の念を込めて付けられました。
2. Apacheのメリットとは

1.簡単に機能拡張できる
Apacheはモジュールを使用することで必要な機能を簡単に追加できます。標準でもさまざまなモジュールが用意されていますが、インターネット上で数多く配布されており、更に自作したモジュールも追加することが可能です。
2.信頼性・安定性が高い
OSSは多くの場合、保証などはないため利用者数や開発年数などが信頼性や安定性を判断する材料になります。W3Techsの調査によるとApacheはNginxに次ぐ高いシェア率を誇っています。つまりは実用的な安定性を持ち、信頼できるサーバであるということになります。
3.開発者向け技術情報を入手しやすい
20年以上も第一線で使われ続けたシステムであるため、開発者向けの技術情報が簡単に手に入りやすいのも大きなメリットです。4.重い処理が得意
アプリケーション、データベース、動的コンテンツなどの重い処理はCPUの使用率が高くなります。マルチプロセスの場合は処理が重いものでも他のプロセスに影響を与えることがないため、スムーズに処理を実行することができます。3. Apacheのデメリットとは

1.メモリを大量に消費する
マルチプロセスは接続ごとにプロセスをコピーします。プロセスを大量に作成するため、メモリを大量に消費するデメリットがあります。
2.同時処理数が多くなると耐えられない
ハイスペックPCでもない限り、メモリが食い尽くされてしまいます。
3.脆弱性対策が必要になる
Apacheはこれまで複数の脆弱性について発表されているため、セキュリティ対策は必要になります。対策としてはアップデートで解決するため、こまめに開発者が提供する情報をチェックし、最新版へのアップデートを行う必要があります。
4. Apacheのダウンロード手順(Windows版)
1.https://httpd.apache.org/のサイトに移動します。
2.Apache httpd 2.4.59 Released 2024-04-04の箇所に記載してある「ダウンロード」をクリックします。
3.「Files for Microsoft Windows」をクリックします。
4.「Apache Lounge」をクリックします。
5.ご自身のパソコン環境を確認し、32bit版か64bit版のどちらかをクリックします。
5. Apacheの起動手順(Windows版)
1.[スタート]-[プログラム]-[Apache Web Server]-[Management]-[Start Apache] でコマンドプロンプトを開いて、Apache を起動させます。
2.ブラウザから、http://127.0.0.1/ にアクセスします。Apacheのトップページが表示されれば成功となります。
6. Apacheの設定

C:\Apache24\conf にある httpd.conf をテキストエディタ等で開き、以下の設定を変更します。
変更後、適用させるにはApache HTTPサーバを再起動させます。
httpd -k restart
1.ServerAdminの設定
【変更前】ServerAdmin <何らかのメールアドレス>
【変更後】
ServerAdmin <サーバ管理者の正しいメールアドレス>
2.ServerNameの設定
【変更前】#ServerName <何らかのマシン名>
【変更後】
ServerName localhost:80
7. Apacheコマンド集
コマンド:内容
sudo apt install apache2:Apache Webサーバーのインストール(apt)
sudo yum install httpd:Apache Webサーバーのインストール(yum)
sudo dnf install httpd:Apache Webサーバーのインストール(dnf)
sudo zypper install apache2:Apache Webサーバーのインストール(zypper)
sudo httpd -v:Apache Webサーバーのバージョンを表示
sudo apache2 -v:Apache Webサーバーのバージョンを表示
sudo httpd -V:Apache Webサーバーのバージョンを表示(コンパイル情報含む)
sudo apache2 -V:Apache Webサーバーのバージョンを表示(コンパイル情報含む)
sudo httpd -t:設定ファイルのシンタックスチェック
sudo apache2ctl -t:設定ファイルのシンタックスチェック
sudo systemctl start httpd:Apache Webサーバーを起動
sudo service httpd start:Apache Webサーバーを起動
sudo systemctl start apache2:Apache Webサーバーを起動
sudo service apache2 start:Apache Webサーバーを起動
sudo systemctl enable httpd:Apache Webサーバーを有効化
sudo chkconfig httpd on:Apache Webサーバーを有効化
sudo systemctl enable apache2:Apache Webサーバーを有効化
sudo chkconfig apache2 on:Apache Webサーバーを有効化
sudo systemctl restart httpd:Apache Webサーバーを再起動
sudo service httpd restart:Apache Webサーバーを再起動
sudo systemctl restart apache2:Apache Webサーバーを再起動
sudo service apache2 restart:Apache Webサーバーを再起動
sudo systemctl status httpd:Apache Webサーバーのステータスを表示
sudo service httpd status:Apache Webサーバーのステータスを表示
sudo systemctl status apache2:Apache Webサーバーのステータスを表示
sudo service apache2 status:Apache Webサーバーのステータスを表示
sudo systemctl reload httpd:設定ファイルを再読込
sudo service httpd reload:設定ファイルを再読込
sudo systemctl reload apache2:設定ファイルを再読込
sudo service apache2 reload:設定ファイルを再読込
sudo systemctl stop httpd:Apache Webサーバーを停止
sudo service httpd stop:Apache Webサーバーを停止
sudo systemctl stop apache2:Apache Webサーバーを停止
sudo service apache2 stop:Apache Webサーバーを停止
sudo httpd -h:Apache Webサーバー制御コマンドのヘルプを表示
sudo apache2 -h:Apache Webサーバー制御コマンドのヘルプを表示
systemctl -h apache2:Apache Webサーバー制御コマンドのヘルプを表示
8. Apache と Tomcatの違い

「Apache HTTP Server」と「Apache Tomcat」の違いは以下になります。
1.目的の違い
Apache HTTP Serverは、Webサーバーとしての役割を果たします。主な目的は、テキスト、HTML、画像、音声、動画などの静的ファイルを提供することです。Apache Tomcatは、アプリケーションサーバ(APサーバ)に分類されます。通信相手がどのクライアントか、そのクライアントがログインしているかどうか、前回の通信でそのクライアントが何をしたかによって、提供するコンテンツを変化させる役割を担っています。
2.前提条件の違い
Apache HTTP Serverは、Windows、Linux、UNIXなどのコンピュータでインストールできます。Apache Tomcatの導入には、Java Development Kit(JDK)のインストールと環境変数「JAVA_HOME」の適切な設定が必要です。
3.アーキテクチャの違い
Apache HTTP ServerとTomcatのアーキテクチャは異なります。Apache HTTP Serverは、 Webサーバーとしての役割を果たします。
Apache Tomcatは、Java Servletを実行する機能を持つWebコンテナとしての役割を担っています。
簡単に言えば、Apache HTTP Serverは静的ファイルの提供に特化し、一方でApache Tomcatは動的なWebアプリケーションの実行に適しています。
9. まとめ
Apacheは簡単にインストールできると知りました。メリットが多く世界的にも使用されている有名なWebサーバーの一つだということも知りました。
この記事を読んだ方が少しでも理解していただけたら幸いです。