PHPはどうやって動いているの?仕組みから環境づくりまで

2014年6月6日(金)
野田 貴子

ここからは、PHPを使って、先ほどのプロフィール画面でリアルタイムで年齢が表示されるようにしてみましょう。

先ほどのリクエストとレスポンスが、どのように変わるでしょうか。

1. ユーザーがブラウザに、表示したいURLを伝える(クリックで拡大)
2. ブラウザがサーバーに、欲しい情報について伝える(リクエスト)(クリックで拡大)

今回は、profile.phpを見たいと言われました。PHPファイルの場合は、HTML文書のように内容をそのままでは送りません(あらかじめサーバーでPHPについての設定が必要です)。PHPファイルの中身をプログラムとして実行し、実行した結果として出力された内容を送ります。PHPの書き方によって、HTML文書を出力することもできますし、画像を出力することもできます。プログラムというものは、実行したときの条件によって結果が変わります。ですので、その結果出力されたHTML文書も、TPOに合わせて変化させることができるのです。

3. サーバーがブラウザに、リクエストに対する返事を送る(レスポンス)(クリックで拡大)
4. ブラウザが、レスポンスの内容を画面に表示する(クリックで拡大)

PHPのどこがいいのか

さて、PHPのほかにも同じようなことができるスクリプトはたくさんあります。PHPは1つの選択肢でしかありません。しかしPHPを選択する人が圧倒的に多いのは、PHPを選択するメリットがあるからです。

それでは、PHPの優れている点をいくつか紹介しますね。

(1)無料です

PHPにお金はかかりません。もちろんPHPを動かすためのパソコンやサーバーは必要ですが、PHP自体は無料です。

(2)自由です

PHPは、PHP言語で書かれたプログラムを実行するためのプログラムです。そのPHP本体の方の中身も自由に見ることができます。これは私たちが普段プログラムを書く上ではあまり関係のない話ですが、実はとても画期的なことなのです。普通は自社の技術を公にはしません。自分たちしか分からない技術を持っているということが、他の会社との差別化になるからです。PHPは中身が公開されていることで、技術を盗まれたり、アラを探されたりするリスクはありますが、それ以上に、どんな人でもPHPの向上に貢献できるという利点があります。

(3)環境を自由に選べます

OS
どれも同じように見えるパソコンですが、OS(Windows、Mac、Linux、Ubuntuなど)によって動くプログラム、動かないプログラムというものがあります。Windowsで作成したファイルをMacで開けない、Macから送られてきたメールが見られない、といったことがよく起こるのも、それぞれのOSの仕組みが違うためです。しかしPHPは、主要なOSであればどのOS上でも動きます。
Webサーバー
Webサイトを公開するためには、OS上にWebサーバーを作ることが必要です。Webサーバーにはいろいろな種類(Apache、IISなど)がありますが、PHPはほとんどのサーバー上で動きます。
データベース
PHPのようなスクリプトは、データベース(=データベース管理システム)を扱うことができます。データベースにも多くの種類(MySQL、PostgreSQL、SQLite、MongoDB、Oracleなど)がありますが、PHPはほとんどのデータベースを扱うことができます。

(4)有名です

世の中にはPHPを使っているシステムが溢れ、PHPで開発している人が非常にたくさんいます。多くの情報がWebサイトや書籍にまとまっていて、分からないことも調べやすくなっています。

開発環境をつくろう

お待たせしました。PHPを動かす環境を作りましょう。PHPはWebサーバー上で動きます。WebサーバーはOS上で動きます。ということは、まずはパソコンを用意しましょう。OSはあまりマニアックなものでなければ大丈夫でしょう。Windowsはお金がかかるので、いらなくなったパソコンを探し、Ubuntuを入れる人もいるみたいです。

次にWebサーバー、PHP、データベースの環境を整えますが、いろいろな事情の人がいると思いますので、以下の中から好きな方法を選んでください。

  1. パソコンに余計なものをインストールしたくない場合
  2. バラバラにインストールするのは大変なので、一度にセットアップしたい場合
  3. 開発者たるもの、自力で開発環境を作って当然ですよ、という場合

1. パソコンに余計なものをインストールしたくない場合

codepadというオンラインのコンソールを使いましょう。ただしこちらは、PHPの拡張機能が無かったり、データベースが使えなかったりします。何かコードをちょこっと動かしてみたい人は、これだけでもPHPの雰囲気を感じるには十分でしょう。その後で、2番や3番の方法を採ってもいいと思います。

2. バラバラにインストールするのは大変なので、一度にセットアップしたい場合

XAMPPというパッケージが有名です。X(クロスプラットフォーム=様々なOSのこと)、A(Apache=Webサーバー)、M(MySQL=データベース)、P(PHP)、P(Perl…このコラムでは使いません)がセットになっていて、これらを一度にインストールできるのが利点です。MySQLをブラウザ上で管理するためのソフトなど、便利な機能もいくつか付いています。しかし、それぞれのバージョンの組み合わせを選んだりすることはできません。主に学習用として使われています。
XAMPPのほかには、WAMP(Windows用)やMAMP(Mac用)がありますが、ネット上の情報が多いのはやはり、XAMPPでしょうか。

3. 開発者たるもの、自力で開発環境を作って当然ですよ、という場合

プログラムを書けるだけではプログラマーとは言えませんよね。料理人だって、料理道具は自分で揃えるものですし、自分の手に合う道具を探す必要があります。仕事内容によっては、OS、Webサーバー、PHPのバージョンなどは選べないこともありますが、PHPを書くためのエディタ(メモ帳にいろいろな機能が付いたもの)やIDE(エディタのほかにもいろいろな機能が付いたもの)は、自分に合ったものを見つけたいものです。

前置きが長くなりましたが、自分で開発環境を作る場合、以下のものが必要です。土台の大きなものから順にインストールしていきましょう。

  • Webサーバー
  • PHP
  • データベース

それぞれ何をインストールするかはお任せします。ただし、今後の内容に沿うために、PHPはバージョン5以上をインストールしてくださいね。それから注意する必要があるのは、インストールするOSの種類によって、ダウンロードするインストーラが異なる可能性があることです。ダウンロードページの概要をよく読んでください。また、WebサーバーとPHPのバージョンの組み合わせによっては、動かないものもあります。もし上手く行かなかったら、組み合わせが悪いのかもしれませんので、そのバージョンの組み合わせで検索してみてください。解決策がある場合もあります。

初めて自分で開発環境を用意する場合は、何度か壁にぶつかるかもしれません。かくいう私も、丸一日試行錯誤に費やしたことがあります。そのときは「丸一日無駄にしてしまった」と思いましたが、今思えば、そのような失敗があったからこそ、エラー時に幅広い視点で原因を探せるようになったとも思います。

さて、開発環境ができたら、次回までの宿題です。次のファイルを作成し、画面に表示してみてください。

<ファイル>

php01-hello.php

<?php
  echo “やった、やった、やったよー!”;
?>

<画面表示>

http://(設定したURL)/php01-hello.php

次回のコラムでは、実際にPHPを動かしてみます。

それではまた~。よい開発ライフを!

1983年生まれ。大学卒業後、ソフトウェア開発の営業を経て、ソフトウェア開発業務に転向。現在は自社パッケージのフロントエンド開発のほか、PHPでの受託開発案件、日→英のローカライズ案件などを担当。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています