Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

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上の構築作業はこんなに面倒なのか?" 考えられる理由と しては、二つあります。

  1. Windows では、まだソースを自由に共有することを好む開発者の大規 模なコミュニティが広まっていません。結果として、そのような開発 をサポートするために必要な基盤を構築する作業が行われていません。 利用可能な大部分のものは、UNIXから必要なユーティリティを移植し たものです。この経緯のいくつかが時々でてきますが、驚かないで下 さい。

  2. ほとんど全ての手順は、"実行し、忘れる"形式で記述されています。 このため、端末の前に座り、以下の手順にできるだけそのまま従って試 して見て下さい。

準備

始める前に、ダウンロードしなければならないものが大量にあります...

  • 初めての場合、Cygwin toolkit を最も近い cygwin ミラーサイトから入手して下さい。これには、構築処理に使用される 標準的なGNUユーティリティの多くが含まれています。

  • 必要な残りの構築ツールをPHPサイトhttp://www.php.net/extra/win32build.zipからダウンロードします。

  • PHPで使用されるDNS名レゾルバ用のソースコードを http://www.php.net/extra/bindlib_w32.zipで入手します。これは、 win32build.zipに入っている resolv.libの代替品です。

  • unzipユーティリティをまだ持っていない場合、これが必要になりま す。フリー版をInfoZipで入手可能です。

最後に、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のエントリがあることを確認 して下さい。(エントリを追加するには、リストの最後の空白行を選 択し、入力して下さい)典型的なエントリは次のようになります。

    • c:\cygnus\bin

    • c:\php-win32build\include

    • c:\php-win32build\lib

    OKを押し、Visual C++を終了して下さい。

  • 他のディレクトリを作成し、unzip bindlib_w32.zipをそこで行って下さい。デバッ グシンボルを利用可能とする(bindlib - Win32 Debug) かしない (bindlib - Win32 Release)かを決め手下さい。 次のように適当な設定で構築を行って下さい:

    • GUIユーザの場合は、VC++を起動し、ファイル => オープンワー クスペースをオープンし、bindlibを選択して下さい。続いて、 構築=>アクティブな構成を選択を選択し、好きな設定を選択し て下さい。最後に ビルド=>全てリビルドを選択して下さい。

    • コマンドライン版のユーザの場合、C++ 用の環境変数が定義されて いるかどうかを確認して下さい。もしくは、 vcvars.batを実行し、続いて次のうちのどれ かを実行して下さい。

      • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

      • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

    • この時点で、サブディレクトリDebug また はReleaseに利用可能な resolv.lib があるはずです。このファイル を win32build\lib ディレクトリの同名の ファイルに上書きコピーして下さい。

コンパイル

最良の方法は、まずstandalone/CGI 版を構築することです。

  • GUIユーザの場合、VC++を起動し、ファイル => ワークスペースを 開くを選択し、php4tsを選びます。続いて、構築=>アクティブな 構成を設定を選び、好きな設定を選択します。最後に構築=>全て 構築を選択します。

  • コマンドライン版ユーザの場合、C++ 用の環境変数が定義されている かどうかを確認して下さい。もしくは、 vcvars.batを実行し、続いて次のうちのどれか を実行して下さい。

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • ここまでの手順で、サブディレクトリ Debug_TS または Release_TS に利用可能な php.exe が作成されているはずです。

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.dllbzip2 圧縮関数
php_calendar.dll カレンダ変換関数(PHP 4.0.3以降は標準組込みモジュール)
php_cpdf.dllClibPDF 関数
php3_crypt.dll暗号化関数
php_ctype.dllctype 関連の関数
php_curl.dllCURL, Client URL ライブラリ関数
php_cybercash.dllCybercash 決済関数
php_db.dllDBM 関数
php_dba.dllデータベース (dbm型式)抽象化レイヤ関数
php_dbase.dlldBase 関数
php3_dbm.dllバークレーDB2ライブラリ
DOM XML 関数
php_dotnet.dll.NET 関数
php_exif.dllJPEGからEXIFヘッダを読み込む
php_fbsql.dllFrontBase 関数
php_fdf.dllForms Data Format 関数
php_filepro.dllfilepro データベースへのアクセス(読込みのみ)
php_ftp.dllFTP関数 (PHP 4.0.3以降組み込み)
php_gd.dllイメージ処理用のGD ライブラリ関数
php_gettext.dllGNU Gettext 関数
php_hyperwave.dllHyperWave 関数
php_iconv.dllICONV 文字集合変換
php_ifx.dllInformix 関数
php_iisfunc.dllIIS監理関数
php_imap.dllIMAP 4 関数(PHP 3では、php3_imap4r1.dll)
php_ingres.dllIngres II 関数
php_interbase.dllInterBase 関数
php_java.dllJava 拡張
php_ldap.dllLDAP 関数
php_mhash.dllMhash関数
php_ming.dllFlash用Ming関数
php_msql.dllmSQL クライアント
php3_msql1.dllmSQL 1 クライアント
php3_msql2.dllmSQL 2 クライアント
php_mssql.dll MSSQL クライアント (以前はphp_mssql70.dll、MSSQL DBライブラ リが必要)
php3_mysql.dllMySQL 関数(PHP 4では組込み)
php3_nsmail.dllNetscape メール関数
php3_oci73.dllOracle 関数
php_oci8.dllOracle 8 関数
php_openssl.dllOpenSSL 関数
php_oracle.dllOracle 関数
php_pdf.dllPDF関数
php_pgsql.dllPostgreSQL関数
php_printer.dllプリンタ関数
php_sablot.dllXSLT関数
php_snmp.dllSNMP get および walk 関数 (NT のみ!)
php_sybase_ct.dllSybase関数
php_yaz.dllYAZ関数
php_zlib.dllZLib 圧縮関数