はじめに
PHPを学習する前に、まずは最低限の基礎知識を学習しておきましょう。
- Webの基礎知識
- ブラウザの基本操作
- IDE(VSCodeなど)の基本操作
- HTML / CSS
参考
PHPとは
PHP(Hypertext Preprocessor)は、Web開発で高いシェアで利用されるプログラム言語です。 PHP の他にも「Ruby」「Python」「Perl」などのプログラム言語がありますが、これらはバックエンドのスクリプト言語などといわれます。
Webに特化した言語
PHP はWebに特化して作られた経緯がありHTML や Web との親和性が高く、Web開発においては他のプログラミング言語と比較して習得しやすい傾向にあります。
シェアが高く幅が広い
また、Webサーバや DBとの連携がしやすく、Webアプリ開発では実績が高く、世界的で 70-80% のサイトで利用されているともいわれています。 CMS(コンテンツマネージメントシステム) の代表である WordPress も PHP を採用しています。
クライアントとサーバ
Webアプリを開発するには、クライアントとサーバの関係について知る必要があります。
クライアント
Chrome、Safari、EgeなどのWebブラウザでHTMLファイルや画像といったコンテンツを受け取り、表示する側をクライアントといいます。
サーバ
クライアントからのURLなどのリクエストを受け取り、さまざまなコンテンツを配信する側をサーバといいます。特にHTMLや画像といったコンテンツを配信するサーバをWebサーバといい「Apache(アパッチ)」「Nginx(エンジンエックス)」といった種類があります。
静的コンテンツと動的コンテンツ
Webブラウザで表示するコンテンツには、HTML、CSS、JavaScript、その他画像コンテンツ(PNG、JPEG)などがあります。クライアントがURLでサーバにリクエストするコンテンツには、大きく 「静的コンテンツ」と「動的コンテンツ」 の2つに分類できます。
静的コンテンツ
「静的コンテンツ」は表示する内容が常に同じコンテンツです。サーバに置いたHTMLやCSSなどのコンテンツをそのままクライアントに返し、クライアントはブラウザなどで表示します。
動的コンテンツ
「動的コンテンツ」は条件によって内容が変わるコンテンツをいいます。PHPでは、Webサーバが「.php」ファイルを実行した結果を、HTMLやテキストなどに出力します。
「PHP は HTML のプリプロセッサ」などと説明されることもあります。
PHP と JavaScript の違い
Webアプリを開発するときは、PHP(バックエンド) と JavaScript(フロントエンド)は併用して開発するのが一般的です。PHP も JavaScript もプログラム処理した結果を「動的コンテンツ」として出力しますが、プログラムを実行する場所が違います。
JavaScriptはブラウザで実行
JavaScriptは、ブラウザ(フロントエンド)で .js ファイルを実行します。よって、高負荷な処理はクライアントPCに負担がかかります。プログラムソースコードは直接見ることができ、XSS(クロスサイトスクリプティング) という脆弱性が存在します。
JavaScript もバックエンドで動く?
JavaScript は基本的にフロントエンドで実行しますが、Node.jsを利用するとバックエンドのプログラムを開発できます。
PHPはバックエンドで実行
PHPは、Webサーバー(バックエンド)でプログラムを実行します。クライアントはその結果のみ受け取ります。高負荷な処理はサーバPCに負荷がかかります。サーバサイドにファイルがあるため、プログラムソースコードは直接見ることはができません。
PHP を実行するには?
LAMP・LAPP
WebサーバでPHPを動作させるには、 「Linux」「Webサーバー」「PHP」 のインストールが必要です。これらの頭文字をとった組み合わせて「LAMP」「LAPP」「LEMP」「LEPP」などの略称で呼びます。
名前 | ソフトウェア |
---|---|
LAMP | Linux / Apache / MySQL(MariaDB) / PHP |
LAPP | Linux / Apache / PostgreSQL / PHP |
LEMP | Linux / Nginx / MySQL(MariaDB) / PHP |
LEPP | Linux / Nginx / PostgreSQL / PHP |
Linux
Linux は Windows や Mac といった OSにあたり、サーバOSの世界スタンダードです。Linux にも種類(ディストリビューション)があり、RedHat系(CentOS, Fedora)や、Debian系(Debian, Ubuntu)に分かれます。
Apache
Apache(アパッチ) は歴史が長く世界中で使用されている Webサーバー(HTTPサーバー) のソフトウェアです。 オープンソースソフトウェア(OSS)で無償で提供されているため誰でも利用可能です。また、Apache と同シェアをもつ Nginx(エンジンエックス)もWebサーバとして幅広く利用されています。
MySQL(MariaDB)
MariaDB(マリアディービー) は、MySQL(マイエスキューエル) から派生したオープンソースのRDB(リレーショナルデータベースシステム) です。「列単位」で処理を行うカラム型データベースエンジンによる並列処理が特徴で、世界中でシェアが高くなっています。また、MySQL並ぶ機能を持つRDB「PostgreSQL(ポストグレス)」MySQL同様に高いシェアで利用されています。
PHP
PHPはオープンソースのスクリプトプログラム言語で、主にサーバサイドのプログラミングで利用されています。歴史が長くWebプログラミングでとても高いシェアを誇り、HTMLとの親和性もとても高い言語です。