2005-05-20

Apache2の設定

本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。従ってApacheの設定は、公開用サーバなどの設定とはまったく異なります。本編でのApacheの基本設定については「Apache2/5.httpd.confの編集」を参照して下さい。

以下では、PHP5を使用するためにはApache2の設定ファイル(httpd.conf)を編集します。本編では基本的にPHP5のApache2拡張モジュール(mod_php5)を使用しますが、 特定のURLパス( http://localhost/cgi/ )への要求に対してはCGIとして使かえるようにします。尚、PHP5のApache2設定に関する情報は以下のURLから入手できます。

http://www.php.net/manual/ja/install.windows.apache2.php

Apache2拡張モジュールとしてのPHP5の設置

### Section 1: Global Environment
  ・
  ・
LoadModule php5_module "C:/php5/php5apache2.dll"

httpd.conf「Section 1: Global Environment」内の「Dynamic Shared Object (DSO) Support」以下に上の行を追加します。

Apache2拡張モジュール(mod_php5)の追加

#
# Configuring PHP5/Server-Module
#
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
PHPIniDir "C:/php5"
</IfModule>

AddTypeディレクティブを使用して、PHPスクリプトファイル(拡張子が.php)をMIMEタイプ(application/x-httpd-php)にマッピングします。このMIMEタイプのファイルはPHP5のApache2拡張モジュール(mod_php5)で処理されます。 PHPIniDirは mod_php5のディレクティブでphp.iniの設置場所(本編では:C:\php5)を指定します。

<IfModule mod_php5.c>は

LoadModule php5_module "C:/php5/php5apache2.dll"

と関連付けられています。php5apache2.dll がロードされている場合に<IfModule>ブロック内が評価されます。尚、<IfModule>内のモジュール名はコンパイルした時のモジュールのファイル名(mod_php5.c)になります。

CGIとしてのPHP5の設置

スクリプトエイリアスの設定

# PHP5/CGI
<Directory "C:/php5">
  AllowOverride None
  Options None
  Order Allow,Deny
  Allow from localhost
  Allow from 192.168.1.0/24
</Directory>
ScriptAlias /php5/ "C:/php5/"

<Directory>ディレクティブを使用してPHP/CGIディレクトリの為のアクセス制御を記述します。ここではPHPのCGIバイナリ(C:\php5\php-cgi.exeなどのファイル)へのアクセス許可を目的としているので、AllowOverrideやOptionsはNoneにしています。また、ローカルホストとLAN内の特定のホストに対してのみアクセスを許可しています。

ScriptAliasはPHP5のインストールディレクトリ(C:\php5)をURLパス/php5/にマッピングし、このディレクトリでのCGIの実行を許可します。

PHP/CGIの設定

<Directory "D:/WWWRoot/cgi">
  AddType application/x-httpd-php5-cgi .php
  Action application/x-httpd-php5-cgi "/php5/php-cgi.exe"
</Directory>

特定のURLパス( http://localhost/cgi/ )内のPHPスクリプトファイル(拡張子が.php)への要求に対しては、PHPがCGIとして使つかえるように設定しています。

AddTypeディレクティブを使用して、PHPスクリプトファイル(拡張子が.php)を独自のMIMEタイプ(application/x-httpd-php5-cgi)にマッピングします。このMIMEタイプのファイルはActionディレクティブで指定されているCGIで処理されます。PHP5のApache2拡張モジュール(mod_php5)で処理されます。リクエストされた元のURLとファイルパスはCGI標準の環境変数 PATH_INFO と PATH_TRANSLATED を使って伝えられます。

設定の確認

簡単なPHPスクリプトを作成し設定の確認を行います。

info.php:

<?php phpinfo() ?>

上のPHPスクリプトを下記の2箇所に作成します。(本編でのApache2ドキュメントルートはD:\WWWRootです)

D:\WWWRoot   (mod_php5用)
D:\WWWRoot\cgi (PHP/CGI 用)

両方のPHPスクリプトをブラウザから実行して違いを確認します。

http://localhost/info.php   (mod_php5の場合)
http://localhost/cgi/info.php (PHP/CGI の場合)

phpinfo.gif

上の実行例はmod_php5の場合です。画面表示中の[Server API]を見てください。両者の違いが分かるはずです。

[Server API]Apache 2.0 Handler (mod_php5の場合)
[Server API]CGI/FastCGI     (PHP/CGI の場合)

また、[Configuration File (php.ini) Path]がC:\php5\php.ini になっている事も確認できます。



最終更新のRSS Last-modified: Wed, 29 Jun 2005 13:03:45 JST (4256d)