🌏

Webサーバー(apache2)をEnvaderで立ててみた。

2022/04/16に公開

いつもお世話になっているEnvaderを利用して、WebサーバーのApache2をLinux上に立てるといった経験をしたので、その振り返りとまとめです。

あくまでEnvaderを通して体験した事なので、足らないことなどがあるかも知れませんがご了承ください。

Envaderとは何?という方のためにリンクを貼っておきますので、よかったら参考までに。
ざっくり紹介すると、Linux環境の構築が不要で、ブラウザを利用してLinuxが学べてしまうオンライン学習サービスです。

簡単に始められて解説も丁寧にされているので、良く利用させていただいてます。

Envader

コース一覧

今回使用したシナリオ

参考にさせていただいた記事一覧

【2022年】世界/日本のWebサーバーシェアランキング【Apache、Nginx、LiteSpeedの人気】

【apache】起動系コマンドまとめ(Debian系/RedHat系別)

コマンドラインからapacheを起動/停止/再起動する

LinuxでApacheドキュメントルートを見つける方法

Apacheとは?

私たちのパソコンやスマートフォンなどから送られるHTTP/HTTPSリクエストに対して、HTMLやcss,JavaScriptなどの情報を返してくれる仕事をしてくれるソフトウェアのこと。

このWebサーバーがないと、私たちが検索しても見たいホームページなどが表示されない事態になってしまう、かなり重要なポジションのソフトウェアですね。

Webサーバーにも複数の種類があるのですが、その中の一つがApacheになります。

余談になりますが、勝手にアメリカが発端なのかと思っていたら、実はイギリスにApacheソフトウェア財団なる組織があり、そこが管理されているみたいです。

2020年7月の時点では全世界の40%のシェア率を誇っていたみたいですが、現在ではライバルであるNginxにシェアを抜かれてしまったみたいです。

下記参考記事
https://manuon.com/webserver-share-ranking/

よく紹介されるWebサーバー達

代表的なサーバーソフトウェアの種類は下記3つ

  • Apache
    • OSSのWebサーバーで、正式名称はApache HTTP Server
    • 2022年4月現在 シェア率30.1%
    • マルチプロセッシングモジュールを採用していて、1つのスレッドごとに新しいプロセスを起動する方式。
    • 動的なコンテンツの処理に適していて、 CGIやPHPなどに向いている。
  • Nginx
    • アメリカのサンフランシスコに本社がある。
    • 2022年4月現在 シェア率31.7% トップ
    • こちらもOSSで無料で使える。
    • イベント駆動モデルを採用。
    • シングルスレッドを採用しているため、1つのプロセスが複数の処理を行うことができる。
  • IIS
    • OSSではないため、有料。
    • Windows用のWebサーバー。
    • 正式名称はInternet Information Services
    • GUIで動かせるのがメリットと言われている。

Apacheのインストールを体験

さて、少しだけ各Webサーバーの特徴に触れましたが、ここからはEnvaderを利用して実際にLinux環境にApacheを導入していきます。

Apacheをインストールするコマンド

ちなみに今回の環境はOSがDebian系のため、aptコマンドを使用しますが、他のOSに関しては適宜コマンドを置き換えて見てください。

sudo apt install apache2

こいつを叩くとズラズラーっとたくさんインストールされていきます。
なんか良くわからないけど、かっこいい。

Apacheのバージョンを確認してみる

バージョンを確認するコマンドはこちら

envader@172-19-2-11:~$ sudo apache2ctl -v
Server version: Apache/2.4.25 (Debian)
Server built:   2022-03-18T12:54:25

しっかりインストールが完了していて、バージョンの確認もできました。

Apache2の起動状態を確認する

service apache2 status
apache2 is not running ... failed!

当然なのですが、現在はまだ起動させていないのでエラーになります。

Apache2を起動する

 service apache2 start
Starting Apache httpd web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.19.2.11. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00091: apache2: could not open error log file /var/log/apache2/error.log.
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.

何やらエラーが出ています。
Permission deniedと言われているので管理者権限が必要ということでしょうか?
試しにsudoをつけてコマンドを叩いて見ます。

# sudoをつけてコマンドを実行
sudo service apache2 start
Starting Apache httpd web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.19.2.11. Set the 'ServerName' directive globally to suppress this message
.

# 無事サーバーが起動した。
envader@172-19-2-11:~$ service apache2 status
apache2 is running.

ちなみに、serviceコマンドによりapache2を立ち上げてきますが、こちらはapache2ctlコマンドでも起動できるようです。
apache2ctlコマンドはapache2をコントロールするコマンドで、serviceコマンドは焼酎プログラムのサービスを制御するコマンドのイメージです。

このWebサーバーをブラウザで表示する

上記でWebサーバーを起動させることができましたので、ブラウザでこちらにアクセスしてみます。

Envader画像

なんか優しい感じがしますね。

無事にサーバーを表示させることができました。

ドキュメントルートの存在

Envaderでも解説されているのですが、このWebサーバーにアクセスした時にブラウザに表示させるためには、ドキュメントルートと呼ばれる場所に表示させたいファイルを配置しておく必要があります。

デフォルトでは、アクセスが来た際に/var/www/htmlを参照されるように設定されているようです。

ちゃんと設定ファイルに、アクセスが来た際にはここを参照してくださいね!という指定がされているため、配置したファイルが表示されるようになっているんですね。

この設定ファイルの場所については、使用しているディストリビューションによって違いがあるみたいなのですが、今回はDebianを使用しているので、/etc/apache2/sites-available/000-default.conf内にありました。

一部を抜粋するとこんな感じです。

/etc/apache2/sites-available/000-default.conf
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

こちらを書き換えることで、ドキュメントルートを変更することも可能になります。

まとめ

今回は、Envaderを利用して、WebサーバーのApacheをインストール~起動までを実践しました。

  • Apache
  • Nginx
  • IIS

など複数の種類のWebサーバーがあり、それぞれに特徴があること。
ドキュメントルートなるものが存在して、そこに表示させたいファイルを配置すること。
さらにドキュメントルートは設定によって変更ができること。

今後の人生において、必ず使うことになると思うので、時が来たらこの記事に戻ってこようと思います。

最後まで読んでいただきありがとうございました。

Discussion