[PHP-users 1801] Re: Linuxの場合にAction が不要な理由

Yasuo Ohgaki php-users@php.gr.jp
Wed, 5 Sep 2001 09:08:00 +0900


大垣です。

> よしたけと申します。
>
>  渡辺@新潟さんのメール [PHP-users 1778] を読んでいて、ふと
>  疑問に思ったことがあります。
>
>  現在、WinNT4.0 + Apache1.3.20 + PHP4.0.6 でいろいろ実験して
>  いますが、httpd.conf には、
>
>     AddType application/x-httpd-php .php
>     AddType application/x-httpd-php .phtml
>     Action application/x-httpd-php "/php/php.exe"
>
>  などと書いて無事に動いています。( /php/ は ScriptAlias 済 )
>
>  で、最後の Action なのですが、これって Linux の場合には不要
>  のようですね。

PHPがモジュールとして動作しているからです。Windows版のApacheでもモ
ジュールとしてPHPが動作している場合は必要ありません。(PHPをCGIで利用
したい場合は必用です)

>
>  とすると、Apache が「application/x-httpd-php のファイルは
>  PHP で処理させる」という事をなぜ知っているのでしょう?

ApacheはAction、AddType Directiveによって、MIMEが
application/x-httpd-phpのファイル(指定された拡張子で識別)はPHPのスク
リプトと判断して、PHPにコードを渡しています。PHPモジュールがApacheに登
録される際にPHPがapplication/x-httpd-phpを登録しています。

>  ソースコードに書かれていて、生まれ持ったものなのですか?

application/x-httpd-phpはPHP4ではmod_php4.cで定義されています。別の名
前にしたい場合はソースを変更すると簡単に変えることが出来ると思います。
CGIの場合はソース変更しなくても適当に変えて使えます。(他の方が
httpd.confを見た場合に混乱するのでお勧めしませんが、、、)

ApacheマニュアルのMIME関連、AddType、Actionが解説されている部分を読む
と解ると思います。

--
Ohgaki, Yasuo (大垣 靖男) 
Mail: yohgaki@dd.iij4u.or.jp