[ホーム] -> [Aache + PHP + PostgreSQL 実験室] |
Apache は言わずと知れた高機能 Web サーバです。UNIX だけでなく、Windows でも動かすこともできるフリーなサーバです。Web サーバの中でもっとも人気のあるサーバではないでしょうか(Netcraftの調査だとシェアも一番ですね)。日本の主要サイトは、JAPACHE HTTP Server Project や JAPAN APACHE USERS GROUP でしょうか。
モジュールを組み込むことによって、いろいろな機能を追加することができます。提供されるモジュールの中には、プロキシの機能などがあり、コンパイルするときに、これらを選んで組み込むことができます。もちろん、自分でモジュールを作成することもできます。これらのモジュールは、Apache と同じプロセス空間で動作するので、外部のプログラムを起動するものに比べ、非常に高速に動作するというメリットがあります。次の PHP もモジュールとして提供されています。
PHP は・・・。正確には言語(スクリプトインタプリタ)でしょうか。正式名称は、「PHP: Hypertext Preprocessor」で GNU などの名称と同じ再帰的な名称です。日本には、日本PHPユーザー会 といのがあり、普及にがんばっています。
特徴の一つとして、Apache のモジュールとしてコンパイルすることが出来ることでしょう。CGI の代わりに使用することができ、モジュールとして作成した場合は、Apache と同じプロセス空間で動くため、CGI に比べ高速に動作します。PHP の使い方はいたって簡単で、HTML ファイルの中で、<? ?> で囲んで PHP 言語で命令を記述することにより、サーバー側からページを送信する前に、その命令を PHP が解釈し、CGI の様にインタラクティブなページを作り出すことが出来ます。
PHP には、次に説明する PostgreSQL や、Oracle、DB2、Sybase、MySQL、ODBC などデータベースに対してのインターフェースを持っているので、PHP を使用することにより簡単にデータベースにアクセスすることができます。感覚としては、Microsoft の IIS 等で動く ASP と同じです。Windows のバイナリ版も用意されていて、Windows 版の Apache や、IIS でも動作します(ちなみに IIS 版は ISAPI でも動作)。
PHP の最新版は、4 系列です。4 系列はバージョン 4.0.6 以降は本家に日本語パッチが取り込まれたので、そのまま日本語も使えるそうです。PHP の入出力で使用する文字コードを、Shift-JISや、EUC コードに統一することができ、正規表現などに日本語を用いることができるのです。昔のバージョン(2.0 系列)では PHP/FI という名称でしたが、現在は、PHP に改められています。また、構文も多少変わっているようです。
PostgreSQL (本家) (日本 PostgreSQL ユーザー会) はフリーなオブジェクト指向RDBMS です。主要な UNIX で動かせます。Windows でも動き、Cygwin 版や、日本では SOGA Telecom さんが Windows ネイティブ版を公開されています。また、Windows 用の ODBC もあり、こちらは本家から入手できます。
PostgreSQL は、Oracle の様に高機能でも、世界で一番早いわけでもありませんが、フリーな RDBMS ということで広く使われている様です。最近、かなり機能が増え、SQL 文の自由度が広がりました。ルール(制約やトリガー)もかなりまともになったようです。クラス(テーブル)の継承や、関数(ストアドプロシージャなどと呼ばれてるやつで、SQL の他に C のライブラリや、任意の言語使える)の登録などの面白い機能を備えています。また、インターフェイスライブラリは、C は当然として、C++、tcl、JDBC、Perl などが提供されています。オリジナルそのままでも、データや、テーブル(クラス)名、カラム(フィールド)名に日本語を格納することは出来ますし、有志の方による日本語パッチが本家に取り込まれたことにより、日本語による like
検索や、日本語正規表現(検索条件に正規表現が使えます)が出来るようになっています。PostgreSQL 関連のサイトを見ていると、Postgre95 などと書いてあることがありますが、これは、PosgreSQL の旧称です。
つまり、これらの組合わせというのは、PostgreSQL にデータを格納し、PHP を使用してデータにアクセスし、Apache で公開する。と、言うことです。もちろん、私も忙しかったり、技術不足な部分もあり、複雑な説明をすることはできませんが、これ以降の説明を見て「Free なソフトウェアだけで、最低この程度のことはできるのか」と感じ、興味を持って頂けたら幸です。PostgreSQL とか PHP は、かなり速いペースで開発が行われています。日本のユーザメーリングリストも活発で、毎日、初心者向けから、日本語化チームの技術情報まで、いろいろな情報交換が行われています。また、PostgreSQL のドキュメント翻訳プロジェクトなどもありますので、興味のある方は、ぜひ、参加してみて下さい。