m6uのエンジニアっぽい日記

PHP利用開発やFuelPHP利用開発、PostgreSQL利用開発、Androidアプリ開発、CentOS7サーバー構築など、テクニカルでエンジニアっぽい内容の日記

XAMPPおじさんが伝える、Windows10からはじめるPHPプログラミング生活:XAMPPをインストールするその前にPHPプログラミングするいろんな方法をおさらいするよ

PHPプログラミングする上で必要なことって、なに?

早くXAMPPをインストールしてプログラミングを始めたい人も多いところだと思いますが、とても基本的で基礎的で、これがわからないと躓いたときに困るのはこれを知らない理解していないあなたなので、わかっている人だけ読み飛ばしてください。
そもそもの目的は、Webページを動的に生成させてWebブラウザに表示させるため、ですよね。それによって、ユーザーが送信したデータをサーバーで記録したり集計したり、サーバー内でデータ処理した結果を集計してWebブラウザ上に表示させたいのですよね。そのためにPHP言語を使ってサーバー上で処理したいことをプログラミングするわけですよね。
そういう原理・原則から考えると、必要なものはこの3つ(以上)です。

  1. PHPコードを実行するPHP本体(や実行エンジン)
  2. Webブラウザからの入力を引き受けたり、Webブラウザへの出力をしたりするためのWebサーバー
  3. PHPコードを実行する前に事前にミスに気づけるプログラミングに適したエディター(メモ帳NOTEPAD.EXEはダメゼッタイ)
  4. Webサーバーで(PHPコードを書いた)PHPファイルを配置するためのFTPクライアント。(パソコン内で実行するときは意識しないけどね)

Windows 10パソコン上でPHPプログラミングするのに必要なことって、なに?

じゃぁ、順を追って必要なことを掘り下げていく。

Webブラウザからの入力を引き受けたり、Webブラウザへの出力をしたりするためのWebサーバー

Windowsには昔からInternet Information Server(以後IIS)という仕組みが用意されており、IISを追加することでWebサーバーを立ち上げることができるのですが、ちょっと待ってください。
PHPコードを書いて動かしますが、最終的に「どこで」動かす前提なのでしょうか。
一般的には、インターネット上に構えるレンタルサーバー上で動かすことで、一般の人でも利用できるWebサービスを提供できるわけです。
そのために、安く確保できるレンタルサーバーになるべく仕組みを近づけてテストしてから、インターネット上に公開する、これが大原則になります。
つまり、Webサーバーとしては、レンタルサーバーでも使われているApache HTTP Server(以後Apache httpdもしくはhttpd)を使っていきたいわけです。
Windows向けhttpdはApache 2.4 VS16 Windows Binaries and Modulesからダウンロードできます。記事執筆時点のバージョンはApache 2.4.43で、Win64とWin32があります。(64bit向けと32bit向けで別れています)

PHPコードを実行するPHP本体(や実行エンジン)

Windows上でPHPコードを動かすためにはPHP公式ドキュメント「Windows システムへのインストール」も参考にしつつ、私の解釈で説明を加えていきます。
PHP For Windows」を参照してもらえれば、現行の保守されているPHPを入手することができます。
この記事を執筆している時点で、7.4.7、7.3.19、7.2.31が掲載されています。
それぞれのPHPバージョンに、x64/x86とNon Thread Safe/Thread Safeの組み合わせで4種類ずつあります。PHP単体でインストールするときに大半の人はここで躓くのではないでしょうか。
x64は64bit版Windows向け、x86は32bit版Windows向けで、扱えるメモリ量が異なったり整数値の扱える範囲が変わったりするなど、興味のある方は自分で調べてみてください。
Apache httpdにPHPを組み合わせて動かすのに、httpd内で動作させるモジュール型実行とhttpdの外側で動作させるCGI型実行の2種類があります。(そろそろうんざりしてきたかな?)

閑話休題:PHPのコードを動かすだけなら、PHPビルトインウェブサーバーがカンタン

PHP公式ドキュメントの「ビルトインウェブサーバー」で説明されていますが、パソコンにPHPをとにかく仕込んで、ビルトインウェブサーバーを使いさえすれば、PHPのコードをWebブラウザからのリクエストを受け付けてレスポンスを返すことはできます。PHPを動かせるのです。
ですが、待ってください。
PHP言語の習得だけでWebサービスやWebシステムを作ることができるでしょうか。
サーバー側で動くPHPだけでなく、データベースを読み書きするためにSQL言語も扱うことも求められます。
一般的にレンタルサーバーに入っていることが多いデータベースはMySQL(もしくはMySQLからforkしたmariaDB)が使われている事が多く、これらの扱いも学ばなければとてもWebサービスやWebシステムを作り出すことはできません。
(MySQL自体のインストールなどは、ここでは割愛します。)

今日の結論:一つ一つ必要なものを組み合わせて作っていくのは、難しい話だし、とにかく手間もかかる、だから手っ取り早くXAMPP

先を急ぐ人ほど、基礎的な話をすっ飛ばしてしまいがちなので、回りくどくてもいろんな背景の話を加えましたが、ここからが本題です。
Webサーバー、データベースサーバー、PHPなど一つ一つインストールして使える状態にしていくのは、それぞれのソフトウェアに関する深い知識が必要になり、設定ごとが多く、慣れていないとうんざりします。
XAMPPを使えば、ある程度良好な状態で組み合わせて調整された状態でインストールができます。
かといって、XAMPPさえ入れればすぐスタートできるというものでもなく、調整ごとは若干あります。動かすパソコンそれぞれの状態によってはポート番号の設定変更が必要になったりしますが、まだカンタンな方です。
ということで、Windows 10にXAMPPをインストールしてWebサービスやWebシステムを作れる状態にしていく話は、また次回に。