2017年10月26日このページでは、PHPをCGIモード化する時に「AddHandler」ディレクティブを使用してもPHPがうまく動かないことがある理由を解説します。くじなぜ「AddHandler」だと動かないのか?対処法...「SetHandler」+「FilesMatch」なぜ「AddHandler」だと動かないのか?私は、OS:CentOS7Apache2.4PHP7の環境でPHPをCGIモードにするべく、以下のような設定を行いました。なっており、example.comにアクセスが有った時、PHPがCGIモードで動くようにしたはずでした。PHPはモジュールモードで動いていました。specified.」と表示されたこともあります(原因は不明)。「AddHandler」だとうまく動かないのか。その答えは、/etc/httpd/conf.d/php.confにありました。私がインストールしたPHP7では、拡張子が.phpのファイルをPHPとして処理するための設定に「SetHandler」が使われていたのです。AddHandlerもSetHandlerも、あるファイルに対してどのような操作を実行するかを設定する時に使います。AddHandlerはある拡張子に対して行う処理を追加しますが、SetHandlerは(普通に使えば)設定が適用されるディレクトリにある全ファイルに対して行う処理を指定し、既存の設定は上書きしてしまいます。SetHandlerのほうがAddHandlerよりも強いわけです。AddHandlerの設定は無視されてしまったのでした。対処法...「SetHandler」+「FilesMatch」この問題に対処するためには、こちらもSetHandlerを使ってPHPをCGIモード化する設定を施すことが有効です。SetHandlerを普通に使えば問答無用で全ファイルに対してPHPの処理が行われるので、事前に「FilesMatch」ディレクティブでPHPのファイルだけ取り出してからSetHandlerの設定を行います。[/VIM]「FilesMatch」ディレクティブで拡張子が.phpのファイルだけを取り出し、それに対してSetHandlerディレクティブでPHPをCGIモードで動かす設定を施します。→このブログを応援する・寄付する当ブログでは暗号通貨による寄付を募っております。