miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

Windows で PHP をコンパイルするのがやたら簡単になってる件

WindowsPHPコンパイルするのはやたら面倒だったんだけど、wiki.php.net の Windows Specific Internals DocsGet 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

PHPWindows アプリを作ろうとしている変態さん(※褒め言葉。自分で pervert って言ってるし。)による解説。先頭のページもこのページのコメント欄で知った。

この人は GTK2 で GUI アプリケーション作ろうとしてるけど、そういえば wxPHP のほうが楽だったりはしないのかなぁ。使ったこと無いけど。

SourceForge.net: wxPHP

ステップ実行したいだけなら

自分で PHPコンパイルする目的もいろいろあると思うけど、

ユメのチカラ: 大規模ソフトウェアをgdbを利用して微視的視点から理解をする

でやってるようなブレークポイント設定→ステップ実行を行いたいだけであれば、コンパイル環境を整える必要はありません。

PHP: Downloads ページに Win32 Debug Pack というのがあって、この中身が .pdb ファイルになっているので、これを .exe と同階層においてやって、Visual C++ なんかでプロセスにアタッチしてやればちゃんとステップ実行できます。Linuxgdb 使うよりある意味楽なんじゃないかと。

(2012-04-03 追記)

PHPScript を .php と .phps のどちらと関連付けるか迷ったけど、よく考えたら PHPScript の場合は簡単で、.phps に関連付けるべき。

と書いていたけど、.phps は ApachePHP のソースを表示する際の拡張子として利用されているんですね・・・。とりあえずリンク。