本節は、Windows 95/98/Me及びWindows NT/2000/XPに適用します。PHPが
Windows 3.1のような16ビットのプラットフォームで動作することは期待
できません。サポートされるWindowsプラットフォームをWin32と呼ぶこと
があります。Windows95はPHP4.3.0以降サポートされません。
PHPをWindowsにインストールするには、マニュアルインストールとイ
ンストーラInstallShieldによる方法
の2種類があります。
Microsoft Visual Studioを持っている場合、オリジナルのソースコード
からPHPを 構築するこ
とも可能です。
WindowsシステムにPHPをインストールした後、機能を追加するために
様々な拡張モジュールの
ロードを行う可能性があります。
CGIバージョンのPHPをインストールする Windows 用 PHPインストーラが、
http://www.php.net/から取得可能で、IIS、PWS、
Xitamiの場合、Webサーバーの設定も同時に行われます。
注意:
InstallShieldインストーラはPHPを動作させるための簡便な方法ですが、
例えば、拡張モジュールの自動設定ができないといった制約が
いくつかあることに注意して下さい。サポートされる全ての拡張モジュールを
有効にするにはzipバイナリをダウンロードするしかありません。
使用するHTTPサーバーをシステムにインストールし、
完全に動作するようにして下さい。
インストーラを実行し、インストールウイザードの指示に従って下さい。
2種類のインストール方法がサポートされています。一つ目は standard
で、設定の選択肢についてデフォルト値が示されます。もう一つは
advanced で、選択肢について質問が行われます。
インストールウイザードは、php.ini ファイルを
設定し、Web サーバーでPHPを使用するように設定するに必要な情報を集
めます。IIS と NTワークステーションにおける PWS の場合、スクリプ
トマップ設定を有するサーバーの全ノードのリストが表示され、PHPスク
リプト用マッピングを追加したいと思う場所のノードを選択することが
可能です。
インストールが一旦完了すると、インストーラはシステムを再起動する
か、または、単にPHPの使用を開始するかを聞いてきます。
| 警告 |
このPHPの設定は安全ではないことに注意して下さい。安全にPHPを設定
したい場合、マニュアルでインストールし、オプションを注意深く設定
する方が良いでしょう。この自動設定はPHPのインストールを瞬時に行
うことを可能としますが、オンラインのサーバで使用するためのもので
はありません。
|
このインストール手順は、Windows上のWebサーバにPHPを手動でインストー
ル、設定する際の手助けとなるものです。このガイドのオリジナルは
Bob Silvaによってコンパイルされており、
http://www.umesd.k12.or.us/php/win32install.htmlにあります。
http://www.php.net/downloads.phpにある
ダウンロードページからzipバイナリアーカイブを
ダウンロードする必要があります。
PHP4のWindows版は、CGI版(php.exe),
CLI版(sapi/php.exe), その他のSAPIモジュールの3種類があります。
|
php4apache.dll - Apache 1.3.x モジュール
|
|
php4apache2.dll - Apache 2.0.x モジュール
|
|
php4isapi.dll -
IIS 4.0/PWS 4.0 以上のようなISAPI互換のWEBサーバ用のISAPIモジュール
|
|
php4nsapi.dll - Netscape/iPlanet モジュール
|
後者の形式はPHP 4で新たにサポートされたもので、性能の著しい改善と
いくつかの新機能が提供されます。CLIはPHPをコマンドラインスクリプトとして
使用するために設計されました。CLIに関する詳細は
PHPをコマンドラインから使用する
をご覧ください。
| 警告 |
SAPIモジュールは4.1リリース以降で著しく進化しました。しかし、
より古いシステムでは、サーバーエラーの発生や、ASPのような
サーバモジュールにおけるエラーが発生するかもしれません。
|
DCOM と MDAC の要件:
SAPIモジュールのどれかを選択し、Windows 95で使用する場合には、
必ずDCOMアップデートをMicrosoft
DCOM ページからダウンロードして下さい。
Windows 9x/NT4を使用している場合には
プラットフォームに合う Microsoft Data Access Components (MDAC)
の最新版をダウンロードしてください。MDACは
http://msdn.microsoft.com/data/からダウンロードできます。
以下の手順は、個々のサーバーに関する手順の前に行う全てのインストー
ルに共通する必須のものです。
CGIバイナリ - C:/php/php.exe -, CLIバイナリ
- c:\php\cli\php.exe -, SAPIモジュール
- c:\php\sapi\*.dll - は、メインDLLである
c:\php\php4ts.dllに依存しています。
PHPのインストールによってこれらのDLLが配置されます。
DLLの検索順序は以下のとおりです:
|
コールされたphp.exeと同じディレクトリ。
SAPIモジュールを使用している場合には、WebサーバがロードしたDLL
(e.g. php4apache.dll)と同じディレクトリ。
|
|
WindwosのPATH環境変数上のディレクトリ
|
CGIまたはSAPIモジュールのどちらのインターフェースを使おう場合であっても、
ベストな方策はphp4ts.dllを有効にすることです。
そのためには、このDLLをWindowsパス上にコピーしなければなりません。
ベストなのはWINDOWSのsystemディレクトリです:
|
c:\windows\system for Windows 9x/ME
|
|
c:\winnt\system32 for Windows NT/2000 or
c:\winnt40\system32 for NT/2000 server
|
|
c:\windows\system32 for Windows XP
|
SAPIモジュール(c:\php\sapi内の)を使用する場合で、
WindowsのシステムディレクトリにDLLをコピーしたくはない場合には、
別な方法として、php4ts.dllを解凍したzipパッケージの
sapiフォルダにコピーするという方法もあります。
次の手順はphp.iniPHP設定ファイルを正しくセットすることです。
配布されるzipファイルにはphp.ini-distと
php.ini-recommendedの二つのiniファイルが
含まれています。パフォーマンスとセキュリティの観点から
最適化されたデフォルト設定がなされているphp.ini-recommended
のほうを使うことが推奨されます。
ini settingsをよく読んで
全ての要素を自分で設定してください。
ベストなセキュリティレベルを達成するには最善の方法です。PHPはこの
iniファイルのデフォルト設定できちんと動作します。
PHPがアクセスできるディレクトリにiniファイルをコピーしてphp.iniに
リネームしてください。デフォルトではPHPはWindowsディレクトリ配下で
php.iniファイルを探します。
|
Windows 9x/ME/XPではiniファイルを
%WINDIR%, つまり
c:\windowsにコピーしてください。
|
|
Windows NT/2000ではiniファイルを
%WINDIR%または%SYSTEMROOT%
にコピーしてください。通常はc:\winntまたは
c:\winnt40です。
|
Windows NT, 2000, XP上でNTFSを使用している場合には、Webサーバーを
実行しているユーザーがphp.iniに対するアクセス権を持っている
ことを確認してください。(例えば誰でも読み込みできるようにする、等)
以下の手順は任意です。
php.iniを編集します。
OmniHTTPdを使用している場合、
次の手順には従わないで下さい。
doc_root に
Web サーバーのドキュメントルートを設定して下さい。例えば:
PHPの起動時にロードしたい拡張モジュールを選択してください。
セットアップの方法や、どのモジュールがビルトインされているかについては
Windows extensions
をご覧ください。最初のインストールでPHPが拡張モジュールなしで正常に
動作することを確認してから、php.iniを直して拡張モジュールを有効
にするほうが賢明です。
PWS と IIS においては、browscapを
次のように指定することができます。:
c:\windows\system\inetsrv\browscap.ini on
Windows 9x/Me,
c:\winnt\system32\inetsrv\browscap.ini on
NT/2000, and
c:\windows\system32\inetsrv\browscap.ini
on XP.
以上がWindows上でPHPをセットアップする基本的な手順です。
次のステップではWebサーバーを選択しPHPを実行できるようにします。
以下のWebサーバーについてのインストール手順があります:
説明する前に、次の質問に答えておきましょう。
"なぜ、Windows上の構築作業はこんなに面倒なのか?" 考えられる理由と
しては、二つあります。
Windows では、まだソースを自由に共有することを好む開発者の大規
模なコミュニティが広まっていません。結果として、そのような開発
をサポートするために必要な基盤を構築する作業が行われていません。
利用可能な大部分のものは、UNIXから必要なユーティリティを移植し
たものです。この経緯のいくつかが時々でてきますが、驚かないで下
さい。
ほとんど全ての手順は、"実行し、忘れる"形式で記述されています。
このため、端末の前に座り、以下の手順にできるだけそのまま従って試
して見て下さい。
コンパイルとビルドにはマイクロソフトの開発環境が必要です。
Microsoft Visual C++ 6.0が推奨です。ダウンロードしたファイルの解凍には
解凍ユーティリティ(例えばWinZip)が必要です。unzipユーティリティが
手元に無いのならInfoZipから無料の
バージョンを取得できます。
始める前に、ダウンロードしなければならないものが大量にあります...
最後に、PHP 4自体のソースが必要となります。最新の開発版を
anonymous CVSから、または
snapshot、あるいは
最新のリリース版sourcetarballを
ダウンロードします。
必要なパッケージを全てダウンロードしたら、
適切な位置に展開しなければなりません。
全てのファイルを最終的に展開する作業用ディレクトリを作成します。
例えばc:\work
作業ディレクトリ(c:\work)配下に
win32buildディレクトリを作成し、そこで
win32build.zipを解凍します。
作業ディレクトリ(c:\work)配下に
bindlib_w32ディレクトリを作成し、そこで
bindlib_w32.zipを解凍します。
作業ディレクトリ(c:\work)配下に
PHPのソースコードを解凍します。
Following this steps your directory structure looks like this:
以上の手順により、ディレクトリ構造は次のようになります:
c:\usr\local\libディレクトリを作成します。
bison.simpleを
c:\work\win32build\binから
c:\usr\local\libにコピーします。
注意:
Cygwinユーザーは最後の手順は省略しても
かまいません。適切にインストールされているCygwin環境は
bison.simpleとbison.exe
を持っています。
次のステップはMVC++でコンパイルする準備です。
Microsoft Visual C++を起動し、ディレクトリタブを選択します。
実行形式、include、ライブラリのファイルが順次変更されます。
以下のようになります:
実行形式ファイル: c:\work\win32build\bin,
Cygwinユーザー: cygwin\bin
Include files: c:\work\win32build\include
Library files: c:\work\win32build\lib
resolv.libライブラリをビルドしなければなりません。
デバッグシンボルを有効にする(bindlib - Win32 Debug)か
否かを(bindlib - Win32 Release)決定してください。
適切な設定をビルドします。
GUIユーザーの場合、VC++を起動し、File => Open Workspace
でc:\work\bindlib_w32でbindlib.dsw
を選択します。そしてBuild=>Set Active Configurationを選択し
お望みの設定を施してください。最後にBuild=>Rebuild All します。
コマンドラインユーザーの場合、C++環境変数が設定されているかあるいは
vcvars.batを既に実行したか、確認してください。
そして、以下のコマンドを実行します。
この時点で、使用可能な
resolv.libが
c:\work\bindlib_w32\Debugまたは
Releaseサブディレクトリのどちらかに存在します。
このファイルを
c:\work\win32build\libディレクトリの
同名のファイルに上書きコピーしてください。
最良の方法は、標準的なCGIバージョンをビルドすることです。
GUIユーザの場合、VC++を起動し、ファイル => ワークスペースを
開くを選択し、c:\work\php-4.x.x\win32\php4ts.dsw
を選びます。続いて、構築=>アクティブな
構成を設定を選び、php4ts - Win32 Debug_TS
php4ts - Win32 Release_TSから好きなほうを
選択します。最後に構築=>全て構築を選択します。
コマンドライン版ユーザの場合、C++ 用の環境変数が定義されている
かどうか、もしくは、vcvars.batを実行しているか
どうか確認してください。そしてc:\work\php-4.x.x\win32
ディレクトリから続いて次のうちのどれかを実行して下さい。
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
ここまでの手順で、サブディレクトリ
c:\work\php-4.x.x.\Debug_TS または
Release_TS に利用可能な
php.exe が作成されているはずです。
main/config.win32.hファイルを編集することで
ビルドプロセスでの細かい設定をすることが可能です。
例えば、php.iniのデフォルトの位置を変えたり、ビルトインの拡張モジュールや
拡張モジュールのデフォルトの位置を変えることができます。
次に、PHPをコマンドラインから使用する
ためのCLIバージョンを構築します。
php4ts_cli - Win32 Debug_TSまたは
php4ts_cli - Win32 Release_TSを選択すること以外は
CGIバージョンのビルド手順と同様です。コンパイルが成功すると
Release_TS\cli\または
Debug_TS\cli\ディレクトリのどちらかに
php.exeが作成されます。
注意:
PEARとその快適なコマンドラインインストーラを使用するには、
CLI-SAPIが必要です。PEARとそのインストーラに関する詳細は
PEARをご覧ください。
Microsoft IIS上でPHPアプリを構築するためのSAPIモジュール
(php4isapi.dll)をビルドするには、
アクティブコンフィグレーションをphp4isapi-whatever-config
にセットし、お望みのDLLをビルドしてください。
PHPおよびWebサーバをWindowsにインストールした後、特定のモジュール
を使用したくなる場合もあるでしょう。php.iniによって
PHPが起動する際にロードする拡張モジュールを選択することができます。
スクリプトの中でdl()を使用することにより、モ
ジュールを動的にロードすることも可能です。
PHP拡張モジュールのDLLには、PHP 4の場合、前に'php_'(PHP 3の場合は、'
php3_')が付いています。これにより、PHP拡張モジュールを他のサポー
ト用ライブラリと混同することが防止できます。
注意:
PHP 4.3.1では、BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE,
Session, WDDX, XML サポートが組み込まれています。
これらの関数を使用する際に、拡張モジュールをロードする必要はありません。
組込済モジュールのリストについては、配布ファイルの
README.txt、install.txtまたは
this tableを
参照下さい。
PHPが拡張モジュールを探すデフォルトのディレクトリは
c:\php4\extensionsです。変更するにはphp.iniファイル
を編集してください:
extension_dirを拡張モジュール
があるディレクトリに変更する必要があります。あるいは、
php_*.dllファイルをここに置いてください。
最後のバックスラッシュを忘れないでください。例えば:
php.iniに書かれている拡張モジュールを有効にするには、
php.ini上のextension=php_*.dllの行をアンコメントして
ください。有効にしたい拡張モジュールの行の ; を削除することでできます。
例 3-3. PHP-WindowsでBzip2拡張モジュールを有効にする // change the following line from ...
;extension=php_bz2.dll
// ... to
extension=php_bz2.dll |
|
いくつかの拡張モジュールでは、動作するのに外部のDLLを必要とします。
配布パッケージのc:\php\dlls\ディレクトリに
あるものもありますが、いくつかは、例えばOracle(php_oci8.dll)
は配布パッケージにバンドルされていない外部DLLを必要とします。
バンドルされているDLLをc:\php\dllsから
Windowsのパスにコピーしてください。安全な位置は:
| c:\windows\system for Windows 9x/Me |
| c:\winnt\system32 for Windows NT/2000 |
| c:\windows\system32 for Windows XP |
既にシステム上にそれらのファイルがある場合には、
うまく動かない場合にのみ上書きしてください(上書きする前に
それらのバックアップをとっておいたり、他のフォルダに移動しておくことは
ことはいいアイデアです。何か間違いがあったときのために。)
注意:
PHPをサーバーモジュールとして実行する場合に、php.iniの設定を
反映するためにWebサーバーを再起動することを忘れないでください。
以下の表は、有効な拡張モジュールと
それに必要な追加DLLのリストです。
表 3-1. PHP 拡張モジュール
| Extension | Description | Notes |
|---|
| php_bz2.dll | bzip2圧縮関数 | None |
| php_calendar.dll | Calendar変換関数 | PHP 4.0.3以降でビルトイン |
| php_cpdf.dll | ClibPDF 関数 | None |
| php_crack.dll | Crack 関数 | None |
| php3_crypt.dll | Crypt 関数 | unknown |
| php_ctype.dll | ctype family 関数 | PHP 4.3.0以降でビルトイン |
| php_curl.dll | CURL, Client URL library 関数 | Requires: libeay32.dll
ssleay32.dll (バンドル) |
| php_cybercash.dll | Cybercash payment 関数 | PHP <= 4.2.0 |
| php_db.dll | DBM 関数 | 非推奨。 DBAを代わりに使用してください (php_dba.dll) |
| php_dba.dll | DBA: DataBase (dbm-style)
Abstraction layer 関数 | None |
| php_dbase.dll | dBase 関数 | None |
| php3_dbm.dll | Berkeley DB2 library | unknown |
| php_dbx.dll | dbx 関数 | |
| php_domxml.dll | DOM XML 関数 |
PHP <= 4.2.0 requires: libxml2.dll (バンドル)
PHP >= 4.3.0 requires: iconv.dll (バンドル)
|
| php_dotnet.dll | .NET 関数 | PHP <= 4.1.1 |
| php_exif.dll | Read EXIF headers from JPEG | None |
| php_fbsql.dll | FrontBase 関数 | PHP <= 4.2.0 |
| php_fdf.dll | FDF: Forms Data Format 関数. | Requires: fdftk.dll (バンドル) |
| php_filepro.dll | filePro 関数 | Read-only access |
| php_ftp.dll | FTP 関数 | Built-in since PHP 4.0.3 |
| php_gd.dll | GD library image 関数 |
PHP 4.3.2以降で削除. GD1では使用できないことに注意。
変わりに php_gd2.dllを使用してください。
|
| php_gd2.dll | GD library image 関数 | GD2 |
| php_gettext.dll | Gettext 関数 |
PHP <= 4.2.0 requires gnu_gettext.dll (バンドル),
PHP >= 4.2.3 requires libintl-1.dll,
iconv.dll (バンドル).
|
| php_hyperwave.dll | HyperWave 関数 | None |
| php_iconv.dll | ICONV characterset 変換 | Requires: iconv-1.3.dll (バンドル),
PHP >=4.2.1 iconv.dll |
| php_ifx.dll | Informix 関数 | Requires: Informix libraries |
| php_iisfunc.dll | IIS management 関数 | None |
| php_imap.dll | IMAP POP3 and NNTP 関数 | PHP 3: php3_imap4r1.dll |
| php_ingres.dll | Ingres II 関数 | Requires: Ingres II libraries |
| php_interbase.dll | InterBase 関数 | Requires: gds32.dll (バンドル) |
| php_java.dll | Java 関数 | PHP <= 4.0.6 requires: jvm.dll (バンドル) |
| php_ldap.dll | LDAP 関数 |
PHP <= 4.2.0 requires libsasl.dll (バンドル),
PHP >= 4.3.0 requires libeay32.dll,
ssleay32.dll (バンドル)
|
| php_mbstring.dll | マルチバイト文字列 関数 | None |
| php_mcrypt.dll | Mcrypt Encryption 関数 | Requires: libmcrypt.dll |
| php_mhash.dll | Mhash 関数 | PHP >= 4.3.0 requires: libmhash.dll (バンドル) |
| php_mime_magic.dll | Mimetype 関数 | Requires: magic.mime (バンドル) |
| php_ming.dll | Ming 関数 for Flash | None |
| php_msql.dll | mSQL 関数 | Requires: msql.dll (バンドル) |
| php3_msql1.dll | mSQL 1 client | unknown |
| php3_msql2.dll | mSQL 2 client | unknown |
| php_mssql.dll | MSSQL 関数 | Requires: ntwdblib.dll (バンドル) |
| php3_mysql.dll | MySQL 関数 | Built-in in PHP 4 |
| php3_nsmail.dll | Netscape mail 関数 | unknown |
| php3_oci73.dll | Oracle 関数 | unknown |
| php_oci8.dll | Oracle 8 関数 | Requires: Oracle 8.1+ client libraries |
| php_openssl.dll | OpenSSL 関数 | Requires: libeay32.dll (バンドル) |
| php_oracle.dll | Oracle 関数 | Requires: Oracle 7 client libraries |
| php_overload.dll | Object overloading 関数 | PHP 4.3.0以降でビルトイン |
| php_pdf.dll | PDF 関数 | None |
| php_pgsql.dll | PostgreSQL 関数 | None |
| php_printer.dll | Printer 関数 | None |
| php_shmop.dll | Shared Memory 関数 | None |
| php_snmp.dll | SNMP get and walk 関数 | NT only! |
| php_sockets.dll | Socket 関数 | None |
| php_sybase_ct.dll | Sybase 関数 | Requires: Sybase client libraries |
| php_tokenizer.dll | Tokenizer 関数 | PHP 4.3.0以降でビルトイン |
| php_w32api.dll | W32api 関数 | None |
| php_xmlrpc.dll | XML-RPC 関数 | PHP >= 4.2.1 requires: iconv.dll (バンドル) |
| php_xslt.dll | XSLT 関数 |
PHP <= 4.2.0 requires sablot.dll,
expat.dll (バンドル). PHP >= 4.2.1 requires
sablot.dll, expat.dll,
iconv.dll (バンドル).
|
| php_yaz.dll | YAZ 関数 | Requires: yaz.dll (バンドル) |
| php_zib.dll | Zip File 関数 | 読み込みのみ |
| php_zlib.dll | ZLib compression 関数 | PHP 4.3.0以降でビルトイン |