%E5%AE%9F%E8%A1%8C%E5%BD%A2%E5%BC%8F%E3%82%A8%E3%83%A9%E3%83%BC%3A%20Apache%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB'%2Fusr%2Flocal%2Fdownload%2Fabc.zip'%E3%82%92%E5%AE%9F%E8%A1%8C.png)
私は設定しましたmod-auth-トークンLinuxサーバーにApacheをインストールしました。
サーバーからダウンロードする際、アクセスファイルのセキュリティを有効にするように設定しました。(ウェブサイトはこちら)。
Apache 設定:
ScriptAlias /downloads/ /usr/local/download/
<Location /downloads/>
AuthTokenSecret "SECURESTR"
AuthTokenPrefix /downloads/
AuthTokenTimeout 86400
</Location>
私は単純なJavaプログラムでサーバーからファイルをダウンロードするためのURLを生成しました(これは与えられた例と同じですここ)。
ファイルにアクセスするためのURLは以下の通りです。
http://download.mysite.com/downloads/9fa653c32af806ba6f43d1a1fb73bfd0/5370c3b3/abc.zip
ファイルはフォルダーabc.zip
にあります/usr/local/download/
。
このファイルにアクセス/ダウンロードしようとしたときに、以下の例外が発生しました。
[Tue May 13 02:07:28 2014] [error] (8)Exec format error: exec of '/usr/local/download/abc.zip' failed
[Tue May 13 02:07:28 2014] [error] Premature end of script headers: abc.zip
何が問題なのか分かりません。この問題を解決する方法を誰か知っていますか?
答え1
がありScriptAlias /downloads/ /usr/local/download/
、これは Apache に /usr/local/download 内のすべてのファイルを単に提供するだけでなく、CGI スクリプトとして実行するように指示します。これが と表示される理由ですexec of '/usr/local/download/abc.zip' failed
。スクリプトエイリアス。
解決策はScriptAlias
を に置き換えることですAlias
。