2003-09-03:apache/IIS + PHP + PDFlib on Win XP Pro

[2004/01/12追記]
情報が古くなったので改訂版を書いています。こちらではなく改訂版を参照してください。
http://www.kaisei.org/person/waasuke/apache_iis_php_on_winxpsp1/です。


Windows上での apache と PHP の組み合わせなんて、いままでまったく興味も持ってこなかったけど、どうやら仕事でやらなければいけないみたいなので手元の WinXPPro なマシンに入れてみました、というおハナシ。
しかし仕事の案件は apache ではなく IIS になりそうな予感。。。

執筆時点での各バージョンは apache_1.3.28, php-4.3.2, PDFlib-5.0.1。

お役立ちリンク

[2003/09/06追記]
あっさり IIS でのお仕事になってしまたので、タイトルを変更し、IIS についての記述を追加。
私にとってはいったん apache + PHP + PDFlib の環境を作ってからの IIS + PHP + PDFLib 環境構築になったわけだが、はじめから apache を入れずに IIS で行こうという向きにも意味あるような記述を目指しているつもり。
もともとのタイトルは「apache + PHP + PDFlib on Windows XP Professional」でした。

ページ内リンク


apache編

apache のインストール

http://httpd.apache.org/download.cgiから apache_1.3.28-win32-x86-no_src.msi を持ってきて、ダブルクリック。
インストーラが立ち上がるので、指示通りに。とくにむずかしいことはなし。
complete でインストールしよう。

デフォルトで C:\Program Files\Apache Group\apache\ にインストールされる。
インストーラがとりあえず apache を起動してくれるので、ブラウザから http://localhost/ にアクセスして確かめる。

PHP のインストール

http://www.geocities.jp/rui_hirokawa/php/win/から廣川さんに感謝しつつ php-4.3.2-Win32-mb-1.1.lzh をダウンロード。
解凍したフォルダの名前を php にして、C:\Program Files\Apache Group\apache\php に移動。
phpフォルダの中身を以下の様に移動する。

  • C:\Program Files\Apache Group\apache\php\php4ts.dll を C:\WINDOWS\system32\ へ
  • C:\Program Files\Apache Group\apache\php\dlls\* を C:\WINDOWS\system32\ へ
  • C:\Program Files\Apache Group\apache\php\php.ini-recomended を C:\WINDOWS\php.ini へ

DLL ファイルをちゃんと移動しておかないと apache が「ほにゃらら.dll がみつからない!」と怒って起動してくれない。
この apache が吐くメッセージの DLL ファイルと、みつからない DLL ファイルは違うものだったりするので要注意だ。

続けて移動した先の php.ini の編集。主なものは以下の感じ。
PDFlib についての記述も入れている。

extension_dir = "C:/Program Files/Apache Group/apache/php/extensions/
extention=libpdf_php.dll
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = auto
mbstring.script_encoding = SJIS

apache の httpd.conf の修正も必要。
スタートメニューから Configure Apache Server でメモ帳で httpd.conf を開けたりする。
直接 C:\Program Files\Apache Group\apache\conf\httpd.conf をお好みのエディタで編集してももちろん OK。
主な項目は以下の通り。

 LoadModule php4_module php/sapi/php4apache.dll
 AddModule mod_php4.c
 AddType application/x-httpd-php .php

どこに書くか、はいいかな。
それぞれ LoadModule とか AddModule とか AddType とか同じような項目を設定している近傍に書きましょう。

PDFlb のインストール

http://pdflib.jp/products/pdflib/download/から PDFlib-5.0.1-Windows.zip をダウンロード。
PDFlib は商用のライブラリなので、ライセンスキーは別途取得しておくこと。
なくても使えなくはないけどね。テスト程度には。

PDFlib-5.0.1-Windows.zip を解凍して、できたフォルダの中の
bind\php\php421\libpdf_php.dll を C:\Program Files\Apache Group\apache\php\extensions\
へ移動する。

apache の再起動

無事に再起動が通ったら .php なファイルに phpinfo() とでも書いて試してみよう。


IIS編

IIS のインストール

IIS はマイクロソフトの製品、というか Windows のコンポーネントの一部という位置づけなのかな。
ふつーはデフォルトでは入っていないので、明示的に入れようとしなければ組み込まれていないはず。
穴が多くて悪名高いし。とりあえず、

IIS のインストールが完全に終了するまで当該マシンを外部に晒さないこと!

ということを注意しておこう。私は内ネットのさらに内ネットで作業していた。
わからなかったらとりあえずネットワークケーブルを引っこ抜こう。
Nimda や CodeRed にやられないように。

インストールはコントロールパネルから。
[コントロールパネル]→[プログラムの追加と削除]から左側の[Windowsコンポーネントの追加と削除]を選ぶ。
[インターネット インフォメーション サービス(IIS)]というのがあるので必要なコンポーネントにチェックを入れて(いらないものはチェックをはずして)インストール。
私は FTP とか SMTP とかはいらないのでチェックをはずした。
途中、Windows XP のディスクが要求されるので用意しておくこと。

インストールが終わったら再起動

めんどくさいけど再起動は windows 文化なのでガマンガマン。

IIS の設定は[コントロールパネル]→[パフォーマンスとメンテナンス]→[管理ツール]→[インターネット インフォメーション サービス]から。
[インターネット インフォメーション サービス]を選んで開いた窓の左側のツリーをたどり「既存のWeb」のプロパティでいろいろ設定をする。
上の方にある再生・停止・一時停止ボタンなどで起動・停止。
とりあえずは停止させておこう。

PHP のインストール

http://www.geocities.jp/rui_hirokawa/php/win/から廣川さんに感謝しつつ php-4.3.2-Win32-mb-1.1.lzh をダウンロード。
解凍したフォルダの名前を php にして、C:\php に移動。
phpフォルダの中身を以下の様に移動する。

  • C:\Program Files\php\php4ts.dll を C:\WINDOWS\system32\ へ
  • C:\Program Files\php\sapi\php4isapi.dll を C:\WINDOWS\system32\inetserv\ へ
  • C:\Program Files\php\dlls\* を C:\WINDOWS\system32\ へ
  • C:\Program Files\php\php.ini-recomended を C:\WINDOWS\php.ini へ

[コントロールパネル]→[パフォーマンスとメンテナンス]→[管理ツール]→[インターネット インフォメーション サービス]の「既存の web」のプロパティで以下のように設定。

  • ISAPIフィルタタブで[追加]→フィルタ名「PHP」・実行ファイル「C:\WINDOWS\system32\inetserv\php4isapi.dll」
  • ホームディレクトリタブで[構成]→[追加]→実行ファイル「C:\WINDOWS\system32\inetserv\php4isapi.dll」・拡張子「.php」・「ファイルの存在を確認しない」

PDFlb のインストール

http://pdflib.jp/products/pdflib/download/から PDFlib-5.0.1-Windows.zip をダウンロード。
PDFlib は商用のライブラリなので、ライセンスキーは別途取得しておくこと。

PDFlib-5.0.1-Windows.zip を解凍して、できたフォルダの中の
bind\php\php421\libpdf_php.dll を C:\php\extensions\ へ移動する。

php.ini の編集

C:\WINDOWS\system32\php.ini の編集。PDFlib と mbstrings まわり。

extension_dir = "C:/php/extensions/
extention=libpdf_php.dll
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = auto
mbstring.script_encoding = SJIS

IIS の再起動

再起動して、phpinfo(); とでも書いた PHP ファイルが正常に実行されるか確認。