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 モジュール を使って 独自エラーページ およびファイル一覧表示ページの生成 が可能です。 Apache 互換の関数も追加されています。 また、これらの WEB サーバ専用の機能については、 「サブリクエストに関する注意」 をお読みください。

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 を使用する場合は、以下のようにしてください。

注意: NSAPI 版の PHP の使用についてのより詳細な説明は http://benoit.noss.free.fr/php/install-php4.html をご覧ください。

注意: PHP が使用するスタックサイズは WEB サーバの設定に依存します。 非常に大きい PHP スクリプトを実行させた際にクラッシュする場合は、 Administration Server でスタックサイズ("MAGNUS EDITOR") を大きくすると良いでしょう。

CGI 環境変数と php.ini の変更

Sun JSWS/Sun ONE WS/iPlanet/Netscape がマルチスレッドの WEB サーバだという事が PHP スクリプトを書く際に重要になります。すべてのリクエストは同一の (WEB サーバ自体の)プロセス空間で実行されます。PATH_INFOHTTP_HOST などの CGI 変数を取得する場合、 PHP 3.x で行っていたような古い方法、つまり getenv() 関数を使用する方法や他の同等な方法(グローバル変数の登録機能、 $_ENV 等)を使うのは正しい方法ではありません。WEB サーバの環境変数をただ単に取得すると、 正しい CGI 変数は得られません。

注意: なぜ正しくない CGI 変数が登録されているのでしょうか?

それは、WEB サーバのプロセスを Administration Server から起動させる際、 WEB サーバの起動スクリプトが CGI スクリプトとして実行されるためです。したがって、 起動された WEB サーバの環境変数には CGI 変数も含まれることになります。 Administration Server 以外から WEB サーバを起動してみればこのことをテストできるでしょう。 ルートユーザでコマンドラインを使って、手動で起動してみると、CGI 変数らしき 環境変数が登録されないことが確認できると思います。

PHP 4.x のスクリプトで CGI 変数を取得する場合は、スーパーグローバル $_SERVER を用いるのが正しい方法です。また、$HTTP_HOST などを使う古いスクリプトを使用する場合は、php.iniregister_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...]
ここで、XXX は HTTP のエラーコードです。 追加したものと干渉する Error ディレクティブは削除してください。 発生するすべてのエラーに対応するページを設定したい場合は、 code パラメータを省略してください。スクリプトで HTTP ステータス コードを取得するには、 $_SERVER['ERROR_TYPE'] を使用します。

独自のファイル一覧表示ページを PHP を使って生成することも可能です。 ファイル一覧表示を行う PHP スクリプトを作成し、obj.conftype="magnus-internal/directory" の行に 書かれているデフォルトのサービスを以下のように置き換えます。

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
エラーページ、ファイル一覧表示ページのどちらでも、元の URI および 変換後の URI は、それぞれ、$_SERVER['PATH_INFO'] および $_SERVER['PATH_TRANSLATED'] に格納されています。

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.confphp4_init へ以下のパラメータを追加してください。

Init fn=php4_init ... server_lib="ns-httpdXX.dll"
ここで、XX は接続する DLL のバージョン番号です。 番号を調べるには、サーバのルートで、対応する名前のファイルを探してください。 おそらく、最もファイルサイズの大きい DLL が探しているファイルでしょう。

ステータスは phpinfo() 関数を使って確認できます。

注意: nsapi_virtual() サポートは「実験的」な機能です。



東京デリヘル 池袋デリヘル 新宿デリヘル 渋谷デリヘル 品川デリヘル

鶯谷デリヘル 大塚デリヘル 立川デリヘル 町田デリヘル 横浜デリヘル 埼玉デリヘル

千葉デリヘル 大阪デリヘル 神戸デリヘル 京都デリヘル 名古屋デリヘル デリヘル

アダルトレンタルサーバー アダルトレンタルサーバー 表札 断熱塗料 UGUISU

大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム

奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム 老人ホーム