| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
古い Windows システムへのインストール本章は、Windows 98/Me および Windows NT/2000/XP/2003 に適用されます。 PHP は、Windows 3.1 などの 16 ビットのプラットフォームでは動作しません。 PHP がサポートする Windows プラットフォーム を Win32 と呼ぶことがあります。
Microsoft Visual Studio などの開発環境を持っていれば、オリジナルのソースコードから PHP を ビルドすることも可能です。 Windows システムに PHP をインストールした後、機能を追加するために 拡張モジュールのロード が必要な場合があります。 手動でのインストールこの?では、Microsoft Windows 環境に PHP を手動でインストールして設定する方法を説明します。 PHP 配布パッケージの選択とダウンロードPHP バイナリの zip 版を » PHP for Windows: Binaries and Sources からダウンロードします。zip パッケージにはいくつかのバージョンがあります。 適切なバージョンを選ぶための詳細な指針が、 » ダウンロードページ にあるので、それに従いましょう。 PHP パッケージの構造と内容zip パッケージを、たとえば C:\PHP\ などのお好みの場所に展開しましょう。 zip を展開した中身は、次のようになります。 例1 PHP 5 パッケージ構造 c:\php | +--dev | | | |-php5ts.lib -- 非スレッドセーフバージョンの場合は php5.lib | +--ext -- PHP 拡張モジュールの DLL | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--extras -- 空 | +--pear -- PEAR の初期コピー | | |-go-pear.bat -- PEAR セットアップ用スクリプト | |-... | |-php-cgi.exe -- CGI 実行ファイル | |-php-win.exe -- コマンドプロンプトを開かずにスクリプトを実行する | |-php.exe -- コマンドラインの PHP 実行ファイル (CLI) | |-... | |-php.ini-development -- デフォルトの php.ini 設定 | |-php.ini-production -- 推奨される php.ini 設定 | |-php5apache2_2.dll -- 非スレッドセーフバージョンには存在しません | |-php5apache2_2_filter.dll -- 非スレッドセーフバージョンには存在しません | |-... | |-php5ts.dll -- コア PHP DLL ( 非スレッドセーフバージョンの場合は php5.dll ) | |-... PHP の zip 版に含まれているモジュールや実行ファイルの一覧をまとめました。
php.ini ファイルの変更php パッケージを展開したら、php.ini-production を php.ini という名前で同じフォルダにコピーします。 必要に応じて php.ini を別の場所に置くこともできますが、 その場合は PHP 設定ファイル にあるような設定が別途必要となります。 php.ini ファイルには、PHP の設定や動作環境についての情報を記述します。 php.ini ファイルには PHP を Windows 上で動かすための設定項目が数多く用意されています。 その中には必須でないものもあります。 また、環境に合わせて指定するディレクティブも数多くあります。詳細は php.ini ディレクティブのリスト を参照ください。 必須項目
オプションの項目
以上で、Windows への PHP のインストールが完了しました。ついで、 使用する WEB サーバー にあわせて、PHP を利用可能とするための設定を行います。 目次から使用する WEB サーバーを選択し、該当するセクションを参照してください。 PHP をウェブサーバー経由で実行するだけでなく、 .BAT スクリプトなどでコマンドラインから実行することもできます。 Microsoft IISこの?では、Microsoft Internet Information Services (IIS) への PHP のインストール手順について扱います。 Microsoft IIS 5.1 および IIS 6.0この?では、Internet Information Services (IIS) 5.1 および IIS 6.0 を手動で設定して、PHP を Microsoft Windows XP および Windows Server 2003 で動かす方法を説明します。 IIS 7.0 以降のバージョンを Windows Vista, Windows Server 2008, Windows 7 そして Windows Server 2008 R2 で動かす方法については Microsoft IIS 7.0 以降 を参照ください。 IIS で PHP リクエストを処理するための設定手動インストールの手順 での説明にしたがって、PHP をダウンロードしてインストールします。
CGI や FastCGI 固有の設定を、php.ini で以下のように行います。 例2 php.ini での CGI および FastCGI 用の設定 fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect = 0 » Microsoft FastCGI Extension for IIS 5.1 and 6.0 をダウンロードしてインストールします。32 ビット版と 64 ビット版があるので、 環境にあわせて適切なパッケージを選びましょう。 FastCGI エクステンションを設定し、PHP のリクエストを処理できるようにするには 以下のコマンドを実行します。"-path" パラメータの値は、 php-cgi.exe の絶対パスに置き換えましょう。 例3 FastCGI エクステンションで PHP リクエストを処理するための設定 cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^ -extension:php -path:"C:\PHP\php-cgi.exe" このコマンドは、拡張子 *.php 用の IIS スクリプトマッピングを作成します。 .php で終わるすべての URL を FastCGI エクステンションで処理するようになります。 また、FastCGI エクステンションでの PHP リクエストの処理に php-cgi.exe を使うよう設定しています。
匿名化およびファイルシステムへのアクセスPHP を IIS で使う場合は、FastCGI の匿名化を有効にしておくことを推奨します。 これは、php.ini ファイルの fastcgi.impersonate ディレクティブで設定します。 匿名化を有効にすると、PHP はすべてのファイルシステム操作を IIS 認証で定義したユーザーアカウントで行います。 こうしておけば、同じ PHP プロセスを異なる IIS ウェブサイトで共有している場合でも (各サイトで IIS 認証のユーザーアカウントを分けておけば) 一方の PHP スクリプトからもう一方のファイルはアクセスできなくなります。 IIS 5.1 や IIS 6.0 のデフォルト設定では組み込みのユーザーアカウント IUSR_<MACHINE_NAME> による匿名認証が有効になっています。 つまり、IIS で PHP スクリプトを実行する場合は IUSR_<MACHINE_NAME> アカウントにスクリプトの読み込み権限を付与しなければならないということです。 PHP のアプリケーションからファイルへの書き込みやフォルダ内でのファイルの作成などをする場合は、 IUSR_<MACHINE_NAME> アカウントに書き込み権限が必要となります。 IIS 匿名認証で使うユーザーアカウントを設定するには、次のようにします。
ファイルやフォルダのパーミッションを変更するには、エクスプローラあるいは icacls コマンドを使います。 例4 ファイルのアクセス権の設定 icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M) IIS のデフォルトドキュメントを index.php にするドキュメント名を指定しない HTTP リクエストを受け取ったときには、 IIS のデフォルトドキュメントが使われます。PHP アプリケーションでは、通常は index.php をデフォルトドキュメントとします。 index.php を IIS のデフォルトドキュメントに追加するには、 次のようにします。
FastCGI および PHP の再利用設定IIS FastCGI エクステンションで PHP プロセスの再利用を設定するには以下のコマンドを使います。 FastCGI の設定項目 instanceMaxRequests は、 ひとつの php-cgi.exe が何回リクエストを処理すると FastCGI エクステンションがシャットダウンさせるかを表します。 PHP の環境変数 PHP_FCGI_MAX_REQUESTS は、 ひとつの php-cgi.exe プロセスが何回リクエストを処理すると 自分をリサイクルするかを表します。 FastCGI の InstanceMaxRequests で設定した値が PHP_FCGI_MAX_REQUESTS 以下になるようにしましょう。 例5 FastCGI と PHP の再利用設定 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -InstanceMaxRequests:10000 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000 FastCGI のタイムアウト設定実行時間が長くなる PHP スクリプトがある場合は、FastCGI エクステンションのタイムアウト設定を増やします。タイムアウトに関連する設定項目は ActivityTimeout と RequestTimeout です。 これらの設定に関する詳細は » Configuring FastCGI Extension for IIS 6.0 を参照ください。 例6 FastCGI のタイムアウト設定 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -ActivityTimeout:90 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -RequestTimeout:90 php.ini ファイルの場所の変更PHP が php.ini ファイルを探す場所は いくつかあり、 php.ini ファイルのデフォルトの場所を 環境変数 PHPRC で変更することができます。 特定の場所においた設定ファイルを PHP に読み込ませたい場合は、 以下のコマンドを実行します。環境変数 PHPRC には、php.ini ファイルがあるディレクトリへの絶対パスを指定しなければなりません。 例7 php.ini ファイルの場所の変更 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^ -EnvironmentVars:PHPRC:"C:\Some\Directory\" Microsoft IIS 7.0 以降このセクションでは、Internet Information Services (IIS) 7.0 以降を設定して、PHP を Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 および Windows Server 2008 R2 で動かす方法を説明します。 IIS 5.1 や IIS 6.0 を Windows XP および Windows Server 2003 で動かす方法については Microsoft IIS 5.1 および IIS 6.0 を参照ください。 IIS での FastCGI サポートの有効化FastCGI モジュールは、IIS のデフォルトでは無効になっています。 有効化する手順は、Windows のバージョンによって異なります。 Windows Vista SP1 および Windows 7 で FastCGI サポートを有効化する方法
Windows Server 2008 および Windows Server 2008 R2 で FastCGI サポートを有効化する方法
IIS で PHP リクエストを処理するための設定手動インストールの手順 での説明にしたがって、PHP をダウンロードしてインストールします。
CGI や FastCGI 固有の設定を、php.ini で以下のように行います。 例8 php.ini での CGI および FastCGI 用の設定 fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect = 0 PHP 用の IIS ハンドラマッピングを設定するには IIS マネージャのユーザーインターフェイス あるいはコマンドラインツールを使います。 IIS マネージャのユーザーインターフェイスを使った PHP 用ハンドラマッピングの作成PHP 用の IIS ハンドラマッピングを IIS マネージャのユーザーインターフェイスで設定する手順は次のとおりです。
コマンドラインツールによる PHP 用ハンドラマッピングの作成次のコマンドを使うと、IIS FastCGI プロセスプールを作ることができます。 PHP リクエストの処理には php-cgi.exe を使います。 fullPath パラメータの値は php-cgi.exe への絶対パスで置き換えてください。 例9 IIS FastCGI プロセスプールの作成 %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^ /+[fullPath='c:\PHP\php-cgi.exe'] IIS に PHP のリクエストを処理させるには、以下のコマンドを実行します。 scriptProcessor パラメータの値は php-cgi.exe への絶対パスで置き換えてください。 例10 PHP リクエスト用のハンドラマッピングの作成 %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^ /+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^ scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either'] このコマンドは、拡張子 *.php 用の IIS ハンドラマッピングを作成します。 .php で終わるすべての URL を FastCGI モジュールで処理するようになります。
匿名化およびファイルシステムへのアクセスPHP を IIS で使う場合は、FastCGI の匿名化を有効にしておくことを推奨します。 これは、php.ini ファイルの fastcgi.impersonate ディレクティブで設定します。 匿名化を有効にすると、PHP はすべてのファイルシステム操作を IIS 認証で定義したユーザーアカウントで行います。 こうしておけば、同じ PHP プロセスを異なる IIS ウェブサイトで共有している場合でも (各サイトで IIS 認証のユーザーアカウントを分けておけば) 一方の PHP スクリプトからもう一方のファイルはアクセスできなくなります。 IIS 7 のデフォルト設定では組み込みのユーザーアカウント IUSR による匿名認証が有効になっています。 つまり、IIS で PHP スクリプトを実行する場合は IUSR アカウントにスクリプトの読み込み権限を付与しなければならないということです。 PHP のアプリケーションからファイルへの書き込みやフォルダ内でのファイルの作成などをする場合は、 IUSR アカウントに書き込み権限が必要となります。 IIS 7 の匿名認証で使うユーザーアカウントを設定するには、次のコマンドを実行します。 "Default Web Site" の部分は、使用する IIS ウェブサイト名に置き換えてください。 出力される XML 設定要素の中から userName 属性を探します。 例11 IIS 匿名認証で使うアカウントの設定 %windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^ /section:anonymousAuthentication <system.webServer> <security> <authentication> <anonymousAuthentication enabled="true" userName="IUSR" /> </authentication> </security> </system.webServer>
ファイルやフォルダのパーミッションを変更するには、エクスプローラあるいは icacls コマンドを使います。 例12 ファイルのアクセス権の設定 icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M) IIS のデフォルトドキュメントを index.php にするドキュメント名を指定しない HTTP リクエストを受け取ったときには、 IIS のデフォルトドキュメントが使われます。PHP アプリケーションでは、通常は index.php をデフォルトドキュメントとします。 index.php を IIS のデフォルトドキュメントに追加するには、 次のようにします。 例13 index.php を IIS のデフォルトドキュメントにする %windir%\system32\inetsrv\appcmd.exe set config ^ -section:system.webServer/defaultDocument /+"files.[value='index.php']" ^ /commit:apphost FastCGI および PHP の再利用設定IIS FastCGI で PHP プロセスの再利用を設定するには以下のコマンドを使います。 FastCGI の設定項目 instanceMaxRequests は、 ひとつの php-cgi.exe が何回リクエストを処理すると FastCGI エクステンションがシャットダウンさせるかを表します。 PHP の環境変数 PHP_FCGI_MAX_REQUESTS は、 ひとつの php-cgi.exe プロセスが何回リクエストを処理すると 自分をリサイクルするかを表します。 FastCGI の InstanceMaxRequests で設定した値が PHP_FCGI_MAX_REQUESTS 以下になるようにしましょう。 例14 FastCGI と PHP の再利用設定 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^ [name='PHP_FCGI_MAX_REQUESTS',value='10000']" FastCGI のタイムアウト設定実行時間が長くなる PHP スクリプトがある場合は、FastCGI のタイムアウト設定を増やします。タイムアウトに関連する設定項目は activityTimeout と requestTimeout です。 タイムアウト設定を変更するには以下のコマンドを使います。 fullPath パラメータの値を php-cgi.exe ファイルへの絶対パスに置き換えてください。 例15 FastCGI のタイムアウト設定 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90" /commit:apphost %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^ /[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90" /commit:apphost php.ini ファイルの場所の変更PHP が php.ini ファイルを探す場所は いくつかあり、 php.ini ファイルのデフォルトの場所を 環境変数 PHPRC で変更することができます。 特定の場所においた設定ファイルを PHP に読み込ませたい場合は、 以下のコマンドを実行します。環境変数 PHPRC には、php.ini ファイルがあるディレクトリへの絶対パスを指定しなければなりません。 例16 php.ini ファイルの場所の変更 appcmd.exe set config -section:system.webServer/fastCgi ^ /+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^ [name='PHPRC',value='C:\Some\Directory\']" /commit:apphost Apache 1.3.x (Microsoft Windows 用)このセクションでは、Microsoft Windows 上の Apache 1.3.x で PHP を使用する場合について説明します。
PHP を Windows 上の Apache 1.3.x で動作させるには、2種類の方法が あります。一つは、CGI バイナリ (PHP 4 の場合 php.exe、 PHP 5 の場合 php-cgi.exe) を使用する方法、もう一つ は Apache モジュール DLL を使用する方法です。どちらの場合も httpd.conf を編集して Apache が PHP を利用できるようにした後、 Apache サーバーを再起動する必要があります。 Windwos 環境向けの SAPI モジュールはかなり安定してきているため、 透過性と安全性の面からも CGI バイナリより SAPI モジュールの 使用を推奨します。 Apache で PHP を使うように設定する手順にはいくつかのバリエーションがありますが、 いずれも入門者にもできるほど簡単です。設定ディレクティブに関する詳細については、 Apache のドキュメントも参照してください。 設定ファイルを変更した後、サーバーの再起動を忘れずに行ってください。 Apache を Windows サービスとして実行しているなら、NET STOP APACHE とした後 NET START APACHE とします。 もしくは、スタートメニューのショートカットからも再起動できる場合もあります。
Apache モジュールの使用以下の行を Apache の httpd.conf ファイルに追加してください。
例17 Apache 1.3.x でモジュール版の PHP を使用する場合の設定 以下では、PHP は c:\php にインストールされていると仮定します。 そうでない場合はパスを適当に修正してください。 PHP 4 の場合 # LoadModule セクションの最後に追加 # sapi ディレクトリからこのファイルをコピーするのを忘れないこと! LoadModule php4_module "C:/php/php4apache.dll" # AddModule セクションの最後に追加 AddModule mod_php4.c PHP 5 の場合 # LoadModule セクションの最後に追加 LoadModule php5_module "C:/php/php5apache.dll" # AddModule セクションの最後に追加 AddModule mod_php5.c 共通 # <IfModule mod_mime.c> 条件節の内部に追加 AddType application/x-httpd-php .php # .phps ファイルを構文ハイライト表示する場合に追加 AddType application/x-httpd-php-source .phps CGI バイナリの使用マニュアルインストールの手順 のセクションにある通り、PHP パッケージを C:\php\ に展開したならば、以下を Apache の設定ファイルに追加すれば CGI バイナリを利用可能にできます。 例18 Apache 1.3.x で CGI 版の PHP を使用する場合の設定 ScriptAlias /php/ "c:/php/" AddType application/x-httpd-php .php # PHP 4 の場合 Action application/x-httpd-php "/php/php.exe" # PHP 5 の場合 Action application/x-httpd-php "/php/php-cgi.exe" # php.ini の場所を設定 SetEnv PHPRC C:/php 警告
CGI モードで公開したサーバーは、いくつかの脆弱性の標的となる可能性があります。 これらの攻撃からサーバーを守る方法については、 CGI セキュリティ のセクションを参照してください。 PHP ソースの構文ハイライト表示については、モジュール版にあるような便利な オプションはありません。Apache で CGI 版の PHP を使用している場合、 highlight_file() 関数を使用してください。 普通に PHP スクリプトを作成し、次のようにコードを記述すれば、構文ハイライト表示が可能です。 <?php highlight_file('ハイライト表示するファイル'); ?> Apache 2.x (Microsoft Windows 用)このセクションでは、Microsoft Windows 上の Apache 2.x で PHP を使用する場合について説明します。
» Apache ドキュメンテーション を参照し、Apache 2.x サーバーの基本を理解しておくことを強く推奨します。 また、以下の解説を読む前に、Apache 2.x に関する » Windows 固有の情報 についても参照するとよいでしょう。 Apache 2.x は、サーバープラットフォーム用の Windows、 つまり Windows NT 4.0, Windows 2000, Windows XP および Windows 7 で動作するように設計されています。Apache 2.x は Windows 9x でもそれなりに動作しますが、サポートは不完全です。 また、一部うまく動作しない機能もあります。 この問題の解決策はありません。 最新の » Apache 2.x と、 対応するバージョンの PHP をダウンロードしてください。 マニュアルインストールの手順 を実施したら、引き続き以下のとおり PHP と Apache の設定を行ってください。 PHP を Windows 上の Apache 2.x で動かすには三通りの方法があります。 PHP をハンドラとして動かす方法、CGI として動かす方法、そして FastCGI で動かす方法です。
Apache ハンドラとしてのインストール以下の行を Apache 設定ファイル httpd.conf に追加して Apache 2.x 用の PHP モジュールを読み込まなければなりません。 例19 PHP を Apache 2.x ハンドラとして使う設定 # LoadModule php5_module "c:/php/php5apache2.dll" AddHandler application/x-httpd-php .php # php.ini へのパスを設定します PHPIniDir "C:/php"
上の設定は、拡張子 .php を含むすべてのファイルを PHP で処理するようにします。 たとえそれ以外の拡張子が含まれていたとしてもです。たとえば example.php.txt という名前のファイルも PHP ハンドラが処理します。ファイル名の 最後が .php であるものだけを処理させたい場合は、次のように設定します。 <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> CGI としての PHP の実行» Apache CGI ドキュメント を読み、Apache 上の CGI について理解しておきましょう。 PHP を CGI として実行するには、ScriptAlias ディレクティブで CGI ディレクトリとして指定した場所に php-cgi ファイルを置かなければなりません。 さらに、PHP ファイルに #! の行を追加して PHP バイナリの場所を指定しなければなりません。 例20 PHP を Apache 2.x 上で CGI として動かす例 #!C:/php/php.exe <?php phpinfo(); ?> 警告
CGI モードで公開したサーバーは、いくつかの脆弱性の標的となる可能性があります。 これらの攻撃からサーバーを守る方法については、 CGI セキュリティ のセクションを参照してください。 PHP を FastCGI で実行するPHP を FastCGI で動かすのには、CGI として動かすのにくらべると多くの利点があります。 設定方法は単純明快です。 まず mod_fcgid を » http://httpd.apache.org/mod_fcgid/ から取得します。Win32 用のバイナリがこのサイトからダウンロードできます。 そして、説明に従ってモジュールをインストールしましょう。 次にウェブサーバーを以下のように設定します。 パスの部分は適切に変更し、インストールするシステム上の環境にあわせましょう。 例21 PHP を FastCGI として動かす Apache の設定 LoadModule fcgid_module modules/mod_fcgid.so # Where is your php.ini file? FcgidInitialEnv PHPRC "c:/php" AddHandler fcgid-script .php FcgidWrapper "c:/php/php-cgi.exe" .php Sun, iPlanet, Netscape サーバー(Microsoft Windows 用)このセクションでは、Windows 上の Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server で PHP を使用する場合について説明します。 PHP 4.3.3 より、NSAPI モジュール を使うことが可能です。 Sun, iPlanet, Netscape サーバー で CGI 版の PHP を使用するCGI 版の PHP を使用する場合は、以下のようにしてください。
CGI 版の PHP を使用する場合の詳細な説明は » http://benoit.noss.free.fr/php/install-php.html を参照してください。 Sun, iPlanet, Netscape サーバー で NSAPI 版の PHP を使用するNSAPI 版の PHP を使用する場合は、以下のようにしてください。
CGI 環境変数と php.ini の変更Sun JSWS/Sun ONE WS/iPlanet/Netscape がマルチスレッドの WEB サーバーだという事が PHP スクリプトを書く際に重要になります。すべてのリクエストは同一の (WEB サーバー自体の)プロセス空間で実行されます。PATH_INFO や HTTP_HOST などの CGI 変数を取得する場合、 古い PHP で行っていたような方法、つまり getenv() 関数を使用する方法や他の同等な方法(グローバル変数の登録機能、 $_ENV 等)を使うのは正しい方法ではありません。WEB サーバーの環境変数をただ単に取得すると、 正しい CGI 変数は得られません。
PHP 4.x のスクリプトで CGI 変数を取得する場合は、スーパーグローバル $_SERVER を用いるのが正しい方法です。また、$HTTP_HOST などを使う古いスクリプトを使用する場合は、php.ini で register_globals をオンにし、変数のパースの順番 (variables_order) を変更してください ("E" を削除。環境変数を読み込む必要は無いため。) variables_order = "GPCS" register_globals = On 独自エラーページおよびファイル一覧表示ページ (PHP >= 4.3.3)PHP を使って、"404 Not Found" などに対するエラーページを生成することが できます。オーバーライドしたいエラーページすべてに対して、以下の行を obj.conf 中のオブジェクトに追加してください。 Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...] 独自のファイル一覧表示ページを PHP を使って生成することも可能です。 ファイル一覧表示を行う PHP スクリプトを作成し、obj.conf の type="magnus-internal/directory" の行に 書かれているデフォルトのサービスを以下のように置き換えます。 Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...] nsapi_virtual() およびサブリクエストに関する注意 (PHP >= 4.3.3)NSAPI モジュールは、現在、nsapi_virtual() 関数 (エイリアス: virtual()) をサポートしており、 WEB サーバーへサブリクエストを行い、結果を WEB ページへ挿入することができます。 問題としては、この関数は 文書化されていない NSAPI ライブラリの機能を使用して いることにあります。 Unix では、モジュールは自動的に必要な関数群を探し、可能であればそれらの関数を 使用するため、特に問題はありません。もし使用可能でなければ、nsapi_virtual() は 使用不可となります。 Windows では、DLL の扱いに制限があるため、自動認識の使用には 最新の ns-httpdXX.dll ファイルが必要です。 バージョン 6.1 までテストが行われています。もし、より新しい Sun サーバーを使う場合は、 自動認識が動作せず、nsapi_virtual() が使用不可となる可能性が あります。 もしそういった事になった場合は、 magnus.conf/obj.conf の php4_init へ以下のパラメータを追加してください。 Init fn=php4_init ... server_lib="ns-httpdXX.dll" ステータスは phpinfo() 関数を使って確認できます。
Sambar サーバー(Microsoft Windows 用)このセクションでは、Windows 上の » Sambar Server で PHP を使用する場合について説明します。
以下の手順は、Windows上 の Sambar サーバーで ISAPI モジュール版の PHP を使うように 設定する方法を解説するものです。
Xitami(Microsoft Windows 用)このセクションでは、Windows 上の » Xitami で PHP を使用する場合について説明します。
以下の手順は、Windows 上の Xitami でPHP の CGI 版バイナリを動作させる際の 設定方法です。
警告
CGI モードで公開したサーバーは、いくつかの脆弱性の標的となる可能性があります。 これらの攻撃からサーバーを守る方法については、 CGI セキュリティ のセクションを参照してください。
ソースからのビルドこの章では、Windows 上でマイクロソフトのツールを用いて PHP をソースから コンパイルする方法を説明します。PHP を cygwin でコンパイルする場合は Unix システムへのインストール を参照ください。 Wiki のドキュメント » http://wiki.php.net/internals/windows/stepbystepbuild を参照ください。 Windows 用 PHP 拡張モジュールWindows に PHP を インストールし、Web サーバーの設定ができたら、 次は PHP 拡張モジュールを使うための設定です。 php.ini を使って PHP が起動時にロードする拡張モジュールを設定することができます。 もしくは、スクリプトの中で dl() 関数を使用することにより、 拡張モジュールを動的にロードすることも可能です。 PHP 拡張モジュールの DLL には、ファイル名の前に 'php_' が付いています。 Windows 版の PHP には、多くの拡張モジュールが 組み込まれています。これらの関数を使用する際には、 追加の DLL ファイルや extension ディレクティブの設定は不要です。 追加の DLL が必要となる (あるいはかつて必要だった) 拡張モジュールについては、 Windows 版 PHP 拡張モジュール の表にまとめてあります。以下にあげられている拡張モジュールは、すでに PHP に組み込まれています (PHP 5.0.4 時点): BCMath, Caledar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, SQLite, WDDX, XML そして Zlib. PHP が拡張モジュールを探すデフォルトの場所は C:\php5 です。 変更するには php.ini ファイルを編集してください。
以下の表は、使用可能な拡張モジュールと それらの実行に別途必要な DLL のリストです。
Microsoft Windows のコマンドラインでの PHPこの?では、PHP を Windows のコマンドラインで実行するときの注意点やヒントを説明します。
特に Windows に手を加えなくても、PHP をコマンドラインから実行することはできます。 C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3 しかし、次の手順に従えば、さらにシンプルに実行することができます。 この中にはすでに実行済みのものがあるかもしれませんが、順を追って進めていくために もう一度ここで説明しておきます。
このようにしておくと、どのディレクトリにあるスクリプトを実行するときにも PHP 実行ファイルのパスや拡張子 .PHP をタイプしなくて済むようになります。 また、スクリプトに渡すパラメータを指定することもできます。 次の例は、レジストリの変更の一部を示したものです。これらは手動で行うこともできます。 例24 レジストリの変更 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php] @="phpfile" "Content Type"="application/php" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile] @="PHP Script" "EditFlags"=dword:00000000 "BrowserFlags"=dword:00000008 "AlwaysShowExt"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon] @="C:\\PHP5\\php-win.exe,0" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell] @="Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open] @="&Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command] @="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2" これらの変更をすれば、同じコマンドを次のように書くことができます。 "C:\PHP Scripts\script" -arg1 -arg2 -arg3 script -arg1 -arg2 -arg3
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「古い Windows システムへのインストール」をGoogle検索
|