質問: CentOS5 MIMETypeについての質問です。 こちらのサイトのようにFirefoxからExcelファイルのリンククリックで 処理方法をきかれずにExcelが開くようにしたいのですが、添付のように「今後この種類のファイルは・・・」が グレーダウンになり、毎回処理方法を聞かれます。 ググった結果、どうやら /etc/mime.type で設定すればイイらしいということで /etc/mime.typeに application/vnd.ms-excel xls (←元々記述があった) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx としたのですが、OS再起動するも相変わらずグレーダウンでダイヤログが表示されます。 対処法ご教示いただければと存じます。 なお、関係するかどうかわかりませんが、Excelは2010を使用しています。 どうぞよろしくお願いします。
回答: > > お教え戴いたアドインでheaderを調べましたところ、「Content-Type: application/octet-stream」が返されました。 > > > Firefox の挙動が違うのは、これで説明がつきます。 おそらく、Firefox 側の設定で既に「Excel ファイルだったら、自動的に開く」ように設定されているんだけど、application/octet-stream で届くもんだから、Firefox としてはその「Excel ファイルだったら~」という設定に引っかからないのでダイアログを表示している、ということでしょう。 となると、Apache 側の設定で、なぜそうなるか、ですが...。 手元の CentOS のファイルを見ると、下記の部分が関係します。 ・/etc/httpd/conf/httpd.conf ``` # ファイルの中身を見て Content-Type を決める mod_mime_magic のロード LoadModule mime_magic_module modules/mod_mime_magic.so # 拡張子から Content-Type を決める mod_mime のロード LoadModule mime_module modules/mod_mime.so # 拡張子と Content-Type の関係を記述したファイルの指定 TypesConfig /etc/mime.types # mod_mime_magic が使う、ファイルの中身と Content-Type の関係を記述したファイルの指定。 # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic ``` 例えば、TypesConfig 指しているファイルが違っていた、とか、そもそも mod_mime をロードしていなかった、とか。極端な場合だと、実は CentOS 付属の Apache ではなく、ソースからビルドして、/usr/local/~ 辺りにある Apache を動かしていた、とか(^^;。 実際にロードされるモジュールは、下記のようにすると調べられます。 ``` # httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) auth_basic_module (shared) auth_digest_module (shared) authn_file_module (shared) .... ``` ここに mod_mime が無ければ、ロードされていない、という事になります。 ...でもなぁ、なんか違うところのような気もするしなぁ。 あと、TypeConfig でファイルを指定する他に、直接、 httpd.conf に AddType を使って、 ``` AddType application/vnd.ms-excel .xls ``` と書くこともできるので、それを試してみるとか。 参考までに、私が疑っている mod_mime と mod_mime_magic のドキュメントを紹介しておきます。 mod_mime - Apache HTTP サーバ mod_mime_magic - Apache HTTP Server