Webサーバー(apache2)をEnvaderで立ててみた。
いつもお世話になっているEnvader
を利用して、WebサーバーのApache2をLinux上に立てるといった経験をしたので、その振り返りとまとめです。
あくまでEnvader
を通して体験した事なので、足らないことなどがあるかも知れませんがご了承ください。
Envader
とは何?という方のためにリンクを貼っておきますので、よかったら参考までに。
ざっくり紹介すると、Linux環境の構築が不要で、ブラウザを利用してLinuxが学べてしまうオンライン学習サービスです。
簡単に始められて解説も丁寧にされているので、良く利用させていただいてます。
参考にさせていただいた記事一覧
【2022年】世界/日本のWebサーバーシェアランキング【Apache、Nginx、LiteSpeedの人気】
【apache】起動系コマンドまとめ(Debian系/RedHat系別)
Apacheとは?
私たちのパソコンやスマートフォンなどから送られるHTTP/HTTPSリクエストに対して、HTMLやcss,JavaScriptなどの情報を返してくれる仕事をしてくれるソフトウェアのこと。
このWebサーバーがないと、私たちが検索しても見たいホームページなどが表示されない事態になってしまう、かなり重要なポジションのソフトウェアですね。
Webサーバーにも複数の種類があるのですが、その中の一つがApacheになります。
余談になりますが、勝手にアメリカが発端なのかと思っていたら、実はイギリスにApacheソフトウェア財団なる組織があり、そこが管理されているみたいです。
2020年7月の時点では全世界の40%のシェア率を誇っていたみたいですが、現在ではライバルであるNginxにシェアを抜かれてしまったみたいです。
下記参考記事
よく紹介される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
でも解説されているのですが、このWebサーバーにアクセスした時にブラウザに表示させるためには、ドキュメントルートと呼ばれる場所に表示させたいファイルを配置しておく必要があります。
デフォルトでは、アクセスが来た際に/var/www/html
を参照されるように設定されているようです。
ちゃんと設定ファイルに、アクセスが来た際にはここを参照してくださいね!という指定がされているため、配置したファイルが表示されるようになっているんですね。
この設定ファイルの場所については、使用しているディストリビューションによって違いがあるみたいなのですが、今回はDebian
を使用しているので、/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