Ubuntu サーバーからダウンロードしたファイルは、その種類に関係なくテキストとして扱われるようです。どうすれば修正できますか?

Ubuntu サーバーからダウンロードしたファイルは、その種類に関係なくテキストとして扱われるようです。どうすれば修正できますか?

私は x86 ボックスで Ubuntu サーバー 10.04.1 を実行しており、すべて正常に見えますが、apache2 と proftpd もインストールし、ドキュメントに従って構成しました。

テキスト以外のファイル (バイナリ、画像など) をダウンロードするときに問題が発生します。これらのファイルはテキストとして扱われ、クライアント マシンで使用できないファイルとして受信されます。サーバーで vsftpd と現在 proftpd の両方を試しましたが、結果は同じです。http を使用して (Apache サーバーから) ファイルをダウンロードすると、同じことが起こります。ufw (ファイアウォール) を削除して再起動してみましたが、変化はありませんでした。問題は Ubuntu 自体にあるようで、このマシンを Web サーバーとして役に立たなくしてしまうほど深刻な問題です。

修正方法はありますか?また、それは何ですか?

答え1

そのままにしておくと、Apache は正しく動作するように設定されます。ファイルの内容を判別し、正しい MIME タイプを提供します。以下を試してください。

  • 一般的なファイル タイプである JPEG のサンプル ファイルを使用します。
  • サーバーが本当に間違った MIME タイプを返すかどうかを確認します。これを行うには、ローカルで curl を使用します。例:

    curl -I http://localhost/file.jpg

    MIME タイプはヘッダーに表示されます。

  • デフォルトの設定(Ubuntuパッケージのもの)に戻します。Apacheの設定は、正しく行うのが少し難しい場合があります。ファイルをwww(おそらく/var/www)に配置します。

  • 既知の良好な構成から既知の不良構成に段階的に変更を加えます。こうすることで、どこでミスをしたのかがわかります。

おそらく、あなたが抱えている困難はproftpd、まったく別の問題でしょう。

答え2

Apache の「mime」モジュールが有効になっていない可能性があります。有効にしてみてください:

sudo a2enmod mime

さらに詳しい情報については、 を確認してください。拡張子からMIMEタイプへのマッピングを含むファイルも/etc/apache2/mods-enabled/mime.conf確認する必要があるかもしれません。さらに詳しい情報については、公式の/etc/mime.typesApache mod_mime ドキュメント

関連情報