Windows上でのPHPのコンパイル

PHPを用いたWebアプリケーションの構築に際して、どうしても使用したい拡張モジュールがあったのだが、あいにく現在、Windonws版PHPで利用可能な拡張モジュールのバイナリを提供するPECL4WINが閉鎖(リニューアル?)中ということで、他にWindowsPHP向け拡張モジュールの入手方法が見つからず、やむなくソースコードからのコンパイルを試みることに。
・・・と、比較的軽い気持ちで着手してみたのだが、これが思った以上に困難を極めた。拡張モジュールをコンパイルするにも、まずPHPの本体からコンパイルしてモジュールを適合させるべき環境を作成しなければならず、ただ単一のモジュールだけをコンパイルすれば済むという問題ではなかったようなのである。
まぁ…コンパイラ型のプログラム作成に際しては当然のことなのかもしれないが、インタプリタ型のプログラム作成に慣れてしまっている身としては、この辺りの感覚が完全に欠如してしまっていたので、正直ちょっと面を食らった感じであった。
とは言え、久々にコンパイル処理などを経験して、改めて学ぶこと、考えさせられることも多く、いい勉強にはなったとは思う。PHP自体の構造についてもより深く知ることができ、今後のPHPを用いた開発に活かせる部分が多大にあったのではないかと考える。

今回、PHPコンパイルを行うにあたって、多くの参考情報をWebから取得したが、”Windows上でのPHPコンパイル”という分野に関する情報というのは思った以上に少なく、特に日本語による文献となるとさらに限られ、自分自身、情報収集には大変苦労した。そうした経験もあり、今後、同様のタスクを経験する人のためにも、少しでも多くの情報を提供できたらと考え、今回の経過で自分の経験した事柄を以下に書き留めておく。

ただまぁ、正直、”必要な拡張モジュールの取得”という目的の達成だけであれば、PECL4WINが生きてさえいれば、ホンの10秒程で解決できたであろう問題でもあるので、もしPECL4WINの機能が復活しているのであれば、そちらを頼るべきである。(因みに、今後PECL4WINはPECLと機能統合される模様*1
また、以下のタスクを遂行したところで、必ずしも良い結果を得られるとは限らない*2し、途中で挫折してしまう可能性すら考えられる。
特に勉強目的、個人的な興味での利用などの場合に参照されるべきと考え、正式な製品リリース目的として用いるのは極力避けるべきと考える。
最悪、以下のタスクを実行するくらいであれば、そもそもOS環境をWindowsではなくLinux等の他の環境に移行することを考えた方が得策であるかもしれないので、その点あらかじめ注意を付け加えておく。

*1:http://www.php.net/archive/2008.php#id2008-12-10-1

*2:自分自身も”とりあえず使える”レベルのものを作成できた程度であり、正直、信頼性という面では不安が残る。公式リリースのバイナリ対応版の拡張モジュールが利用可能になれば、そちらに移行する予定。