Windows で PHP をコンパイルするのはやたら面倒だったんだけど、wiki.php.net の Windows Specific Internals Docs で Get ready to compile php on windows in 10 mins として紹介されている方法であっさりコンパイルできて噴いた。いつか blog ネタにしようと手元に書き溜めてた 200 行くらいに渡る試行錯誤メモは一体・・・。
なんでこんな簡単かと思ったら、--disable-all でデフォルトで on になっているライブラリをすべて無効にしてるのがポイントみたい。--disable-all したくない場合は、以下の URL が参考になりそう。
PHP5.2.9をWindowsでコンパイル - Paradigm Shift Design
ひとつ気をつけるのは、Windows SDK 6.1 をちゃんと入れること。「Visual C++ 2008 Express Edition に SDK 入ってるからいいやー」と手を抜くとこんなエラーになってしまう。
- configure.js のタイミングで・・・
Checking for mc.exe ...
- コンパイル時に・・・
"" -h win32\ -r Release_TS\ -x Release_TS\ win32\build\wsyslog.mc '-h' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
これは Visual C++ 2008 EE 付属の SDK(6.0A?)に Message Compiler (Windows)(mc.exe)が入ってないから。ちゃんと SDK 6.1 を入れて、そっちのコマンドプロンプトを起動しましょう。
PHPScript をコンパイルする手順も書こうと思ったけど、長くなるので別項で。
以前参考にしていたページ
まだ役に立つかわからないけど、当時参考にしてたページも一応リンクを貼っておく。
How to Compile PHP5.2 and PHP-GTK2 on Windows using Visual C++ Express | Dreaming of Dawn
PHP で Windows アプリを作ろうとしている変態さん(※褒め言葉。自分で pervert って言ってるし。)による解説。先頭のページもこのページのコメント欄で知った。
この人は GTK2 で GUI アプリケーション作ろうとしてるけど、そういえば wxPHP のほうが楽だったりはしないのかなぁ。使ったこと無いけど。
ステップ実行したいだけなら
自分で PHP をコンパイルする目的もいろいろあると思うけど、
ユメのチカラ: 大規模ソフトウェアをgdbを利用して微視的視点から理解をする
でやってるようなブレークポイント設定→ステップ実行を行いたいだけであれば、コンパイル環境を整える必要はありません。
PHP: Downloads ページに Win32 Debug Pack というのがあって、この中身が .pdb ファイルになっているので、これを .exe と同階層においてやって、Visual C++ なんかでプロセスにアタッチしてやればちゃんとステップ実行できます。Linux で gdb 使うよりある意味楽なんじゃないかと。