PHP Hypertext Preprocessor
PHPとは「PHP Hypertext Preprocessor」略です。PHPとは「PHP Hypertext Preprocessor」の略です。そして開発当初は「Personal Home Page」の略でした。そして開発当初は「Personal Home Page」の略でした。
名前の通り、PHPを使ってホームページを作ることは、HTMLとCSSのみを使ってサイトを作る場合と比べてかなりのコーディングを簡素化出来るため、Webサイトを制作するにはとても重宝します。
なのでPHPは、Webサイトを学ぶ人にはおすすめのプログラミング言語です。
このトップページではそのPHPについて、
- PHPはどんなプログラミング言語でどういうことが出来るのか
- PHPの動作環境を構築する方法はどんな方法があってどんな技術が必要なのか
- PHPの開発環境と本番環境の流れはどうなのか
PHPの魅力と内容について
PHPを触り始めて10年。PHPを触り始めた当初からPHPの素晴らしさに夢中になり、このサイトはWordPressや既存のフレームワークを使わず、素のPHPをクラス化したものとデータベースを使って作っています。
PHPも最初は難しかったですが、出来るようになればWebサイトを無駄なく素早く綺麗にまとめることが出来るので、魅力的なプログラミング言語の一つだと思っています。
PHPは、単体でもHTMLのコーディングを簡素化出来たりメールフォームなどのCGI機能が使えたりするのでメリットは多いですが、HTMLやCSSやJavaScript以外に、データベースやLinuxを扱えるようになると、より本領を発揮することができます。
当サイトでは、それらを総合的にまとめて行っています。
PHPはどんなプログラミング言語?
PHPは、数あるプログラミング言語の中でもWebプログラミングに特化した言語です。Webプログラミング言語はPHPの他に、PerlやPython、RubyやJavaなどがあり、JavaやPythonなどはデスクトップアプリの開発にも利用できますが、PHPはWebアプリ専用のプログラミング言語と言っていいくらいです。
その分PHPはWebプログラミングには特化しており、2020年現在では、全Webサイトの使われているプログラミング言語の中で約79%はPHPが使われているという統計が出ています。
なのでPHPを贔屓するわけではないですが、他の言語も場合によってはメリットあったりしますが、PHPの需要はWeb系では断然高いと思います。
Webプログラミング言語を分類すると、ブラウザで動作するクライアントサイドのWebプログラミング言語と、サーバー側で動作するサーバーサイドのWebプログラミング言語に分けられますが、PHPは後者のサーバーサイドのWebプログラミング言語になります。
サーバーサイドのプログラミング言語は、データベースと組み合わせることによってより力を発揮することが出来ますが、PHPも同じです。
PHPのメリット
HTML内に埋め込む事ができる
PHPはHTMLの中に組み込む事が出来るので、HTMLの書式に混ぜ合わせて記述することが出来ます。フレームワークのViewテンプレートや、Smartyなどのテンプレートエンジンを使わなくても、HTML内に埋め込めるので、臨機応変にプログラミングすることが出来ます。
WordPressがPHPで出来ている
あと現代ホームページ制作の基盤となっているWordPressもPHPで出来ているので、長い間Web界隈では人気のプログラミング言語となっているのも一つの要因でしょう。WordPressはPHPで出来たCMSの一つなので、誰でも無料でインストールして使うことが出来ます。フレームワークがたくさんある
さらにPHPは、フレームワークが多く存在します。フレームワークとは開発を素早くするためにプログラムを機能ごとに階層構造でまとめられて呼び出しやすくしたひな形のようなもので、大体のシステム開発やアプリケーション開発はフレームワークを使って開発されます。いくつかPHPのフレームワークを挙げてみると、
- Laravel
- CakePHP
- Symfony
- Zend Framework
- CodeIgniter
- FuelPHP
そのためPHPは書籍やネットでの情報もかなり多く、分からないことがあった場合にすぐに調べて解決に繋がることが多いです。
PHPで何ができる?
PHPは、普段見ているWebサイトのほとんどのことがPHPで実現可能です。例えば、
- 会員登録制のログインサイト
- じゃらんのような予約システム
- 楽天ショップのようなショッピングカート
- 掲示板サイト
- メール送信プログラム
そしてYoutubeやTwitterサイトのような大規模なWebアプリも作れたりします。
逆に数ページしかないサイトでも、ヘッダーやフッター、サイドナビなどの共通部分を一つにしたりすることが出来たりするので、Webサイトの更新の手間が省けます。
ただ、iPhoneアプリやスマホアプリやデスクトップアプリなどのネイティブアプリはPHPでは作れません。
PHPはブラウザを通して閲覧出来るサイトならほとんど作ることが可能ということです。
PHPはデータベースと連携して力を発揮する
PHPは、PHP単体でも楽しいですが、データベースを理解すれば、かなり用途が広がります。データベース設計や、その連携の方法を理解すれば、たった一つのロジックで数100ページ、数1000ページ、数万ページを表現することが出来ます。
データベースは、
- MySQL
- MariaDB
- PostgreSQL
- Oracle Database
- SQLite
- MongoDB
その中でもオープンソースのデータベースであるMySQLやMariaDBがPHPと相性が良いとされています。
なぜ相性が良いのかというと、PHPで作られたphpMyAdminという、MySQLやMariaDBを操作出来るツールがあるのが大きな理由の一つです。
そのphpMyAdminはWindowsで開発環境を構築するためのXAMPPやMacで開発環境を構築するためのMAMPなどにデフォルトで備わっており、更に多くのレンタルサーバーにもphpMyAdminが備わっています。
なのでPHPユーザーとしては扱いやすく、ネットでの情報も豊富にあるので安心して使うことが出来ます。
そしてMySQLとMariaDBは開発元が同じで兄弟関係のような存在で、phpMyAdmin内でもその二つのデータベースは互換性があるので、操作しやすくなっています。
そのためPHPを学習する際には、MySQLかMariaDBを合わせて学ぶと良いでしょう。
しかし2020年現在は、MariaDBの開発が中心にされていっています。
最新のphpMyAdminにはMySQLではなくMariaDBが入っているので、今から学ぶとすればMariaDBを学ぶことをおすすめします。
PHPの開発環境の構築
HTMLやCSS、そしてJavaScriptはブラウザで作動する言語なので、テキストエディターでコーディングしてブラウザで閲覧すれば動作の確認は出来たのですが、PHPはサーバー側で作動する言語なのでサーバーが必要です。そこで、WindowsにもMacにも、通常デフォルトではサーバーは備わっていないので、ローカル環境のパソコンにサーバーを構築する必要があります。
サーバーにはいくつか種類があり、
- Webサーバー
- メールサーバー
- DNSサーバー
- データベースサーバー
- FTPサーバー
Webサーバーは、以前はApacheが主流でしたが、現在ではnginxが主流となってます。
データベースサーバーは、以前はMySQLが主流でしたが、現在ではMariaDBが主流となっています。
XAMPP・MAMP・LAMP
PHPの開発環境を整える方法はいくつかありますが、その中でもサーバーやデータベースなども合わせて構築できる環境といえば、XAMPPやMAMPやLAMPが良いでしょう。- XAMPPとは
- XAMPPとは、Windowsでサーバーが構築出来るパッケージのことで、パッケージに含まれるApacheというWebサーバーとMySQLもしくはMariaDBというデータベースサーバー、PHPとPerlの頭文字などを取ってXAMPPと言います。
- MAMPとは
- MAMPとは、Mac環境でサーバーが構築出来るパッケージのことで、パッケージに含まれるApacheとMySQLもしくはMariaDBとPHPの頭文字を取ってMAMPと言います。
- LAMPとは
- LAMPとは、Linux環境でサーバーが構築出来るパッケージのことで、パッケージに含まれるApacheとMySQLもしくはMariaDBとPHPの頭文字などを取ってLAMPと言います。
開発環境とインストールについて
シンプルにWindowsユーザーならXAMPP、MacユーザーならMAMPをインストールすれば基本的に開発環境を作れます。ただ、本番環境は大概Linuxです。
WindowsやMacだと、LinuxではないのでもちろんLinuxコマンドは打てません。
そこで開発環境にLinuxを構築したい場合は、WindowsもしくはMacのパソコンにLinuxを直接インストールするか、仮想環境を使ってLinuxをインストールする方法があります。
ただ、Linuxコマンドは特に必要なかったり、単にWordPressの開発環境を整えたかったりするだけなら、XAMPPやMAMPで十分です。
目安の一つですが、WordPressなどを使って共用サーバーでWebサイトの運用を考えている場合はXAMPPやMAMP、がっつりコマンドとかも触ってVPSでWebサイトの運用を考えている場合はLinuxをインストールくらいに考えておけば大丈夫だと思います。
多くの共用サーバーは、コントロールパネルが備わっており、Linuxを直接分からなくても一通りの設定が出来るからです。
いきなりVPSを触るよりは、まずは共用サーバーに慣れつつサイトやサーバー周りの仕組みを知ってからの方が良いでしょう。
開発環境にはLinuxは必要ない場合
開発環境にLinuxは特に必要ない場合は、WindowsならXAMPP、MacならMAMPをインストールしましょう。開発環境にLinuxを導入したい場合
まだまだ開発環境にはXAMPPやMAMPも使われていますが、最近はApacheよりもnginxが主流なのもあってなのか、Linuxをインストールした上でnginxを導入して、開発環境を構築するケースも増えているようです。- パソコンそのものをLinuxにする
- パソコン全体がLinuxになるので、元々入っていたOSは使えなくなります。もちろん元々入っていたアプリケーションソフトも使えなくなります。
もう元々入っていたOSは必要ないのでLinux専用のパソコンにしよう、と思った場合にはおすすめの方法です。 - 仮想環境の中でLinuxにする
- 仮想環境を作ってLinuxをインストールする場合は、元々のOSやアプリケーションソフトも利用出来ます。
元々のOSやアプリケーションソフトも使いたいし、その上でLinuxの開発環境も整えたいという場合におすすめの方法です。
なお、仮想環境を構築するソフトは以下のようなものがありますが、カーネル部分をホストOSと共有するDockerがリソースも少なく利用出来るので人気です。
XAMPPやMAMPでの開発環境の構築
XAMPPやMAMPをインストールすると、Apache、MySQLもしくはMariaDB、PHPがインストールされています。開発環境の準備はこれで揃っています。
それでは、まずサイトが表示される仕組みを見ていきましょう。
ローカルサイトが表示されるまで
まずはローカルサイトが表示されるまでの仕組みです。開発環境を整えるには、まずGoogle ChromeやSafariなどのブラウザで、サイトを表示出来なければなりません。
例えば「sample.com」といったサイトを作ろうとします。その場合、開発環境であるローカルサイトに「sample.com」という開発環境を作りたくなります。ただそうしてしまうと、きちんと「sample.com」というドメインを取得して本番環境にアップした時にもローカルサイトである「sample.com」を見に行ってしまいますのでローカルサイトは「sample.local」などにしておく必要があります。
では何故そうなるのでしょうか?
ブラウザにアクセスした時にサイトを見に行く順番
ブラウザからサイトを見た時は、通常であればインターネットを介して、インターネット上に公開してある様々なWebサイトを閲覧出来ます。実はこの時、インターネット上に公開されてあるサイトを表示させる以前に、見に行くところがあります。
それはhostsファイルです。
hostsファイルとはどういうものかというと、ドメインとIPアドレスを結びつけるものです。
ドメインとIPアドレスを結びつけるものといえばDNSサーバーが思い当たると思いますが、hostsファイルは簡単に言うとDNSサーバーの簡略版みたいなもので、単にIPアドレスとドメインが記述されているだけのファイルです。
ブラウザからのURLアドレスの命令を受けると、まずはそのhostsファイルを見に行き、該当のドメインの記述がなければ、インターネットを見に行くわけです。
ちなみにWindowsのhostsファイルは、
Windows\System32\drivers\etc\hosts
にあり、Macのhostsファイルは
/private/etc/hosts
にあり、Linuxのhostsファイルは
/etc/hosts
にあります。
ホストとバーチャルホスト
ホストとは主役のことで、localhostとは自分自身を指します。ローカルとはローカルコンピューターのことで、現在利用しているもしくは直接利用できるパソコンのことを言います。hostsファイルには、おそらく初期状態では
「127.0.0.1 localhost」
とのみ記載されているでしょう。
これは、localhostというサイトは127.0.0.1というIPアドレスにあるサーバーを見に行って欲しいということを表しています。
127.0.0.1というのはネットワーク業界で「ループパック」という特別なものを表します。
ループバックアドレスは自分自身という意味を表し、同じパソコン内にあるサーバーという意味です。
余談ですが、ローカルネット内の別のパソコンにサーバーを構築していて、そちらのパソコン内にあるサイトを見に行きたい場合は、例えば192.168.11.2などの、そのパソコンに割り当てて固定しているIPアドレスを記述します。(通常デフォルトではDHCPなので固定する必要があります)
今回は、同じパソコン内でのサーバー構築なので、ローカルサイトを作る際には、このhostsファイルに127.0.0.1として追加していけば良いです。
ホストは、デフォルトでは一台のパソコンに自分自身一つしかないのですが、それを仮想的に複数のホストを作ることが出来る。それをバーチャルホスト機能と言います。通常サーバーにはバーチャルホストの機能は付いていて、Apacheにもあります。バーチャルホストを設定すると、複数のローカルサイトを構築することができ、その場合hostsファイルには、
127.0.0.1 サイトURL1
127.0.0.1 サイトURL2
127.0.0.1 サイトURL3
の形で追加していきます。
Apacheの設定
さて、仕組みがわかったら、今度はWebサーバーであるApacheの設定です。Apacheの設定ファイルはhttpd.confファイルになります。
ファイルの場所は、XAMPPをインストールしたxamppフォルダ配下の、
xampp\apache\conf\httpd.conf
にあります。
サーバーを触ったことがなければ、最初はこの設定に頭を痛めるかと思います。
おそらく最初は500行くらいあって読むのも嫌になりますが、ほとんどがコメントや、あと不用な設定もあるので、上手くまとめれば100行以内に納められます。
※書きかけ