Windowsシステムへのインストール
    本節は、Windows 95/98/Me及びWindows NT/2000/XPに適用します。PHPが
    Windows 3.1のような16ビットのプラットフォームで動作することは期待
    できません。サポートされるWindowsプラットフォームをWin32と呼ぶこと
    があります。
   
    PHPをWindowsにインストールするには、マニュアルインストールとイ
    ンストーラInstallShieldによる方法
    の2種類があります。
   
    Microsoft Visual Studioを持っている場合、オリジナルのソースコード
    からPHPを 構築するこ
    とも可能です。
   
    WindowsシステムにPHPをインストールした後、機能を追加するために
    様々な拡張モジュールの
    ロードを行う可能性があります。
   
Windows InstallShield
     CGIバージョンのPHPをインストールする Windows 用 PHPインストーラが、
     http://www.php.net/から取得可能で、IIS、PWS、
     Xitamiの場合、Webサーバーの設定も同時に行われます。InstallShield
     インストーラはPHPを動作させるための簡便な方法ですが、例えば、拡張
     モジュールの自動設定ができないといった制約がいくつかあることに注
     意して下さい。
    
     使用するHTTPサーバーをシステムにインストールし、
     完全に動作するようにして下さい。
    
     インストーラを実行し、インストールウイザードの指示に従って下さい。
     2種類のインストール方法がサポートされています。一つ目は standard
     で、設定の選択肢についてデフォルト値が示されます。もう一つは
     advanced で、選択肢について質問が行われます。
    
     インストールウイザードは、php.ini ファイルを
     設定し、Web サーバーでPHPを使用するように設定するに必要な情報を集
     めます。IIS と NTワークステーションにおける PWS の場合、スクリプ
     トマップ設定を有するサーバーの全ノードのリストが表示され、PHPスク
     リプト用マッピングを追加したいと思う場所のノードを選択することが
     可能です。
    
     インストールが一旦完了すると、インストーラはシステムを再起動する
     か、または、単にPHPの使用を開始するかを聞いてきます。
    
| 警告 | 
      このPHPの設定は安全ではないことに注意して下さい。安全にPHPを設定
      したい場合、マニュアルでインストールし、オプションを注意深く設定
      する方が良いでしょう。この自動設定はPHPのインストールを瞬時に行
      うことを可能としますが、オンラインのサーバで使用するためのもので
      はありません。
       | 
マニュアルのインストール手順
     このインストール手順は、Windows上のWebサーバにPHPを手動でインストー
     ル、設定する際の手助けとなるものです。http://www.php.net/にあるダウンロードページからzip
     バイナリアーカイブをダウンロードする必要があります。この手引の
     オリジナル版は、Bob Silvaによりコンパイルされており、http://www.umesd.k12.or.us/php/win32install.htmlにあります。
    
     この手引は、以下の環境へのマニュアルインストールをサポートします。
     
	Personal Web Server 3または4以降
       
	Internet Information Server 3 または 4以降
       
	Apache 1.3.x
       
	Omni HTTPd 2.0b1 以降
       
        Oreilly Website Pro
       
        Xitami
       
        Netscape Enterprise Server, iPlanet
       
    
     Windows用のPHP 4にはCGI実行版(php.exe)と(php4isapi.dllのような)複
     数のSAPIモジュールの2種類があります。後者の形式はPHP 4で新たにサ
     ポートされたもので、性能の著しい改善といくつかの新機能が提供され
     ます。しかし、SAPIモジュールは、まだ、製品の品質には達していない
     ことに注意して下さい。その理由は、PHP SAPIモジュールがPHP 4で新た
     に導入されたマルチスレッド版のPHPコードを使用しており、完全に安定
     していると判断されるまではテストや改良がまだ行われておらず、僅か
     な既知のバグも存在するためです。他方、実用サイトで実際に実行して
     いるということは把握していませんが、SAPIモジュールにより非常に良
     い結果も報告されています。短期的には解決策は変化する可能性があり
     ます。絶対的な安定性を求める場合、SAPIモジュール版の性能を犠牲に
     CGI実行版の安定性を高めることになります。
    
     SAPIモジュールのどれかを選択し、Windows 95で使用する場合には、
     必ずDCOMアップデートをMicrosoft
     DCOM ページからダウンロードして下さい。ISAPIモジュールの
     場合、ISAPI 4.0対応のWebサーバが必要です(IIS 4.0、PWS 4.0、IIS
     5.0でテストされています)。IIS 3.0 はサポートされていません。ネー
     ティブなPHPサポートを利用したい場合には、Windows NT 4.0 オプショ
     ンパックをIIS 4.0込みでダウンロードし、インストールする必要があり
     ます。
    
     以下の手順は、個々のサーバーに関する手順の前に行う全てのインストー
     ルに共通する必須のものです。
     
        配布ファイルを好きなディレクトリに展開して下さい。
 	c:\php\が、良い例です。
       
	PHPが使用するDLLが確実にみつかるようにする必要があります。正し
	いDLLは、使用するWebサーバやPHPをCGI版もしくはサーバモジュール
	のどちらで実行するかに依存します。
        php4ts.dllは常に使用されます。サーバモジュー
	ル(例:ISAPIまたはApache)を使用する場合、
	sapiにある関連するDLLが必要となります。
	PHP拡張モジュールのDLLを使用する場合も同様にこれらが必要となり
	ます。DLLが見つけられるように、システムディレクトリ
	(例:winnt/system32または
        windows/system)にコピーするか、Webサーバ
	が使用するPHPの実行ファイルまたはDLL(例:php.exe,
	php4apache.dll)と同じディレクトリに置くことができます。
       
        PHPバイナリ、SAPIモジュール、及びいくつかの拡張モジュールは、
        実行時に外部DLLを必要とします。配布アーカイブに含まれるこれら
        のDLLをWindows PATHに設定されたディレクトリに置くようにして下
        さい。最も確実なのは、ファイルをシステムディレクトリ、つまり、
	以下の場所にコピーすることです。
	
| Windows 9x/MEの場合は、c:\windows\system | 
| Windows NT/2000の場合は、c:\winnt\system32 | 
| Windows XPの場合は、c:\windows\system32 | 
	コピーするファイルを以下に示します。
        | 
          'php4ts.dll', 既に存在する場合は上書して下さい。
          | 
| 
	  配布中の'dlls'ディレクトリにあるファイル。
	  システムにこれらが既にインストールされている場合、何かが正し
	  く動作しなくならない場合にのみ上書して下さい。(上書きする前
	  にバックアップをとるのが良いでしょう。)
          | 
       
	特にMicrosoft Windows 9x/NT4を使用している場合には、
	使用するプラットフォーム用のMicrosoft Data Access
        Components(MDAC)の最新版をダウンロードして下さい。
	MDACは、http://www.microsoft.com/data/で入手可能で
	す。
       
 	'php.ini-dist' を Windows 9x/Meの場合は、
	'%WINDOWS%' ディレクトリ、Windows NT/2000/XPの場合は、
	'%SYSTEMROOT%'ディレクトリコピーし、
	'php.ini' にリネームして下さい。
	'%WINDOWS%' または '%SYSTEMROOT%'ディレク
	トリは、通常、次のようになります。
        
| Windows 9x/ME/XP では、c:\windows | 
| NT/2000サーバーでは、c:\winnt または c:\winnt40 | 
       
	zipファイルには、二つのiniファイル、
        php.ini-distおよび
        php.ini-optimizedが含まれています。
	php.ini-optimizedを使用するこ
        とが推奨されます。これは、このファイルは性能及びセキュリティに
        関してデフォルトの設定が最適化されているためです。
	最善の方法は、iniの設定
        を全て学習し、ユーザが全ての要素をマニュアルで設定する
        ことです。デフォルトの設定でもPHPは動作しますが、最高のセキュ
        リティを得たい場合には、この方法を選択すると良いでしょう。
       
        'php.ini' ファイルを編集して下さい。
        
 	   'extension_dir' の設定値を php-install-dir または
 	   'php_*.dll' を置いた場所に変更する必要があります。
 	   例えば、c:\php になります。
          
	   Omni Httpd を使用している場合、次の手順には従わないで下さい。
 	   'doc_root' に Web サーバーのドキュメントルートを設定して下
 	   さい。例: c:\apache\htdocs または c:\webroot
          
	   PHP 実行開始時にロードしたいモジュールを選択して下さい。こ
	   れらのモジュールをロードするためには、'extension=php_*.dll'
	   の行からコメントを外します。
	   スクリプトの中でdl()を使用することにより
	   動的にモジュールをロードすることもできます。
           Windows
           拡張モジュールに関する節を参照下さい。
          
	   PWS と IIS においては、browscap.iniを
	   次のように指定することができます。:
 	  Windows 9x/ME では 'c:\windows\system\inetsrv\browscap.ini'、
	   NT/2000サーバーでは、'c:\winnt\system32\inetsrv\browscap.ini'
    XPでは'c:\windows\system32\inetsrv\browscap.ini'
          
       
	Windows版アーカイブで配布されているmibsディ
	レクトリには、SNMP用サポートファイルが含まれています。このディ
	レクトリをDRIVE:\usr\mibs
	(DRIVEはPHPをインストールしたドライブです。)
	に移動して下さい。
       
        PWSを使用する場合はwebrootに実行権限を与えてください:
        
           PWSウェブマネージャを起動します
          
           "Home"ディレクトリのプロパティを編集します
          
           "実行"チェックボックスをチェックします
          
       
    ソースからの構築
     説明する前に、次の質問に答えておきましょう。
     "なぜ、Windows上の構築作業はこんなに面倒なのか?" 考えられる理由と
     しては、二つあります。
    
       Windows では、まだソースを自由に共有することを好む開発者の大規
       模なコミュニティが広まっていません。結果として、そのような開発
       をサポートするために必要な基盤を構築する作業が行われていません。
       利用可能な大部分のものは、UNIXから必要なユーティリティを移植し
       たものです。この経緯のいくつかが時々でてきますが、驚かないで下
       さい。
      
       ほとんど全ての手順は、"実行し、忘れる"形式で記述されています。
       このため、端末の前に座り、以下の手順にできるだけそのまま従って試
       して見て下さい。
      
準備
      始める前に、ダウンロードしなければならないものが大量にあります...
     
      最後に、PHP 4自体のソースが必要となります。最新の開発版を
      anonymous CVSにより
      snapshot または ソース のtarアー
      カイブを入手可能です。この際、tarおよびgzipの解凍を行うだけでな
      く、Microsoft Visual C++がエラーを発生しないように
      *.dspおよび*.dswファ
      イルの復改文字をCRLFに変換する必要があります。
     
注意
       構築処理の際にプロジェクトが見付けられるように
       Zend および TSRMディ
       レクトリをphp4ディレクトリの中に置いて下さ
       い。
      
ツールのインストール
	選択したunzipユーティリティのインストール手順に従って下さい。
       
        setup.exe を実行し、指示に従って下さい。
        c:\cygnus以外のパスにインストールした場合、
        構築処理時にCygwin環境変数を設定して下さい。
	Windows 95/98 の場合、環境変数の設定はautoexec.batに一行追加す
        ることにより可能です。Windows NTの場合、マイコンピュータ
        => コントロールパネル => システムに移動し、環境変数タブ
        を選択します。
       
| 警告 | 
	 Cygwin用にテンポラリディレクトリを作成して下さい。さもないと
         多くのコマンド(特にbison)はエラーとなります。
	 Windows 95/98の場合、mkdir C:\TMPとし
         ます。Windows NTの場合、
         mkdir %SystemDrive%\tmpとします。
          | 
	ディレクトリを作成し、そこで、unzip
	win32build.zipを行います。
       
	Microsoft Visual C++を実行し、メニューからツール
        => オプションを選択します。ダイアログで、ディレクトリタブを
        選択します。順番にExecutables, Includes, Library filesにドロッ
        プダウンを変更し、それぞれのリストの中に、
        cygwin\bin,
        win32build\include,
        win32build\libのエントリがあることを確認
        して下さい。(エントリを追加するには、リストの最後の空白行を選
        択し、入力して下さい)典型的なエントリは次のようになります。
       
        OKを押し、Visual C++を終了して下さい。
       
	他のディレクトリを作成し、unzip
        bindlib_w32.zipをそこで行って下さい。デバッ
        グシンボルを利用可能とする(bindlib - Win32 Debug) かしない
        (bindlib - Win32 Release)かを決め手下さい。
        次のように適当な設定で構築を行って下さい:
       
	  GUIユーザの場合は、VC++を起動し、ファイル => オープンワー
	  クスペースをオープンし、bindlibを選択して下さい。続いて、
	  構築=>アクティブな構成を選択を選択し、好きな設定を選択し
	  て下さい。最後に ビルド=>全てリビルドを選択して下さい。
	 
          コマンドライン版のユーザの場合、C++ 用の環境変数が定義されて
          いるかどうかを確認して下さい。もしくは、
          vcvars.batを実行し、続いて次のうちのどれ
          かを実行して下さい。
         
	  この時点で、サブディレクトリDebug また
	  はReleaseに利用可能な
	  resolv.lib があるはずです。このファイル
	  を win32build\lib ディレクトリの同名の
	  ファイルに上書きコピーして下さい。
	 
コンパイル
      最良の方法は、まずstandalone/CGI 版を構築することです。
     
      PHPをMicrosoft IISに組み込む際に必要なコードを構築するためには、
      上記の手順を php4isapi.dsp
      (sapi\isapiにあります)で繰り返して下さい。
     
Windows 用拡張モジュールのインストール
     PHPおよびWebサーバをWindowsにインストールした後、特定のモジュール
     を使用したくなる場合もあるでしょう。以下の表に現在のWindowモジュー
     ルを示します。マニュアルインストール手順で説明したように、PHPを起
     動する際に 'extension=php_*.dll' の行のコメントを外すことにより、
     ロードするモジュールを選択することが可能です。
     スクリプトの中でdl()を使用することにより、モ
     ジュールを動的にロードすることも可能です。
    
     PHP拡張モジュールのDLLには、PHP 4の場合、前に'php_'(PHP 3の場合は、'
     php3_')が付いています。これにより、PHP拡張モジュールを他のサポー
     ト用ライブラリと混同することが防止できます。
    
注意
      PHP 4.0.6では、BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, 
      Session, WDDX, XML サポートが組み込まれています。これらの関数を
      使用する際に、拡張モジュールをロードする必要はありません。組込済
      モジュールのリストについては、配布ファイルの
      README.txt または
      install.txtを参照下さい。
     
     
表 3-1PHP 拡張モジュール
| php_bz2.dll | bzip2 圧縮関数 | 
| php_calendar.dll | 
	  カレンダ変換関数(PHP 4.0.3以降は標準組込みモジュール)
	  | 
| php_cpdf.dll | ClibPDF 関数 | 
| php3_crypt.dll | 暗号化関数 | 
| php_ctype.dll | ctype 関連の関数 | 
| php_curl.dll | CURL, Client URL ライブラリ関数 | 
| php_cybercash.dll | Cybercash 決済関数 | 
| php_db.dll | DBM 関数 | 
| php_dba.dll | データベース (dbm型式)抽象化レイヤ関数 | 
| php_dbase.dll | dBase 関数 | 
| php3_dbm.dll | バークレーDB2ライブラリ | 
 | DOM XML 関数 | 
| php_dotnet.dll | .NET 関数 | 
| php_exif.dll | JPEGからEXIFヘッダを読み込む | 
| php_fbsql.dll | FrontBase 関数 | 
| php_fdf.dll | Forms Data Format 関数 | 
| php_filepro.dll | filepro データベースへのアクセス(読込みのみ) | 
| php_ftp.dll | FTP関数 (PHP 4.0.3以降組み込み) | 
| php_gd.dll | イメージ処理用のGD ライブラリ関数 | 
| php_gettext.dll | GNU Gettext 関数 | 
| php_hyperwave.dll | HyperWave 関数 | 
| php_iconv.dll | ICONV 文字集合変換 | 
| php_ifx.dll | Informix 関数 | 
| php_iisfunc.dll | IIS監理関数 | 
| php_imap.dll | IMAP 4 関数(PHP 3では、php3_imap4r1.dll) | 
| php_ingres.dll | Ingres II 関数 | 
| php_interbase.dll | InterBase 関数 | 
| php_java.dll | Java 拡張 | 
| php_ldap.dll | LDAP 関数 | 
| php_mhash.dll | Mhash関数 | 
| php_ming.dll | Flash用Ming関数 | 
| php_msql.dll | mSQL クライアント | 
| php3_msql1.dll | mSQL 1 クライアント | 
| php3_msql2.dll | mSQL 2 クライアント | 
| php_mssql.dll | 
	  MSSQL クライアント (以前はphp_mssql70.dll、MSSQL DBライブラ
	  リが必要)
	  | 
| php3_mysql.dll | MySQL 関数(PHP 4では組込み) | 
| php3_nsmail.dll | Netscape メール関数 | 
| php3_oci73.dll | Oracle 関数 | 
| php_oci8.dll | Oracle 8 関数 | 
| php_openssl.dll | OpenSSL 関数 | 
| php_oracle.dll | Oracle 関数 | 
| php_pdf.dll | PDF関数 | 
| php_pgsql.dll | PostgreSQL関数 | 
| php_printer.dll | プリンタ関数 | 
| php_sablot.dll | XSLT関数 | 
| php_snmp.dll | SNMP get および walk 関数 (NT のみ!) | 
| php_sybase_ct.dll | Sybase関数 | 
| php_yaz.dll | YAZ関数 | 
| php_zlib.dll | ZLib 圧縮関数 |