2013-06-04 15 views
6

私はHTTPサーバー上のファイルPUTを必要とするアプリケーションを使用しています。私はサーバーとしてNginxを使用していますが、405 Not Allowedエラーが戻ってきています。ここでのcURLでのテストの例です:NginxサーバーでPUTファイル要求を許可するにはどうすればよいですか?

curl -X PUT \ 
-H 'Content-Type: application/x-mpegurl' \ 
-d /Volumes/Extra/playlist.m3u8 http://xyz.com 

そして、私は戻ってnginxのからの取得:

<html> 
<head><title>405 Not Allowed</title></head> 
<body bgcolor="white"> 
<center><h1>405 Not Allowed</h1></center> 
<hr><center>nginx/1.1.19</center> 
</body> 
</html> 

私はPUTを許可するように行うには何が必要ですか?

すべての手がかりは素晴らしかったです!

答えて

16

PUT、DELETE、MKCOL、COPY、MOVEなどのHTTPとWebDAVメソッドを追加するには、HttpDavModule./configure --with-http_dav_module)でnginxをコンパイルする必要があります。 nginx -Vを最初にチェックしてください。すでにHttpDavModuleI installed nginx from the Debian repository and I already have the module)があります。

そして、そのようなあなたのnginx-config設定を変更します。

location/{ 
    root  /var/www; 
    dav_methods PUT; 
} 

あなたはnginx docs entry for the HttpDavModuleの詳細情報を取得することができます。

+1

ファイルを作成する必要がない場合は、追加のHTTPメタサービスを使用するだけですか? –

+1

'405 Not Allowed' – Green

+0

dav_methodsでリクエストを処理せず、PUTまたはDELETEメソッドを使用したい場合は、これらのリクエストがインデックスモジュールと一致しないようにする必要があります。 try_files ie:try_files $ uri /index.php$is_args$args; PHPを使った典型的なセットアップの場合 – dadasign

1

405 Not Allowedのもう一つの理由は、あなたがPUTである宛先にファイルを書き込む権限がないことです。 HttpDavModuleがあり、まだこのエラーが発生している場合は、ファイルをPUTにしてnginxに書き込み権限を与えてください。

関連する問題