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 圧縮関数 |