過去にApche 2.4で、特定のディレクトリ配下でhtmlがリクエストされた場合、
以下のようにラッパー用のPHP(/wrapper.php)をCGIとして動作させていました。
-----------------------------------
AddHandler file-type .html
Action file-type /wrapper.php
-----------------------------------
上記を含むコンテンツをnginx/1.10.2に移行したのですが、
同様の動作を実現したいです。
【前提】
OS : Amazon Linux AMI release 2016.09
nginx 1.10.2
PHPバージョン: 5.6
php-fpm はインストール済みで、
nginx上でPHPが動作する環境はできています。
----------------------------------------------------------------------
【質問】
1. Apacheを使わずに同様の動作(htmlがリクエストされた場合、特定ファイルをCGIとして動作させる)が可能でしょうか?
2. nginxのみで可能な場合、必要な解決策と手順をご教示いただけると助かります。
Apacheを利用した方が良い、という意見は結構です。
nginx で CGI を起動するあたりは分かっている前提で書きます。
ある特定の CGI に振り向けたいなら、SCRIPT_FILENAME を上書きしちゃえば良いと思います。
server { location ~ \.html(\?|$) { fastcgi_split_path_info ^(.+\.html)(.*)$; ... include fastcgi_params; ... fastcgi_param SCRIPT_FILENAME $document_root/wrapper.php } }
.html な URL で searchpart が付くのかどうかわからないので、その辺りは適宜やってください。
【参考】
nginx fastcgi_params を include する箇所、割と皆間違ってるよね? - Qiita
いただいた内容で無事動きました。
2017/03/10 22:59:50ありがとうございました!