WINDOWS版PHP4の拡張モジュール開発手順




準備

拡張モジュールの追加


準備
手順その1

まずは、PHP4の拡張モジュールの開発に必要なものを用意します。
・Microsoft Visual C++ 6.0
こればっかりは有料です。買ってきてください。
次に、以下のものをダウンロードしてきます。
・http://www.php.net/extra/win32build.zip
・http://www.php.net/extra/bindlib_w32.zip
・http://www.php.net/downloads.php
・WinZip(http://www.info-zip.org/pub/infozip/)
・CygWin(http://sources.redhat.com/cygwin/)
1番目のアーカイブは、Windows上でコンパイルを行うためのツールです。
2番目は、PHSが使用するDNSリゾルバのソースで、このソースからresolv.libをビルドします。
3番目は、PHP本体のソースです。
4番目は、CygWinです。これは、UNIXのシェル環境をWindowsで動かすためのツールです。
最後は、WinZipです。これは、圧縮ファイルを展開するために使います。

手順その2

CygWinとWinZipをインストールしてください。
CygWinは、C:\CygWinにインストールされるはずです。

手順その3

適当なディレクトリを作ります
このとき、ディレクトリの名前は長すぎないように注意します。
例えば,C:\PHPなどが良いと思います。
ディレクトリを作ったら、次に、サブディレクトリを以下のように作ります。
win32build
bindlib_w32

手順その4

作成したディレクトリにアーカイブを展開します。
c:\PHP\win32build http://www.php.net/extra/win32build.zip
c:\PHP\bindlib_w32 http://www.php.net/extra/bindlib_w32.zip
c:\PHP PHP本体
PHP本体を展開すると、c:\PHP以下にphp-4.3.4のようなサブホルダが自動的に
作成されます。

手順その5

Visual C++を起動します。
「ツール」メニューから「オプション」を選択します。
「オプション」画面の「ディレクトリ」タブを選択します。
「表示するディレクトリ」に以下の設定をします。

実行可能ファイル C:\CygWin\bin
インクルードファイル C:\PHP\win32build\include
ライブラリファイル C:\PHP\win32build\lib

手順その6

resolv.libをビルドします。
VC++からワークスペースを開くを選択して、c:\PHP\bindlib_w32にある
bindlib.dswを選択してコンパイルします。
コンパイルできたら、resolv.libをC:\PHP\win32build\libにコピーします。

手順その7

PHP本体をビルドします。
VC++を起動し、ワークスペースを開くを選択して、c:\PHP\php-xxxxx\win32
ディレクトリの、php4ts.dsw を選択してコンパイルします。

手順その8

CLIバージョンのPHPをビルドします。
php4ts.dswのワークスペースに、「php4ts_cli」という
プロジェクトがあるので、これをアクティブにしてビルドします。
このCLIバージョンのPHPは、あとで拡張モジュールを作るときに活躍します。

CLIバージョンのPHPは、c:\PHP\php-xxx\Release_TS\cliにできます。
このPHP.EXEをc:\PHP\php-xxx\Release_TSにコピーするか、
c:\PHP\php-xxx\Release_TSの中に入っているファイルのPHP.EXE以外を
すべてc:\PHP\php-xxx\Release_TS\cliにコピーします。
Fritzは、CGI版のPHPと区別するために、後者の方法を取りました。

以上で準備は終了です
上に戻る


拡張モジュールの追加

さて、PHPの拡張モジュールを開発するために、VC++のプロジェクトを
追加するには、DOS窓からコマンドをたたいて、プロジェクトを追加しなければ
なりません。
このコマンドは、PHP用の拡張モジュールの雛形を作ってくれるので、
その後の作業が楽にできます。


手順その1

DOS窓を開いて、C:\PHP\php-xxx\extへ移動する。
c:\PHP\php-xxx\Release_TS\cli にCLIバージョンのPHP.EXEがある場合で、
新しいプロジェクト「my_new_proj」を追加する場合、
c:\PHP\php-xxx\Release_TS\cli\php.exe ext_skel_win32.php --extname=my_new_proj
という具合にコマンドを入力します。
処理が終わったら、extディレクトリ以下に目的のプロジェクトができていることを
確認します。

手順その2

上記手順で作成したプロジェクトをVC++に登録します。
VC++を起動し、ワークスペースを開くを選択して、c:\PHP\php-xxxxx\win32
ディレクトリの、php_modules.dswを選択します。
そして、「プロジェクト」メニューの「プロジェクトをワークスペースへ挿入」を選び、
先ほど作ったプロジェクトをワークスペースへ追加します。

これで、新しい拡張モジュールを開発する準備が整いました。
上に戻る




戻る