PHPのページ
PHP (ピーエイチピー)
PHP(PHP: Hypertext Preprocessor)は、The PHP Groupによって開発・配布されているスクリプト言語です。本家サイトはこちら
ApacheなどのHttpServerのモジュールとして動作しますので、サーバーサイドのスクリプト言語といった方がよいかもしれません。
2007/3時点でV4系、V5系が平行してメンテナンスされています。
V4でZend社のEngineを組み込んで高速化が図られ、V5系ではオブジェクト指向色を強めて話題になりました。V4系までは標準データベースがMySQLでしたが、V5より軽量データベースのSQLiteとなりました。
PHPのメリットとして、(日本を含めた)利用者数が大変に多いことがあげられます。
CMS(Contents Management System)として脚光を浴びたXoops(ズープス)、プロジェクト管理ツールのdotProject(ドットプロジェクト)などがPHPで開発されています。
利用者数が多いということは、インターネット上に流れる情報量が多いことを意味しますので、開発者にとって大変都合が良いことです。
また、オープンソースで配布されるモジュールが大変多いこと、組み込み関数が充実していることも、メリットとして挙げられます。
標準モジュールとして指定されているPEAR(ペアー)、MVCツールのMaple(メイプル)やMojavi(モハビ)、テンプレートエンジンのSmarty(スマーティー)など、開発をサポートするツールも盛りだくさんです。
個人的には大変好きな言語ですが、オブジェクト指向色が強まる中で(まるで、Javaに対抗するように)DIコンテナを実装したツールなどが登場し、本来の「簡易性」、「容易性」が損なわれているような気がしています。
ダウンロードとインストール
以下は、WindowsXP上のApache2.0.55へV5.2.1を組み込んだときのメモです。本家サイトからダウンロードして、HttpServerのモジュールとして組み込みます。
Windows+Apache2環境へのPHP5のインストールでは、ダウンロードしたファイルを適当なディレクトリ(PHP_HOME)に解凍後、Apacheのhttpd.confを以下のように変更します。
LoadModule php5_module PHP_HOME/php5apache2.dll
の追加(Windows環境でもディレクトリを現すデリミッターは「/(スラッシュ)」)。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加。
php.ini
PHP_HOME/php-dist.iniをphp.iniとrenameし、以下のように変更して、WINDOWSディレクトリ下に置きます(WindowsXP)。php.iniに設定するのは、主に
- phpのincludeディレクトリ; 外部のphpプログラムをincludeしたいとき、ここにいれておく(PEARなど)。
- phpの拡張ディレクトリ; 日本語使用(mbstring)、データベースの使用、ldapの使用などの「使いたい機能」のdllが入っている場所。(windows版のphpでは、展開時に全ての実行モジュールがインストールされます。これに対し、Unix系OS版ではconfigオプションで指定してMakeする必要があります)
- 日本語の設定
php.iniファイルの構成は、php全体に関する構成、使用したい機能の選択、各機能ごとの設定、となっています。
以下に私のPCに設定した項目を列挙します。日本語はためしに、出力charsetをUTF-8にしてみました。
output_buffering = On ; 出力時のbufferingを有効にするoutput_bufferingはPHPで処理結果をいったん専用領域に蓄積しておき、処理が全て完了した時点で出力処理を行う機能のことです。出力のオーバーヘッドを軽減できるだけでなく、出力全体対して圧縮や暗号化、コード変換といった処理を施すことが可能になります。
output_handler =mb_output_handler ; 出力時のハンドラーをマルチバイト対応したものにする。
default_charset = "UTF-8" ; デフォルトのcharaセットをUTF-8にする
include_path = ".;PHP_HOME\includes" ; ここにphpプログラムを入れとくとincludeできるようになる
extension_dir = "PHP_HOME/ext/" ; ここに拡張機能のdllがある。
extension=php_gd2.dll ; (コメントアウトはずす) 描画ライブラリーを使用する。
extension=php_mbstring.dll ; (コメントアウトはずす)マルチバイト関数を使う。
extension=php_mysql.dll ; (コメントアウトはずす)マニュアルによれば、MySQL4.1以降を使う場合には、その機能を利用するために、php_mysqli.dllを使うように書かれていますが、使用する際に、「mysqli拡張がロードできません」というエラーが出てしまいます。これについては、いろいろなスレッドで対策が話し合われていますが、なかなかうまい方法がないようなので、php_mysql.dllを利用することにしています。
output_handler関数は、出力バッファに蓄積されたコンテンツをmbstring.http_output(下記)で指定する文字列に変換します。
[MuSQL]セクション
mysql.default_port =3308 ; 使用するMySQLのListenポートは3308(デフォルト3308)。extensionのところでphp_mysql.dllというデータベース接続のための拡張ライブラリーを使う宣言をしました。私の環境には、複数のMySQLをインストールしているので、デフォルトportでないListenerをつかうよ、という宣言をします。
mysql.default_host =localhost ; MuSQLの入っているのはローカルPC。
mysql.default_user =nobody ; phpから使用するユーザーID mysql.default_pw =nobody ; phpから使用するユーザーのパスワード
[mbstring]セクション
mbstring.language = Japanese ; 使用するマルチバイト言語は日本語。日本語を処理する際には、extensionのところでphp_mbstring.dllという拡張ライブラリーを使う宣言をし、このセクションを設定しなくてはなりません。phpマニュアルのmbstring関数の項へのリンクを載せておきます。
mbstring.internal_encoding = EUC-JP ; php内部の処理コードはEUC-JP。
mbstring.http_input = auto ; phpへの入力エンコーディングは自動で検出。
mbstring.http_output = UTF-8 ; phpからの出力エンコーディングはUTF-8。
mbstring.encoding_translation = On : php内部の処理コードへの変換をする。
mbstring.detect_order = auto ; その際の文字コードの検出順はauto。
mbstring.substitute_character = none ;その際に変換不能文字があったときには、置換しない。
mbstring.func_overload = 0 ; single-byte関数をmulti-bytes関数でオーバーロードしない。
phpinfo
以上の設定ができたら、以下のコードをphpinfo.php(名前はxxx.phpなら何でも良い)として、ドキュメントルートにおいてみましょう。<?php phpinfo(); ?>
そして、ブラウザからこのphpファイルを呼び出してみましょう。自分のPCに設定したのであれば、URLは
localhost/phpinfo.phpとなっているかと思います。
以下のような画面が出たら、とりあえずphpは動いているということになります。スクロールするとこまごまと沢山の設定をみることができます。mbstringなどで設定した項目などが反映されているか確認しましょう。
開発環境にphpinfoを入れておくと便利ですが、本番環境では確認後に消去しましょう。
PEAR
PEAR(PHP Extension and Application Repository;ペアー)は、PHP上で利用可能なクラス・ライブラリーです。The PEAR Groupによって管理・開発・配布されています(サイトはここ)。
PHPをインストールするとPHP_HOMEにPEARというディレクトリーができるように、PHPの標準ライブラリーといわれていて、全てPHPで記述されています。
PEARのページ
Eclipseで開発
PHPでの開発もEclipseを使うと効率的にできるようになります。PHPeclipseで楽々PHP開発
2007年03月12日(月) 17:52:02 Modified by wanderingse
添付ファイル一覧(全1件)
d4109c3e673057e2.PNG (62.71KB)
Uploaded by wanderingse 2007年03月05日(月) 13:27:07
Uploaded by wanderingse 2007年03月05日(月) 13:27:07