Yahoo! 知恵袋

IDでもっと便利に新規取得

ログイン

  • Yahoo! JAPAN
  • ヘルプ

検索、ニュースはお任せ Yahoo! JAPANに簡単アクセス

  • トップ
  • カテゴリ
  • ランキング
  • Q&A一覧
  • 回答ひろば

いますぐ利用登録!

Q&A 知恵ノート

条件を指定

質問する

知恵ノートを書く


現在位置:
知恵袋トップ
>
コンピュータテクノロジーカテゴリ選択
知恵袋トップ
エンターテインメントと趣味
暮らしと生活ガイド
インターネット、PCと家電
健康、美容とファッション
ビジネス、経済とお金
生き方と恋愛、人間関係の悩み
子育てと学校
職業とキャリア
マナー、冠婚葬祭
ニュース、政治、国際情勢
教養と学問、サイエンス
スポーツ、アウトドア、車
地域、旅行、お出かけ
コンピュータテクノロジー
Yahoo! JAPAN
おしゃべり、雑談
その他
>
ネットワーク技術 >
サーバ管理、保守 > 多分難しくないApa...


ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

「知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

知恵コレに追加する:1人

多分難しくないApache2:その2(普通のWebサーバらしい動作へ)

ライター:p_791さん(最終更新日時:2013/1/22)投稿日:2013/1/22 アドバイス受付中!

  • ナイス!:

    1

  • 閲覧数:679
  • ノート
  • アドバイス
  • 関連Q&A
  • 履歴

印刷用のページを表示する

●多分難しくないApache2:その2(普通のWebサーバらしい動作へ)

※私のblog「ぴろにっき」からの転記(+追記&修正)ノートです。

 「その1」までの設定内容で、「それとなく雰囲気的にはWebサーバとして振る舞っているような気がする設定」までは完了したものの、ひいき目に見ても「まだまだ足りない子」であることが否めない。
 「その1」の設定内容を実践してもらった人にはツッコミどころが判っていると思うのだけども、

足りない点その1:
 http://(server名)/ でアクセスすると「ファイルが無い」とかエラーになる。
 http://(server名)/index.html といちいち「index.html」とかファイル名まで指定しなければならない

足りない点その2:
 ブラウザによっては日本語の文字がどの「エンコード」を指定しても化け化けになることがある。(賢いブラウザだと普通に表示される)

足りない点その3:
 バイナリファイルを直接ダウンロードするとファイルがなぜか壊れてしまう(賢いブラウザだと以下略)

 …Webサーバとしては致命傷なんじゃなかろうか?(苦笑)
 これもひとえに「httpd.confの設定がまだ足りないから」に他ならない。ここでは、これらの問題を解決していきたいと思う。


1:ファイル名を省略したら、当然「index.html」でしょ!常識的に考えて。
 例えば、http://(server名)/ とか、 http://(server名)/directory/ でアクセスをしたら、そのサーバのドキュメントルート、あるいはその下にあるディレクトリに置いてあるindex.htmlファイルに自動的にアクセスをするのが世間一般的なWebサーバとしては常識的な振る舞いじゃないでしょうか。(まあ、場合によってはindex.cgiとかindex.phpとかindex.plとかindex.rbとか以下略)
 そこで、現在調ky(マテ 設定中のWebサーバにもそのような設定を導入する事にしましょう。

 ここで登場するディレクティブが「DirectoryIndex」というディレクティブ。ファイル名の指定を省略した場合、このディレクティブで指定したファイルが使用されるという寸法。
 index.htmlを使用したいという場合、

-----
DirectoryIndex     index.html
-----

 …と、これだけ書いておけば完了だったりする。
 なお、このディレクティブには複数のファイルを指定することができる。例えば

① index.cgi があればそれを使用する
↓
② 無ければindex.htmlを使用する

 というような場合は、

-----
DirectoryIndex     index.cgi index.html
-----

 というような記述をすると、目的を達成できる。
 ちなみに、現時点ではこのディレクティブを記述するとドキュメントルート以下の全てのディレクトリでこの設定が適用される。「Directory」ディレクティブと組み合わせることによって、「特定のディレクトリ」以下では違うファイルを使わせることも出来る。

 例えば、

① 普通は、「index.html」を使用する
↓
② /var/www/html/windows ディレクトリ以下では「main.htm」を使用したい

 というような場合は…

=====
DirectoryIndex     index.html

<Directory     "/var/www/html/windows">
    DirectoryIndex     main.htm
</Directory>
=====

 と、書けばよいことに。


2:文字コードを正しく認識させる
 本来は、htmlファイルの中で「meta」タグを使用するなどして、そのファイルの中の文字コードが何であるかを指定しなければなりません。ところが、お行儀の悪い人だとか、htmlファイルでは無くただのテキストファイルを配信したい場合等はそのファイルの中身がどのような文字コードで書かれているのか、判らない場合があります。
 こうなってくると、次はブラウザの「賢さ」にかかってくる訳ですが、時と場合によってはサーバ側で

 「文字コードの明示的な指定が無い場合はコレコレの文字コードだと思ってください!」

 と、指定することで問題を回避出来る可能性があります。
 よくあるのが、PCでブラウザを使用してWebサーバにアクセスしていて、それをLinuxサーバ上で作成したファイルを見せたい場合とかです。
 PC側で多く期待している文字コードとしてはShift-JISだったり、場合によってはUTF-8だったりするでしょう。サーバ側だとUTF-8か、EUC-JPだったりする可能性があるでしょう。

 このような場合はサーバ側で「AddDefaultCharset」ディレクティブを使用します。

 なお、本来ここで推奨される設定は

=====
AddDefaultCharset     Off
=====

 です。あくまでもhtmlファイルの中で文字コードをきちんと指定すべきなのです。そしてサーバとしてはその内容には関知しませんよ…というべきなのですが、必ずしもそうは言えないような場合についてだけ、指定を変更します。
 例えばUTF-8ですよ~と言いたい場合は

=====
AddDefaultCharset     utf-8
=====

 と、記述しておきます。


3:ファイルの「種類」を正しく認識させる
 Webサーバが扱っているファイルの形式が何であるか?という問題は重要な問題です。これによってクライアントの振る舞いを指定することができ、またクライアント側でも、ブラウザ自身がそのファイルを扱えない場合、どんなソフトを起動すれば良いか?という選択を正しくすることが出来るようになります。

 例えば、Adobe社オリジナルのファイル形式である「pdf」ファイルをWeb上で公開したいとしよう。
 この時、pdfファイルへのリンクをクリックした時、サイトによって2通りの動作をすることが有ることに気がつかないだろうか?

動作その1:ブラウザの画面上にpdfファイルの中身が表示される
動作その2:pdfファイルがPCのハードディスク上にダウンロードされてくる

 同じブラウザを使用していて、このような違いが現れることがある。
 これは、サーバ側で指定している「MIME(マイム)タイプ」という情報に違いがあるからだったりする。
 「動作その1」をするWebサイトの場合、Webサーバ側が「このファイルはpdfというファイルです」ということを知っていて、そしてそれをクライアント側に通知している。だから、クライアント側は「pdfというファイルなら、このアプリケーション(プラグイン)を使用すればいい」という判断が付くわけです。
 ところが、「動作その2」をするWebサイトの場合、Webサーバ側は「pdfというファイル」のことを知らない(MIMEタイプの情報を持っていない)場合が多く、サーバ側からは、「このファイルは単なるバイナリファイルです」という情報をクライアント側に通知している。だから、(真正直な)クライアントは単なるバイナリファイルならダウンロードして保存しておけばいいかな?  と、認識してしまい、同じpdfファイルでもファイルが表示されずにダウンロードされてしまう。

 賢い(?)ブラウザの場合、サーバからMIMEタイプが通知されない場合、あるいはおかしな情報が通知された場合に「ほどよく脳内補完」をして「より適切な」振る舞いをしてくれる場合もあるようですが、RFCに律儀に従うブラウザの場合は、あらゆるファイルが表示されずにダウンロードされてしまってWebサイトのデザインもへったくれもないという状態に追い込まれてしまったりします。(笑)

 そこで、「どういうファイルが、どんなMIMEタイプか」という設定をするのですが、世の中には星の数ほどのファイルの種類が存在しているので、これをいちいち書いていたらWebサーバの管理者はみんなきっと過労死してしまうに違い有りません。
 この苦労をIANAという団体が買って出てくれていますので、我々もこれをありがたく利用させていただくのがラクチンで良いです。(笑)

 ここで使用するディレクティブは2つあります。

 「TypesConfig」ディレクティブと、「MimeMagicFile」ディレクティブの2つです。
 なお、両方指定しても構いませんが、どちらか一方は指定すべきでしょう。

 どのような違いがあるのか?と言うと…

○ TypesConfigディレクティブの場合
 → ファイルの「拡張子」からファイルのMIMEタイプを決定します

○ MimeMagicFileディレクティブの場合
 → ファイルの「中身」からファイルのMIMEタイプを決定します

 『常識的な』ファイルの使い方をしているのなら、「TypesConfig」ディレクティブで十分です。「MimeMagicFile」ディレクティブが必要になるのは、「ファイルの中身と拡張子が一致しない」とか、「そもそも拡張子が付いていない」とか、CGI側でMIMEタイプを全く指定していないか、またはデタラメである…というような、非常にひねくれた使い方をしている場合に限られると思ってもらって差し支えないと思います。(笑)

 …というわけで、どちらを使うべきか、自ずと答えが出てきますね?(笑)

 なお、TypesConfigもMimeMagicFileも、ディレクティブに続けて「ファイルの情報を定義したファイル」を指定します。TypesConfigで使用するファイルは、通常はOS側が管理しているので、それを利用します。(ありがたやありがたや~)MimeMagicFileはApacheのソースコードをメンテナンスしている人達が管理してくれていますので、それを利用します。(ありがたやありがたや~)

 具体的な記述は…

=====
TypesConfig       /etc/mime.types
MimeMagicFile     conf/magic
=====

 という具合になります。両方書いてもいいし、「普通は」TypesConfigだけあれば十分なのでそれだけでも構いません。

#注意#
 MimeMagicFileディレクティブを使用すると、ファイルのMIMEタイプを特定するため、Webサーバが『いちいち』そのファイルの内容を点検することになるので、サーバ負荷が…とか、クライアントからのレスポンスが…とかいうような問題にかち合う可能性が出てくるので気をつけましょう。

 では、ここまでのhttpd.confの記述内容全体を確認してみましょう。
 MIMEタイプの設定については、TypesConfigのみを使用している例とします。

 …と、いきたいところですが、この他に例の「モジュール」の追加も必要になります。
「DirectoryIndex」ディレクティブの追加のためと、MIMEタイプの追加のために必要です。

-----
LoadModule dir_module   modules/mod_dir.so
LoadModule mime_module   modules/mod_mime.so
LoadModule mime_magic_module   modules/mod_mime_magic.so
-----

 MimeMagicFileディレクティブを使用する場合は、上記の「1行目と3行目」が必要で(2行目は必要ありません)、TypesConfigディレクティブを使用してMimeMagicFileディレクティブを使用しない場合は、「上の2行」だけが必要です。(3行目は必要有りません)

-----
LoadModule authz_host_module      modules/mod_authz_host.so
LoadModule authz_default_module   modules/mod_authz_default.so
LoadModule dir_module   modules/mod_dir.so
LoadModule mime_module   modules/mod_mime.so

ServerRoot      "/etc/httpd"
PidFile         "run/httpd.pid"
Listen          80
User            apache
Group           apache

ServerName      "kagami.hiiragi.com:80"
DocumentRoot    "/var/www/html"

<Directory      "/">
        Order   Allow,Deny
        Deny from       All
</Directory>

<Directory      "/var/www/html">
        Order   Deny,Allow
        Allow from      All
</Directory>

<Files  ~       "\.ht">
        Order   Allow,Deny
        Deny from       All
</Files>

DirectoryIndex     index.html
AddDefaultCharset     Off
TypesConfig       /etc/mime.types
-----

 こんな感じで~♪
 これで、「ひとまず」Webサーバとしての基本動作…は、確保できているはず。(笑)

 でも、これではまだサーバを外部公開できる水準にはありませんからね。せいぜい、「家庭内ネットワーク」とか「社内ネットワーク」とかいった、ネットワークとしてセキュアな環境でサーバを公開するに留めておくべきです。

 次は「認証のかかったページ」を提供する方法を解説する予定です。

 …が、その前に、「外部への公開に耐えうる」ために最低限必要となる残りの設定項目について補足説明のノートを挟んでおきたいと思います。

  • ナイス!1
  • 違反報告

アドバイス(このノートのライターへのメッセージ)を送る

このノートはどうでしたか?  いいと思ったことや、こうしたらもっとよくなるといったメッセージを送りましょう! ノートの内容やライターについて質問がある場合は、Q&Aから質問してみましょう

アドバイスを送るには、
Yahoo! JAPAN IDでのログインおよび
Yahoo!知恵袋の利用登録が必要です。

利用登録ナビへ

感想アドバイス履歴

  • 現在アドバイスはありません

このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

新登場!! Step Chips 手作り作品のハウツーが詰まったiPhoneアプリ

あなたにおすすめの知恵ノート

  • 多分難しくないApache2:その7(Webサーバでファイルサーバ?~一番簡単なWe...
  • 生き残った日本人と、その子孫が、日本を普通の国にしてくれそうですね。
  • Webの広告を消す! その2
  • WEBサイトの作成を考えておられる方へその1
  • photo movie studio 6 pro の動作停止について

あなたにおすすめのQ&A

  • パソコンの動作が遅い... 最近パソコンの動作が鈍くて困っています。 1.起動するまでに二分程かかる...
  • トランジスタのスイッチング動作について。 ベース電圧が0.6V以下になってもずっとONのままです。 単...
  • excel2007がまともに動かない Excel2007がまともに動作せず困っています。 使用しているPCはThinkpa...
  • PCの動作が遅い 4年ほど前に購入したVAIOのデスクトップDですがここ2ヶ月ぐらいで動作が遅くなり、 ...
  • 最近パソコンの動作が遅いのですがどうすればよいでしょうか? 電源を入れてからメインの画面に行くま...

このページのトップへ

PR

この知恵ノートのライター

グレード

グレード知恵ノートのグレード:1-3

p_791さん男性

法律カテ・資格カテに出没する40過ぎのヘタレなオッサンです。...[続きを見る]

その他の知恵ノート(159件)
区分所有法ワンポイントノート...
行政手続き法ワンポイントノー...
会社法ワンポイントノート:持...
会社法ワンポイントノート:吸...
区分所有法ワンポイントノート...

[ノート一覧]

知恵ノートランキング

  • 閲覧数
  •  
  1. 1位ダイエットにはガセリ菌!その...
  2. 2位ヤフオクで毎回同じ検索をする...
  3. 3位【出品者の方へ】入札者認証制...
  4. 4位すぐわかる 確定申告の医療控...
  5. 5位超簡単!NHK受信料契約を、...

[一覧]

対象のノートがありません

[一覧]

ランキング対象日:3/14

ピックアップ

初めてライブハウスへ行く前に...
●ライブハウス初心者=ライブに初めて行く人・まだ慣れていな...
【就活】書類選考で失敗しない...
やはり今の就職の選考には欠かせない方法。それが書類選考で...
【着物】初心者の着物コーディ...
浴衣や着物などでかなり見かける質問『この着物の色と帯の色...

[役に立つノートをもっと見る]

こんなノートがほしい! リクエストする

最大文字数100文字入力できます

リクエストが送信されました。

いただいたリクエストは、Yahoo!知恵袋スタッフが確認のうえ、ライターの方向けに書いていただきたいテーマとして掲出いたします。

続けてリクエストする

リクエストされている知恵ノートを書く

いま求められているのは、こんな「知恵」。お題をクリックして投稿してみましょう!

  • ニキビを治してキレイな肌になる方法
  • これなら出来る? 貯金を続けるコツ
  • 気になる目の下のたるみを取る方法
知恵ノートを書いてみませんか?知恵ノートの書き方はこちら

知恵ノートとは?

役立つ知恵情報は、Yahoo!知恵袋公式Twitter@yahoochiebukuroをフォロー
本文はここまでです このページの先頭へ

Yahoo!Japan

Yahoo!検索データ 急上昇ワード

プライバシーポリシー - 利用規約 - ガイドライン - サイトマップ - ヘルプ・お問い合わせ

JASRAC許諾番号:9008249113Y38200

Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.