前提条件
.Webアプリを開発し、誰もが使える状態にすることを目的とする
.開発環境、Web構造(ざっくり3層構造のクライアント、Webサーバー.APサーバー.データベースサーバー)
.サーバーにデプロイするために開発する必要があり、それがあることが前提であること(意識しなくてもまぁ良いことは良い)
.サーバーに関する知識←←
→Apacheとは
.Apacheソフトウェア財団によって開発されたOSSのこと
.Webサーバソフトウェアの一つ
OSSとは...オープンソースソフトウェアの略称
ソースコードが公開されていて無償で使用できるソフトウェア
→Apacheの役割
・Webサーバソフトウェアの一つ。
Webサーバソフトウェアについて...
・Webサーバとは、Webページを表示させるために必要なデータの保管場所で、そのデータを送受信することができる。
・サーバの種類について
ハードウェア と ソフトウェア の2種類が存在する
→ハードウェアはソフトウェアやデータベースを格納する。
『超ハイスペコンピュータ』のこと
→ソフトウェアはWebサーバ、データベースサーバ、メールサーバ。ファイルサーバなどデータを保管する場所のことで、正しく処理するためのプログラムを指す。『サーバOS』と呼ばれることもある
サーバー機能を提供するソフトウェアのこと
・サーバーについて
そもそもサーバーという名の機器は無く、
*コンピューター(ハードウェア)のサーバーについては、『サーバーコンピューター』『サーバーウェア』と呼ばれる
*ソフトウェアのサーバーについては、『サーバーソフト』『サーバーウェア』と呼ぶ
https://www.acrovision.jp/tech/?p=403
・モジュールを使った機能拡張がある。
→120種類以上がリリースされている
→モジュール名は「mod_拡張対象となる機能」と言った書式で記載される
・PHPとの相性
→PHPよはWEBサイトの開発で使われるバックエンドのプログラミング言語であり、サーバー上で動作という点がApacheとの共通点である。そのためApacheにPHPをインストールすることが多々ある。
PHP自体もApache上での開発を可能にするので、Apache関数というのが存在する
・Apacheの特徴とメリット
→OSを選ばずに動作する。
→→アプリケーションやシステムによってはOSの種類で不具合が生じることがあるが、Apacheは複数のOSで動作するので汎用性が高い
→オープンソースなので無償で使用可能*(深掘りしたい。)
→→サーバーのレンタルやドメインの取得には費用が発生するが、ホームページやブログの解説をしたいケースにおいては最適である
→処理速度が早い
→→HPの表示や動的コンテンツのだおうさがスムーズに処理できるので、規模の大きいサイトでも快適に動作を実現しやすい。かつPHPやデータベースとの連携もしやすく、CMsを動かすのが容易
CMSとは
Webサイト運営に係るコストと時間を削減できるツール
役割→専門的知識がなくても、コーディングが不要で、サイトのコンテンツを保存し、管理マネジメントをする。
→機能が豊富
→→オフィシャルで公開されているものをはじめ、ユーザーが独自で開発したものも少なくない
必要な機能を自由に搭載できるカスタマイズ性も優れている点だ
動作の安定性やセキュリティ性の高さなども利点である
技術情報が多いので習得しやすい
・デメリット
→複数のデータ処理を実行すると、動作が重くなりがちである
→→「C10K問題」(クライアント1万台問題)...同時接続するクライアント多すぎてサーバーパンクした事例
→→→メモリ上でプログラムに与えられる「プロセス番号」は符号付き16ビット整数と決まっている。つまり1〜32767までの番号がう割り当てられるので、一つのリクエストに足して、1つのプロセスを生成するサーバーだと、約3リクエストが最大の同時接続であるとのこと
ハードウェアの性能上で問題がなくても、アーキテクチャ(設計)によってはソフトウェアの上限値が引っかかるっちゅうこと
→つまり同時接続が多くなると想定される場合は不向きではある
→サポートや保証が存在しない
→→技術的な問題はリソースが多い分対処はしやすいだろう
・どんな用途に向いているのか?
→個人サイトや企業ブログのように、あらゆるサイトを開発するというようにオールマイティに対応するときに
❌SNSとかみたいに同時アクセスが多くなると想定される場合は向いていない