「nginx delete put 405 method php fastcgi http crud メソッド」でお困りの方へ

nginx と fastcgi 環境で HTTP メソッドの DELETE や PUT を使おうとしても、「405 Method Not Allowed」 となっていました。 自分の設定がおかしいのかもですが、index ディレクティブ で php を動かしている場合だとダメっぽい。

# http://example.com/ へ DELETE, PUT メソッドを投げるとエラー
location / {
    root   /home/example.com/public_html/;
    index  index.php index.html index.htm;
}

index を利用するのは諦めて、 FastCGI の設定を記載すると DELETE, PUT メソッドが使えるようになりました!あくまで応急処置なので、他に良い方法あれば教えて下さい。

# DELETE, PUT メソッドが利用できるようになる。
location / {
    root    /home/example.com/public_html/;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}