[ホーム] -> [Aache + PHP + PostgreSQL 実験室]

Apache、PHP、PostgreSQL って何?

Apache とは

Apache logo

Apache は言わずと知れた高機能 Web サーバです。UNIX だけでなく、Windows でも動かすこともできるフリーなサーバです。Web サーバの中でもっとも人気のあるサーバではないでしょうか(Netcraftの調査だとシェアも一番ですね)。日本の主要サイトは、JAPACHE HTTP Server ProjectJAPAN APACHE USERS GROUP でしょうか。

モジュールを組み込むことによって、いろいろな機能を追加することができます。提供されるモジュールの中には、プロキシの機能などがあり、コンパイルするときに、これらを選んで組み込むことができます。もちろん、自分でモジュールを作成することもできます。これらのモジュールは、Apache と同じプロセス空間で動作するので、外部のプログラムを起動するものに比べ、非常に高速に動作するというメリットがあります。次の PHP もモジュールとして提供されています。

PHP とは

PHP logo

PHP は・・・。正確には言語(スクリプトインタプリタ)でしょうか。正式名称は、「PHP: Hypertext Preprocessor」で GNU などの名称と同じ再帰的な名称です。日本には、日本PHPユーザー会 といのがあり、普及にがんばっています。

特徴の一つとして、Apache のモジュールとしてコンパイルすることが出来ることでしょう。CGI の代わりに使用することができ、モジュールとして作成した場合は、Apache と同じプロセス空間で動くため、CGI に比べ高速に動作します。PHP の使い方はいたって簡単で、HTML ファイルの中で、<? ?> で囲んで PHP 言語で命令を記述することにより、サーバー側からページを送信する前に、その命令を PHP が解釈し、CGI の様にインタラクティブなページを作り出すことが出来ます。

PHP には、次に説明する PostgreSQL や、Oracle、DB2、Sybase、MySQL、ODBC などデータベースに対してのインターフェースを持っているので、PHP を使用することにより簡単にデータベースにアクセスすることができます。感覚としては、MicrosoftIIS 等で動く ASP と同じです。Windows のバイナリ版も用意されていて、Windows 版の Apache や、IIS でも動作します(ちなみに IIS 版は ISAPI でも動作)。

PHP の最新版は、4 系列です。4 系列はバージョン 4.0.6 以降は本家に日本語パッチが取り込まれたので、そのまま日本語も使えるそうです。PHP の入出力で使用する文字コードを、Shift-JISや、EUC コードに統一することができ、正規表現などに日本語を用いることができるのです。昔のバージョン(2.0 系列)では PHP/FI という名称でしたが、現在は、PHP に改められています。また、構文も多少変わっているようです。

PostgreSQL とは

PostgreSQL logo

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 のドキュメント翻訳プロジェクトなどもありますので、興味のある方は、ぜひ、参加してみて下さい。

ホームへ